Skip to content
Snippets Groups Projects
Commit 42208b07 authored by Eugen Ciur's avatar Eugen Ciur
Browse files

save view mode and state of side-bar using local storage

parent b1c4a63d
Branches
No related tags found
No related merge requests found
<div class="d-flex"> <div class="d-flex">
<Commander::ViewMode <Commander::ViewMode
@onViewModeChange={{@onViewModeChange}} /> @onViewModeChange={{@onViewModeChange}}
@viewMode={{@viewMode}} />
<PanelModes <PanelModes
@dualPanelMode={{@dualPanelMode}} @dualPanelMode={{@dualPanelMode}}
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
@onPanelToggle={{@onPanelToggle}} @onPanelToggle={{@onPanelToggle}}
@dualPanelMode={{@dualPanelMode}} @dualPanelMode={{@dualPanelMode}}
@onViewModeChange={{this.onViewModeChange}} @onViewModeChange={{this.onViewModeChange}}
@viewMode={{this.view_mode}}
@hint={{@hint}} @hint={{@hint}}
@onSwapPanels={{@onSwapPanels}} @onSwapPanels={{@onSwapPanels}}
@onDuplicatePanel={{@onDuplicatePanel}} /> @onDuplicatePanel={{@onDuplicatePanel}} />
......
...@@ -3,6 +3,7 @@ import { tracked } from '@glimmer/tracking'; ...@@ -3,6 +3,7 @@ import { tracked } from '@glimmer/tracking';
import { A } from '@ember/array'; import { A } from '@ember/array';
import { action } from '@ember/object'; import { action } from '@ember/object';
import { service } from '@ember/service'; import { service } from '@ember/service';
import localStorage from 'papermerge/utils/localstorage';
export default class CommanderComponent extends Component { export default class CommanderComponent extends Component {
...@@ -33,8 +34,9 @@ export default class CommanderComponent extends Component { ...@@ -33,8 +34,9 @@ export default class CommanderComponent extends Component {
@tracked show_confirm_deletion_modal = false; @tracked show_confirm_deletion_modal = false;
// nodes are displayed as list or as grid? // localStorage is tracked
@tracked view_mode = 'list'; @localStorage left_view_mode = 'list';
@localStorage right_view_mode = 'list';
@tracked selected_nodes = A([]); @tracked selected_nodes = A([]);
...@@ -147,7 +149,11 @@ export default class CommanderComponent extends Component { ...@@ -147,7 +149,11 @@ export default class CommanderComponent extends Component {
@action @action
onViewModeChange(new_view_mode) { onViewModeChange(new_view_mode) {
this.view_mode = new_view_mode; if (this.args.hint == 'left') {
this.left_view_mode = new_view_mode;
} else {
this.right_view_mode = new_view_mode;
}
} }
@action @action
...@@ -355,6 +361,14 @@ export default class CommanderComponent extends Component { ...@@ -355,6 +361,14 @@ export default class CommanderComponent extends Component {
this.selected_nodes = []; // reset currect selected nodes list this.selected_nodes = []; // reset currect selected nodes list
} }
get view_mode() {
if (this.args.hint == 'left') {
return this.left_view_mode;
}
return this.right_view_mode;
}
get lang() { get lang() {
let _lang = this.preferences.get_value({ let _lang = this.preferences.get_value({
key: 'ocr__language', key: 'ocr__language',
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
class="btn btn-link text-decoration-none" class="btn btn-link text-decoration-none"
{{on "click" (fn this.onItemClick item)}}> {{on "click" (fn this.onItemClick item)}}>
<span class="px-2">{{ item.title }}</span> <span class="px-2">{{ item.title }}</span>
{{#if (is_equal this.current_item item.value) }} {{#if (is_equal this.view_mode item.value) }}
<i class="bi-check-lg text-success"></i> <i class="bi-check-lg text-success"></i>
{{/if}} {{/if}}
</button> </button>
......
...@@ -4,6 +4,7 @@ import { A } from '@ember/array'; ...@@ -4,6 +4,7 @@ import { A } from '@ember/array';
import { action } from '@ember/object'; import { action } from '@ember/object';
export default class ViewModeComponent extends Component { export default class ViewModeComponent extends Component {
@tracked items = A([ @tracked items = A([
...@@ -19,12 +20,12 @@ export default class ViewModeComponent extends Component { ...@@ -19,12 +20,12 @@ export default class ViewModeComponent extends Component {
}, },
]); ]);
@tracked current_item = 'list'; get view_mode() {
return this.args.viewMode || 'list';
}
@action onItemClick(item) { @action
this.current_item = item.value; onItemClick(item) {
this.args.onViewModeChange(item.value); this.args.onViewModeChange(item.value);
} }
} }
import { action } from '@ember/object'; import { action } from '@ember/object';
import Controller from '@ember/controller'; import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { service } from '@ember/service'; import { service } from '@ember/service';
import localStorage from 'papermerge/utils/localstorage';
export default class AuthenticatedController extends Controller { export default class AuthenticatedController extends Controller {
// sidebar expanded ? @localStorage expanded_sidebar = false;
@tracked expanded = true;
@service ws_inbox_refresh; @service ws_inbox_refresh;
@service ws_nodes_move; @service ws_nodes_move;
@service router; @service router;
...@@ -30,6 +29,6 @@ export default class AuthenticatedController extends Controller { ...@@ -30,6 +29,6 @@ export default class AuthenticatedController extends Controller {
@action @action
onSidebarToggle() { onSidebarToggle() {
this.expanded = !this.expanded; this.expanded_sidebar = !this.expanded_sidebar;
} }
} }
import Controller from '@ember/controller'; import Controller from '@ember/controller';
import { tracked } from "@glimmer/tracking"; import { tracked } from "@glimmer/tracking";
import { inject as service } from '@ember/service'; import { service } from '@ember/service';
export default class DualPanelBaseController extends Controller { export default class DualPanelBaseController extends Controller {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
@inbox_folder_id={{@model.inbox_folder_id}} @inbox_folder_id={{@model.inbox_folder_id}}
@inbox_count={{@model.inbox_count}} @inbox_count={{@model.inbox_count}}
@pinned_tags={{@model.pinned_tags}} @pinned_tags={{@model.pinned_tags}}
@expanded={{this.expanded}} /> @expanded={{this.expanded_sidebar}} />
<div class="w-100 central-bar"> <div class="w-100 central-bar">
<Nav::Topbar <Nav::Topbar
@onSidebarToggle={{this.onSidebarToggle}} /> @onSidebarToggle={{this.onSidebarToggle}} />
......
import { TrackedMap } from 'tracked-built-ins';
const storage = new TrackedMap();
export default function decorator(...args) {
/*
Decorator for saving value of class property to local storage.
Learn more about Local Storage:
https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Decorated class property will be tracked i.e. whenever their value
changes Ember will trigger rendering of components which make use
of that variable;
Example:
import localStorage from 'papermerge/utils/localStorage';
class SomeComponent {
@localStorage expanded_sidebar = false;
@action
onSidebarToggle() {
// this will trigger rerandering of component
this.expanded_sidebar = !this.expanded_sidebar;
}
}
*/
function wrapper(target, key) {
initStorage(key);
return {
get() {
return storage.get(key);
},
set(value) {
let json = JSON.stringify(value)
storage.set(key, value);
window.localStorage.setItem(key, json);
}
}
}
return wrapper(...args);
}
function initStorage(key) {
let value;
value = JSON.parse(window.localStorage.getItem(key));
storage.set(key, value);
}
...@@ -16067,6 +16067,206 @@ ...@@ -16067,6 +16067,206 @@
} }
} }
}, },
"ember-tracked-storage-polyfill": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/ember-tracked-storage-polyfill/-/ember-tracked-storage-polyfill-1.0.0.tgz",
"integrity": "sha512-eL7lZat68E6P/D7b9UoTB5bB5Oh/0aju0Z7PCMi3aTwhaydRaxloE7TGrTRYU+NdJuyNVZXeGyxFxn2frvd3TA==",
"dev": true,
"requires": {
"ember-cli-babel": "^7.26.3",
"ember-cli-htmlbars": "^5.7.1"
},
"dependencies": {
"async-disk-cache": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/async-disk-cache/-/async-disk-cache-2.1.0.tgz",
"integrity": "sha512-iH+boep2xivfD9wMaZWkywYIURSmsL96d6MoqrC94BnGSvXE4Quf8hnJiHGFYhw/nLeIa1XyRaf4vvcvkwAefg==",
"dev": true,
"requires": {
"debug": "^4.1.1",
"heimdalljs": "^0.2.3",
"istextorbinary": "^2.5.1",
"mkdirp": "^0.5.0",
"rimraf": "^3.0.0",
"rsvp": "^4.8.5",
"username-sync": "^1.0.2"
}
},
"broccoli-persistent-filter": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/broccoli-persistent-filter/-/broccoli-persistent-filter-3.1.2.tgz",
"integrity": "sha512-CbU95RXXVyy+eJV9XTiHUC7NnsY3EvdVrGzp3YgyvO2bzXZFE5/GzDp4X/VQqX+jsk4qyT1HvMOF0sD1DX68TQ==",
"dev": true,
"requires": {
"async-disk-cache": "^2.0.0",
"async-promise-queue": "^1.0.3",
"broccoli-plugin": "^4.0.3",
"fs-tree-diff": "^2.0.0",
"hash-for-dep": "^1.5.0",
"heimdalljs": "^0.2.1",
"heimdalljs-logger": "^0.1.7",
"promise-map-series": "^0.2.1",
"rimraf": "^3.0.0",
"symlink-or-copy": "^1.0.1",
"sync-disk-cache": "^2.0.0"
}
},
"broccoli-plugin": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/broccoli-plugin/-/broccoli-plugin-4.0.7.tgz",
"integrity": "sha512-a4zUsWtA1uns1K7p9rExYVYG99rdKeGRymW0qOCNkvDPHQxVi3yVyJHhQbM3EZwdt2E0mnhr5e0c/bPpJ7p3Wg==",
"dev": true,
"requires": {
"broccoli-node-api": "^1.7.0",
"broccoli-output-wrapper": "^3.2.5",
"fs-merger": "^3.2.1",
"promise-map-series": "^0.3.0",
"quick-temp": "^0.1.8",
"rimraf": "^3.0.2",
"symlink-or-copy": "^1.3.1"
},
"dependencies": {
"promise-map-series": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/promise-map-series/-/promise-map-series-0.3.0.tgz",
"integrity": "sha512-3npG2NGhTc8BWBolLLf8l/92OxMGaRLbqvIh9wjCHhDXNvk4zsxaTaCpiCunW09qWPrN2zeNSNwRLVBrQQtutA==",
"dev": true
}
}
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"editions": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz",
"integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==",
"dev": true,
"requires": {
"errlop": "^2.0.0",
"semver": "^6.3.0"
},
"dependencies": {
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
},
"ember-cli-htmlbars": {
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/ember-cli-htmlbars/-/ember-cli-htmlbars-5.7.2.tgz",
"integrity": "sha512-Uj6R+3TtBV5RZoJY14oZn/sNPnc+UgmC8nb5rI4P3fR/gYoyTFIZSXiIM7zl++IpMoIrocxOrgt+mhonKphgGg==",
"dev": true,
"requires": {
"@ember/edition-utils": "^1.2.0",
"babel-plugin-htmlbars-inline-precompile": "^5.0.0",
"broccoli-debug": "^0.6.5",
"broccoli-persistent-filter": "^3.1.2",
"broccoli-plugin": "^4.0.3",
"common-tags": "^1.8.0",
"ember-cli-babel-plugin-helpers": "^1.1.1",
"ember-cli-version-checker": "^5.1.2",
"fs-tree-diff": "^2.0.1",
"hash-for-dep": "^1.5.1",
"heimdalljs-logger": "^0.1.10",
"json-stable-stringify": "^1.0.1",
"semver": "^7.3.4",
"silent-error": "^1.1.1",
"strip-bom": "^4.0.0",
"walk-sync": "^2.2.0"
}
},
"fs-tree-diff": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fs-tree-diff/-/fs-tree-diff-2.0.1.tgz",
"integrity": "sha512-x+CfAZ/lJHQqwlD64pYM5QxWjzWhSjroaVsr8PW831zOApL55qPibed0c+xebaLWVr2BnHFoHdrwOv8pzt8R5A==",
"dev": true,
"requires": {
"@types/symlink-or-copy": "^1.2.0",
"heimdalljs-logger": "^0.1.7",
"object-assign": "^4.1.0",
"path-posix": "^1.0.0",
"symlink-or-copy": "^1.1.8"
}
},
"istextorbinary": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz",
"integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==",
"dev": true,
"requires": {
"binaryextensions": "^2.1.2",
"editions": "^2.2.0",
"textextensions": "^2.5.0"
}
},
"matcher-collection": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz",
"integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"minimatch": "^3.0.2"
}
},
"minimist": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
"dev": true
},
"mkdirp": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
"integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dev": true,
"requires": {
"minimist": "^1.2.6"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"sync-disk-cache": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/sync-disk-cache/-/sync-disk-cache-2.1.0.tgz",
"integrity": "sha512-vngT2JmkSapgq0z7uIoYtB9kWOOzMihAAYq/D3Pjm/ODOGMgS4r++B+OZ09U4hWR6EaOdy9eqQ7/8ygbH3wehA==",
"dev": true,
"requires": {
"debug": "^4.1.1",
"heimdalljs": "^0.2.6",
"mkdirp": "^0.5.0",
"rimraf": "^3.0.0",
"username-sync": "^1.0.2"
}
},
"walk-sync": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz",
"integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"ensure-posix-path": "^1.1.0",
"matcher-collection": "^2.0.0",
"minimatch": "^3.0.4"
}
}
}
},
"emoji-regex": { "emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
...@@ -27297,6 +27497,264 @@ ...@@ -27297,6 +27497,264 @@
"punycode": "^2.1.1" "punycode": "^2.1.1"
} }
}, },
"tracked-built-ins": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/tracked-built-ins/-/tracked-built-ins-2.0.1.tgz",
"integrity": "sha512-v0DwPVNm3zA4cmJLpcBJxJfKefN6ldhkc8l5YA+cWHq7kI8WMUcXjIXgl/AIxmt1SoO1bwPdpikPRHHrIBDtFQ==",
"dev": true,
"requires": {
"ember-cli-babel": "^7.26.10",
"ember-cli-typescript": "^4.1.0",
"ember-tracked-storage-polyfill": "^1.0.0",
"tracked-maps-and-sets": "^3.0.2"
},
"dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ember-cli-typescript": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-4.2.1.tgz",
"integrity": "sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==",
"dev": true,
"requires": {
"ansi-to-html": "^0.6.15",
"broccoli-stew": "^3.0.0",
"debug": "^4.0.0",
"execa": "^4.0.0",
"fs-extra": "^9.0.1",
"resolve": "^1.5.0",
"rsvp": "^4.8.1",
"semver": "^7.3.2",
"stagehand": "^1.0.0",
"walk-sync": "^2.2.0"
}
},
"execa": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
"integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
"get-stream": "^5.0.0",
"human-signals": "^1.1.1",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^4.0.0",
"onetime": "^5.1.0",
"signal-exit": "^3.0.2",
"strip-final-newline": "^2.0.0"
}
},
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dev": true,
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"human-signals": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true
},
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"matcher-collection": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz",
"integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"minimatch": "^3.0.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"requires": {
"path-key": "^3.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
},
"walk-sync": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz",
"integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"ensure-posix-path": "^1.1.0",
"matcher-collection": "^2.0.0",
"minimatch": "^3.0.4"
}
}
}
},
"tracked-maps-and-sets": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/tracked-maps-and-sets/-/tracked-maps-and-sets-3.0.2.tgz",
"integrity": "sha512-UIRcWsX1kDOcC/Q2R58weYWlw01EnmWWBwUv3okWS+zMBvsgIfYoO6veHhuNE3hgzWCEImNp46QS5CyKnw5QUA==",
"dev": true,
"requires": {
"@glimmer/tracking": "^1.0.0",
"ember-cli-babel": "^7.26.6",
"ember-cli-typescript": "^4.2.1",
"ember-tracked-storage-polyfill": "1.0.0"
},
"dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
"ember-cli-typescript": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/ember-cli-typescript/-/ember-cli-typescript-4.2.1.tgz",
"integrity": "sha512-0iKTZ+/wH6UB/VTWKvGuXlmwiE8HSIGcxHamwNhEC5x1mN3z8RfvsFZdQWYUzIWFN2Tek0gmepGRPTwWdBYl/A==",
"dev": true,
"requires": {
"ansi-to-html": "^0.6.15",
"broccoli-stew": "^3.0.0",
"debug": "^4.0.0",
"execa": "^4.0.0",
"fs-extra": "^9.0.1",
"resolve": "^1.5.0",
"rsvp": "^4.8.1",
"semver": "^7.3.2",
"stagehand": "^1.0.0",
"walk-sync": "^2.2.0"
}
},
"execa": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
"integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
"get-stream": "^5.0.0",
"human-signals": "^1.1.1",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^4.0.0",
"onetime": "^5.1.0",
"signal-exit": "^3.0.2",
"strip-final-newline": "^2.0.0"
}
},
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
"integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dev": true,
"requires": {
"at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
"human-signals": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true
},
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6",
"universalify": "^2.0.0"
}
},
"matcher-collection": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz",
"integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"minimatch": "^3.0.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"requires": {
"path-key": "^3.0.0"
}
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
"integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
"dev": true
},
"walk-sync": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz",
"integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==",
"dev": true,
"requires": {
"@types/minimatch": "^3.0.3",
"ensure-posix-path": "^1.1.0",
"matcher-collection": "^2.0.0",
"minimatch": "^3.0.4"
}
}
}
},
"tree-sync": { "tree-sync": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/tree-sync/-/tree-sync-1.4.0.tgz", "resolved": "https://registry.npmjs.org/tree-sync/-/tree-sync-1.4.0.tgz",
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
"edition": "octane" "edition": "octane"
}, },
"devDependencies": { "devDependencies": {
"tracked-built-ins": "^2.0.1",
"webpack": "^5.65.0" "webpack": "^5.65.0"
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment