@acorex/components 19.10.6 → 19.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/fesm2022/acorex-components-color-palette.mjs +1 -1
  2. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  3. package/fesm2022/acorex-components-common.mjs +13 -20
  4. package/fesm2022/acorex-components-common.mjs.map +1 -1
  5. package/fesm2022/acorex-components-cron-job.mjs +6 -6
  6. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  7. package/fesm2022/acorex-components-data-table.mjs +0 -1
  8. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  9. package/fesm2022/acorex-components-file-explorer.mjs +55 -41
  10. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  11. package/fesm2022/acorex-components-list.mjs +6 -16
  12. package/fesm2022/acorex-components-list.mjs.map +1 -1
  13. package/fesm2022/acorex-components-phone-box.mjs +1 -1
  14. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  15. package/fesm2022/acorex-components-query-builder.mjs +1 -1
  16. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  17. package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
  18. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  19. package/fesm2022/acorex-components-select-box.mjs +20 -12
  20. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  21. package/fesm2022/acorex-components-tree-view.mjs +24 -12
  22. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  23. package/fesm2022/acorex-components-wysiwyg.mjs +1 -1
  24. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  25. package/file-explorer/lib/file-explorer-internal.service.d.ts +4 -0
  26. package/file-explorer/lib/file-explorer-tree/file-explorer-tree.component.d.ts +3 -0
  27. package/file-explorer/lib/file-explorer-view/file-explorer-view.component.d.ts +0 -3
  28. package/file-explorer/lib/file-explorer.service.d.ts +1 -1
  29. package/list/lib/list.component.d.ts +1 -1
  30. package/package.json +5 -5
  31. package/select-box/lib/select-box.component.d.ts +11 -4
  32. package/tree-view/lib/tree-view.class.d.ts +2 -0
  33. package/tree-view/lib/tree-view.component.d.ts +4 -2
@@ -16,7 +16,7 @@ import { MXBaseComponent } from '@acorex/components/common';
16
16
  import * as i3$1 from '@acorex/components/drawer';
17
17
  import { AXDrawerComponent, AXDrawerModule } from '@acorex/components/drawer';
18
18
  import * as i4 from '@acorex/components/tree-view';
19
- import { AXTreeViewModule } from '@acorex/components/tree-view';
19
+ import { AXTreeViewComponent, AXTreeViewModule } from '@acorex/components/tree-view';
20
20
 
21
21
  class AXFileExplorerInternalService {
22
22
  constructor() {
@@ -27,6 +27,8 @@ class AXFileExplorerInternalService {
27
27
  this.breadcrumbsData = signal(['root']);
28
28
  this.activeFolderId = signal(null);
29
29
  this.dataCallBack = signal(null);
30
+ this.treeViewInstant = signal(null);
31
+ this.clickedItems = new Set();
30
32
  }
31
33
  findItemInNestedArray(array, predicate) {
32
34
  for (const item of array) {
@@ -41,6 +43,34 @@ class AXFileExplorerInternalService {
41
43
  }
42
44
  return null;
43
45
  }
46
+ async dbClickHandler(item, isTreeViewClicked = true) {
47
+ if (item.extension)
48
+ return;
49
+ if (!item?.id)
50
+ return;
51
+ if (isTreeViewClicked) {
52
+ this.treeViewInstant().executeOnTreeNode(item, 'active', true);
53
+ this.treeViewInstant().executeOnTreeNode(item, 'expand', true);
54
+ }
55
+ this.activeFolderId.set(item.id);
56
+ const clickedItem = this.findItemInNestedArray(this.allData(), (e) => e.id === item.id);
57
+ this.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);
58
+ let canPass = true;
59
+ this.clickedItems.forEach((e) => {
60
+ if (e === item.id)
61
+ canPass = false;
62
+ });
63
+ this.clickedItems.add(item.id);
64
+ if (!canPass)
65
+ return;
66
+ const newChild = await this.dataCallBack()(item.id);
67
+ this.allData.update((prev) => {
68
+ const copy = [...prev];
69
+ const find = this.findItemInNestedArray(copy, (e) => e.id === item.id);
70
+ find.children = newChild;
71
+ return copy;
72
+ });
73
+ }
44
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerInternalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
75
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerInternalService }); }
46
76
  }
@@ -50,32 +80,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
50
80
 
51
81
  class AXFileExplorerService {
52
82
  constructor() {
53
- this.service = inject(AXFileExplorerInternalService);
83
+ this.internalService = inject(AXFileExplorerInternalService);
54
84
  }
55
85
  backButtonHandler() {
56
- this.service.breadcrumbsData.update((prev) => {
86
+ this.internalService.breadcrumbsData.update((prev) => {
57
87
  const copy = [...prev];
58
88
  if (copy.length !== 1)
59
89
  copy.pop();
60
90
  return copy;
61
91
  });
62
- const parentId = this.service.showData()[0].parentId;
63
- const parent = this.service.findItemInNestedArray(this.service.allData(), (item) => item.id === parentId);
92
+ const parentId = this.internalService.showData()[0].parentId;
93
+ const parent = this.internalService.findItemInNestedArray(this.internalService.allData(), (item) => item.id === parentId);
64
94
  if (parent?.parentId) {
65
- this.service.activeFolderId.set(parent.parentId);
95
+ this.internalService.activeFolderId.set(parent.parentId);
66
96
  }
67
97
  else {
68
- this.service.activeFolderId.set(null);
98
+ this.internalService.activeFolderId.set(null);
69
99
  }
100
+ this.internalService.treeViewInstant().executeOnTreeNode(parent, 'active', false);
70
101
  }
71
102
  menuToggleHandler() {
72
- this.service.treeViewState.update((prev) => !prev);
103
+ this.internalService.treeViewState.update((prev) => !prev);
73
104
  }
74
105
  changeViewHandler(v) {
75
- this.service.viewMode.set(v);
106
+ this.internalService.viewMode.set(v);
76
107
  }
77
108
  async sortItemHandler(sort) {
78
- await this.service.dataCallBack()(this.service.activeFolderId(), sort);
109
+ await this.internalService.dataCallBack()(this.internalService.activeFolderId(), sort);
79
110
  }
80
111
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
81
112
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerService }); }
@@ -128,6 +159,7 @@ class AXFileExplorerTreeComponent {
128
159
  constructor() {
129
160
  this.internalService = inject(AXFileExplorerInternalService);
130
161
  this.drawer = viewChild(AXDrawerComponent);
162
+ this.treeView = viewChild(AXTreeViewComponent);
131
163
  this.#effect = effect(() => {
132
164
  if (this.internalService.treeViewState()) {
133
165
  this.drawer().open();
@@ -136,23 +168,29 @@ class AXFileExplorerTreeComponent {
136
168
  this.drawer().close();
137
169
  }
138
170
  });
171
+ this.#init = afterNextRender(() => {
172
+ this.internalService.treeViewInstant.set(this.treeView());
173
+ });
139
174
  }
140
175
  #effect;
176
+ #init;
177
+ openFolderOnViewHandler(e) {
178
+ this.internalService.dbClickHandler(e.data, false);
179
+ }
141
180
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXFileExplorerTreeComponent, isStandalone: false, selector: "ax-file-explorer-tree", viewQueries: [{ propertyName: "drawer", first: true, predicate: AXDrawerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view [selectable]=\"false\" hasChildField=\"hasChild\" [items]=\"internalService.dataCallBack()\"></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: ["ax-file-explorer-tree .ax-file-explore-drawer-border{border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-file-explorer-tree ax-drawer-container{height:auto}ax-file-explorer-tree ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-tree ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i4.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField", "expandBehavior"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXFileExplorerTreeComponent, isStandalone: false, selector: "ax-file-explorer-tree", viewQueries: [{ propertyName: "drawer", first: true, predicate: AXDrawerComponent, descendants: true, isSignal: true }, { propertyName: "treeView", first: true, predicate: AXTreeViewComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view\n (onNodeExpandClick)=\"openFolderOnViewHandler($event)\"\n [selectable]=\"false\"\n hasChildField=\"hasChild\"\n [items]=\"internalService.dataCallBack()\"\n ></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: ["ax-file-explorer-tree .ax-file-explore-drawer-border{border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-file-explorer-tree ax-drawer-container{height:auto}ax-file-explorer-tree ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-tree ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: i4.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField", "expandBehavior"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
143
182
  }
144
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerTreeComponent, decorators: [{
145
184
  type: Component,
146
- args: [{ selector: 'ax-file-explorer-tree', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view [selectable]=\"false\" hasChildField=\"hasChild\" [items]=\"internalService.dataCallBack()\"></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: ["ax-file-explorer-tree .ax-file-explore-drawer-border{border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-file-explorer-tree ax-drawer-container{height:auto}ax-file-explorer-tree ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-tree ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}\n"] }]
185
+ args: [{ selector: 'ax-file-explorer-tree', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view\n (onNodeExpandClick)=\"openFolderOnViewHandler($event)\"\n [selectable]=\"false\"\n hasChildField=\"hasChild\"\n [items]=\"internalService.dataCallBack()\"\n ></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n", styles: ["ax-file-explorer-tree .ax-file-explore-drawer-border{border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-file-explorer-tree ax-drawer-container{height:auto}ax-file-explorer-tree ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-tree ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}\n"] }]
147
186
  }] });
148
187
 
149
188
  class AXFileExplorerViewComponent {
150
189
  constructor() {
151
190
  this.dataCallBack = input.required();
152
- this.clickedItems = new Set();
153
191
  this.contextMenu = viewChild(AXContextMenuComponent);
154
192
  this.internalService = inject(AXFileExplorerInternalService);
155
- this.#init = afterNextRender(() => {
193
+ this.#init = effect(() => {
156
194
  this.setInitialAllData();
157
195
  this.internalService.dataCallBack.set(this.dataCallBack());
158
196
  });
@@ -175,30 +213,6 @@ class AXFileExplorerViewComponent {
175
213
  const rootData = await this.dataCallBack()();
176
214
  this.internalService.allData.set(rootData);
177
215
  }
178
- async dbClickHandler(item) {
179
- if (item.extension)
180
- return;
181
- if (!item?.id)
182
- return;
183
- this.internalService.activeFolderId.set(item.id);
184
- const clickedItem = this.internalService.findItemInNestedArray(this.internalService.allData(), (e) => e.id === item.id);
185
- this.internalService.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);
186
- let canPass = true;
187
- this.clickedItems.forEach((e) => {
188
- if (e === item.id)
189
- canPass = false;
190
- });
191
- this.clickedItems.add(item.id);
192
- if (!canPass)
193
- return;
194
- const newChild = await this.dataCallBack()(item.id);
195
- this.internalService.allData.update((prev) => {
196
- const copy = [...prev];
197
- const find = this.internalService.findItemInNestedArray(copy, (e) => e.id === item.id);
198
- find.children = newChild;
199
- return copy;
200
- });
201
- }
202
216
  handleContextMenuOpening(e) {
203
217
  const target = e.targetElement['__axContext__'];
204
218
  const items = [{ text: 'open', data: target }, { text: 'delete', data: target }];
@@ -210,14 +224,14 @@ class AXFileExplorerViewComponent {
210
224
  // }
211
225
  }
212
226
  handleContextMenuItemClick(e) {
213
- this.dbClickHandler(e.item.data.data());
227
+ this.internalService.dbClickHandler(e.item.data.data());
214
228
  }
215
229
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerViewComponent, isStandalone: false, selector: "ax-file-explorer-view", inputs: { dataCallBack: { classPropertyName: "dataCallBack", publicName: "dataCallBack", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: AXContextMenuComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1;overflow:hidden}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "component", type: AXFileExplorerItemComponent, selector: "ax-file-explorer-item", inputs: ["data", "viewMode"], outputs: ["dbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerViewComponent, isStandalone: false, selector: "ax-file-explorer-view", inputs: { dataCallBack: { classPropertyName: "dataCallBack", publicName: "dataCallBack", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: AXContextMenuComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"internalService.dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1;overflow:hidden}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i6.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "component", type: AXFileExplorerItemComponent, selector: "ax-file-explorer-item", inputs: ["data", "viewMode"], outputs: ["dbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
217
231
  }
218
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerViewComponent, decorators: [{
219
233
  type: Component,
220
- args: [{ selector: 'ax-file-explorer-view', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1;overflow:hidden}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}\n"] }]
234
+ args: [{ selector: 'ax-file-explorer-view', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"internalService.dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1;overflow:hidden}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}\n"] }]
221
235
  }] });
222
236
 
223
237
  const COMPONENT = [
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-file-explorer.mjs","sources":["../../../../libs/components/file-explorer/src/lib/file-explorer-internal.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-header/file-explorer-header.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-header/file-explorer-header.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-tree/file-explorer-tree.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-tree/file-explorer-tree.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer.module.ts","../../../../libs/components/file-explorer/src/acorex-components-file-explorer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from './file-explorer-types';\n\n@Injectable()\nexport class AXFileExplorerInternalService {\n viewMode = signal<ViewModeType>('ax-large-icon');\n treeViewState = signal(false);\n allData = signal<AXFileExplorerSchema[]>([]);\n showData = signal<AXFileExplorerSchema[]>([]);\n breadcrumbsData = signal(['root']);\n activeFolderId = signal<string | number>(null);\n dataCallBack = signal<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>(null);\n\n findItemInNestedArray(array: any[], predicate: (item: any) => boolean) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (item.children) {\n const found = this.findItemInNestedArray(item.children, predicate);\n if (found) return found;\n }\n }\n return null;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { AXFileExplorerInternalService } from './file-explorer-internal.service';\nimport { ViewModeType } from './file-explorer-types';\n\n@Injectable()\nexport class AXFileExplorerService {\n private service = inject(AXFileExplorerInternalService);\n\n backButtonHandler() {\n this.service.breadcrumbsData.update((prev) => {\n const copy = [...prev];\n if (copy.length !== 1) copy.pop();\n return copy;\n });\n\n const parentId = this.service.showData()[0].parentId;\n const parent = this.service.findItemInNestedArray(this.service.allData(), (item) => item.id === parentId);\n if (parent?.parentId) {\n this.service.activeFolderId.set(parent.parentId);\n } else {\n this.service.activeFolderId.set(null);\n }\n }\n\n menuToggleHandler() {\n this.service.treeViewState.update((prev) => !prev);\n }\n\n changeViewHandler(v: ViewModeType) {\n this.service.viewMode.set(v);\n }\n\n async sortItemHandler(sort: 'name' | 'date' | 'type') {\n await this.service.dataCallBack()(this.service.activeFolderId(), sort);\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-container',\n templateUrl: './file-explorer-container.component.html',\n styleUrls: ['./file-explorer-container.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n providers: [AXFileExplorerService, AXFileExplorerInternalService],\n})\nexport class AXFileExplorerContainerComponent {}\n","<ng-content select=\"ax-file-explorer-tree\"></ng-content>\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-header',\n templateUrl: './file-explorer-header.component.html',\n styleUrls: ['./file-explorer-header.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerHeaderComponent {\n protected service = inject(AXFileExplorerService);\n protected internalService = inject(AXFileExplorerInternalService);\n}\n","<ax-toolbar>\n <ax-prefix>\n <ax-button (onClick)=\"service.menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"service.backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of internalService.breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <ax-text>{{ item }}</ax-text>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"service.sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"service.sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"service.sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\n\n@Component({\n selector: 'ax-file-explorer-item',\n templateUrl: './file-explorer-item.component.html',\n styleUrls: ['./file-explorer-item.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerItemComponent extends MXBaseComponent {\n data = input<AXFileExplorerSchema>();\n dbClick = output();\n viewMode = input<ViewModeType>();\n\n protected dbClickHandler() {\n this.dbClick.emit();\n }\n\n // protected fileExtensionPreviewHandler(extension: string) {\n // switch (extension) {\n // case '':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path fill=\"none\" d=\"M18 10L13 10\" stroke-linecap=\"round\"/>\n // <path fill=\"none\" d=\"M10 3H16.5C16.9644 3 17.1966 3 17.3916 3.02567C18.7378 3.2029 19.7971 4.26222 19.9743 5.60842C20 5.80337 20 6.03558 20 6.5\" />\n // <path fill=\"none\" d=\"M2 6.94975C2 6.06722 2 5.62595 2.06935 5.25839C2.37464 3.64031 3.64031 2.37464 5.25839 2.06935C5.62595 2 6.06722 2 6.94975 2C7.33642 2 7.52976 2 7.71557 2.01738C8.51665 2.09229 9.27652 2.40704 9.89594 2.92051C10.0396 3.03961 10.1763 3.17633 10.4497 3.44975L11 4C11.8158 4.81578 12.2237 5.22367 12.7121 5.49543C12.9804 5.64471 13.2651 5.7626 13.5604 5.84678C14.0979 6 14.6747 6 15.8284 6H16.2021C18.8345 6 20.1506 6 21.0062 6.76946C21.0849 6.84024 21.1598 6.91514 21.2305 6.99383C22 7.84935 22 9.16554 22 11.7979V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V6.94975Z\" />\n // </svg>`);\n // break;\n // case 'jpg':\n // case 'png':\n // case 'jpeg':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"-0.5 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M21 22H3C2.72 22 2.5 21.6517 2.5 21.2083V3.79167C2.5 3.34833 2.72 3 3 3H21C21.28 3 21.5 3.34833 21.5 3.79167V21.2083C21.5 21.6517 21.28 22 21 22Z\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M4.5 19.1875L9.66 12.6875C9.86 12.4375 10.24 12.4375 10.44 12.6875L15.6 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M16.2 16.6975L16.4599 16.3275C16.6599 16.0775 17.0399 16.0775 17.2399 16.3275L19.4999 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M17.2046 9.54315C17.2046 10.4294 16.4862 11.1478 15.6 11.1478C14.7138 11.1478 13.9954 10.4294 13.9954 9.54315C13.9954 8.65695 14.7138 7.93854 15.6 7.93854C16.4862 7.93854 17.2046 8.65695 17.2046 9.54315Z\"\n // />\n // </svg>`);\n // break;\n // case 'mp3':\n // case 'wav':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // fill-rule=\"evenodd\"\n // clip-rule=\"evenodd\"\n // d=\"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289L3.29289 7.29289C3.10536 7.48043 3 7.73478 3 8V20C3 21.6569 4.34315 23 6 23H7C7.55228 23 8 22.5523 8 22C8 21.4477 7.55228 21 7 21H6C5.44772 21 5 20.5523 5 20V9H10C10.5523 9 11 8.55228 11 8V3H18C18.5523 3 19 3.44772 19 4V7C19 7.55228 19.4477 8 20 8C20.5523 8 21 7.55228 21 7V4C21 2.34315 19.6569 1 18 1H10ZM9 7H6.41421L9 4.41421V7ZM12.5 24C13.8807 24 15 22.8807 15 21.5V12.8673L20 12.153V18.05C19.8384 18.0172 19.6712 18 19.5 18C18.1193 18 17 19.1193 17 20.5C17 21.8807 18.1193 23 19.5 23C20.8807 23 22 21.8807 22 20.5V11C22 10.7101 21.8742 10.4345 21.6552 10.2445C21.4362 10.0546 21.1456 9.96905 20.8586 10.0101L13.8586 11.0101C13.3659 11.0804 13 11.5023 13 12V19.05C12.8384 19.0172 12.6712 19 12.5 19C11.1193 19 10 20.1193 10 21.5C10 22.8807 11.1193 24 12.5 24Z\"\n // />\n // </svg>`);\n // default:\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M26.731 9.902c-0.005-0.035-0.011-0.066-0.019-0.095l0.001 0.005c-0.031-0.134-0.094-0.249-0.182-0.342l0 0-8-8c-0.092-0.087-0.207-0.15-0.335-0.181l-0.005-0.001c-0.027-0.008-0.059-0.014-0.092-0.019l-0.003-0c-0.026-0.007-0.059-0.014-0.092-0.019l-0.004-0h-12c-0.414 0-0.75 0.336-0.75 0.75v0 28c0 0.414 0.336 0.75 0.75 0.75h20c0.414-0 0.75-0.336 0.75-0.75v0-20c-0.005-0.038-0.012-0.071-0.020-0.103l0.001 0.005zM24.189 9.25h-5.439v-5.439zM6.75 29.25v-26.5h10.5v7.25c0 0.414 0.336 0.75 0.75 0.75h7.25v18.5z\"\n // ></path>\n // </svg>`);\n // }\n // }\n}\n","@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n","import { AXDrawerComponent } from '@acorex/components/drawer';\nimport { ChangeDetectionStrategy, Component, effect, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\n\n@Component({\n selector: 'ax-file-explorer-tree',\n templateUrl: './file-explorer-tree.component.html',\n styleUrls: ['./file-explorer-tree.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerTreeComponent {\n protected internalService = inject(AXFileExplorerInternalService);\n protected drawer = viewChild(AXDrawerComponent);\n\n #effect = effect(() => {\n if (this.internalService.treeViewState()) {\n this.drawer().open();\n } else {\n this.drawer().close();\n }\n });\n}\n","<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view [selectable]=\"false\" hasChildField=\"hasChild\" [items]=\"internalService.dataCallBack()\"></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n","import { AXContextMenuComponent, AXContextMenuItemsClickEvent, AXContextMenuOpeningEvent, AXMenuItem } from '@acorex/components/menu';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, input, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerItemComponent } from '../file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerSchema } from '../file-explorer-types';\n\n@Component({\n selector: 'ax-file-explorer-view',\n templateUrl: './file-explorer-view.component.html',\n styleUrls: ['./file-explorer-view.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerViewComponent {\n dataCallBack = input.required<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>();\n protected clickedItems = new Set();\n protected contextMenu = viewChild(AXContextMenuComponent);\n protected internalService = inject(AXFileExplorerInternalService);\n\n #init = afterNextRender(() => {\n this.setInitialAllData();\n this.internalService.dataCallBack.set(this.dataCallBack());\n });\n\n #effect2 = effect(() => {\n if (this.internalService.activeFolderId()) {\n const result = this.internalService.findItemInNestedArray(this.internalService.allData(), (item) => item.id === this.internalService.activeFolderId());\n this.internalService.showData.set(result.children);\n } else {\n this.internalService.showData.set(this.internalService.allData());\n }\n setTimeout(() => {\n this.contextMenu().refresh();\n });\n });\n\n protected async setInitialAllData() {\n const rootData = await this.dataCallBack()();\n this.internalService.allData.set(rootData);\n }\n\n protected async dbClickHandler(item?: AXFileExplorerSchema) {\n if (item.extension) return;\n if (!item?.id) return;\n this.internalService.activeFolderId.set(item.id);\n const clickedItem = this.internalService.findItemInNestedArray(this.internalService.allData(), (e) => e.id === item.id);\n this.internalService.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);\n let canPass = true;\n this.clickedItems.forEach((e) => {\n if (e === item.id) canPass = false;\n });\n this.clickedItems.add(item.id);\n if (!canPass) return;\n const newChild = await this.dataCallBack()(item.id);\n this.internalService.allData.update((prev) => {\n const copy = [...prev];\n const find = this.internalService.findItemInNestedArray(copy, (e) => e.id === item.id);\n find.children = newChild;\n return copy;\n });\n }\n\n protected handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement['__axContext__'] as AXFileExplorerItemComponent;\n\n const items: AXMenuItem[] = [{ text: 'open', data: target }, { text: 'delete', data: target } as AXMenuItem];\n e.items.push(...items);\n\n // if (items.length) {\n // e.items.push(...items);\n // } else {\n // e.canceled = true;\n // }\n }\n\n protected handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n this.dbClickHandler(e.item.data.data());\n }\n}\n","<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFileExplorerContainerComponent } from './file-explorer-container/file-explorer-container.component';\nimport { AXFileExplorerHeaderComponent } from './file-explorer-header/file-explorer-header.component';\nimport { AXFileExplorerItemComponent } from './file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerTreeComponent } from './file-explorer-tree/file-explorer-tree.component';\nimport { AXFileExplorerViewComponent } from './file-explorer-view/file-explorer-view.component';\n\nconst COMPONENT = [\n AXFileExplorerContainerComponent,\n AXFileExplorerViewComponent,\n AXFileExplorerItemComponent,\n AXFileExplorerHeaderComponent,\n AXFileExplorerTreeComponent,\n];\n\nconst MODULES = [AXDecoratorModule, AXButtonModule, AXBreadcrumbsModule, CommonModule, AXToolBarModule, AXMenuModule, AXDrawerModule, AXTreeViewModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFileExplorerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i2","i3","i1","i3.AXFileExplorerItemComponent"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-file-explorer.mjs","sources":["../../../../libs/components/file-explorer/src/lib/file-explorer-internal.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-header/file-explorer-header.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-header/file-explorer-header.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-tree/file-explorer-tree.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-tree/file-explorer-tree.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer.module.ts","../../../../libs/components/file-explorer/src/acorex-components-file-explorer.ts"],"sourcesContent":["import { AXTreeViewComponent } from '@acorex/components/tree-view';\nimport { Injectable, signal } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from './file-explorer-types';\n\n@Injectable()\nexport class AXFileExplorerInternalService {\n viewMode = signal<ViewModeType>('ax-large-icon');\n treeViewState = signal(false);\n allData = signal<AXFileExplorerSchema[]>([]);\n showData = signal<AXFileExplorerSchema[]>([]);\n breadcrumbsData = signal(['root']);\n activeFolderId = signal<string | number>(null);\n dataCallBack = signal<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>(null);\n treeViewInstant = signal<AXTreeViewComponent>(null);\n clickedItems = new Set();\n\n findItemInNestedArray(array: any[], predicate: (item: any) => boolean) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (item.children) {\n const found = this.findItemInNestedArray(item.children, predicate);\n if (found) return found;\n }\n }\n return null;\n }\n\n async dbClickHandler(item?: AXFileExplorerSchema, isTreeViewClicked = true) {\n if (item.extension) return;\n if (!item?.id) return;\n\n if (isTreeViewClicked) {\n this.treeViewInstant().executeOnTreeNode(item, 'active', true);\n this.treeViewInstant().executeOnTreeNode(item, 'expand', true);\n }\n\n this.activeFolderId.set(item.id);\n const clickedItem = this.findItemInNestedArray(this.allData(), (e) => e.id === item.id);\n this.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);\n let canPass = true;\n this.clickedItems.forEach((e) => {\n if (e === item.id) canPass = false;\n });\n this.clickedItems.add(item.id);\n if (!canPass) return;\n const newChild = await this.dataCallBack()(item.id);\n this.allData.update((prev) => {\n const copy = [...prev];\n const find = this.findItemInNestedArray(copy, (e) => e.id === item.id);\n find.children = newChild;\n return copy;\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { AXFileExplorerInternalService } from './file-explorer-internal.service';\nimport { ViewModeType } from './file-explorer-types';\n\n@Injectable()\nexport class AXFileExplorerService {\n private internalService = inject(AXFileExplorerInternalService);\n\n backButtonHandler() {\n this.internalService.breadcrumbsData.update((prev) => {\n const copy = [...prev];\n if (copy.length !== 1) copy.pop();\n return copy;\n });\n\n const parentId = this.internalService.showData()[0].parentId;\n const parent = this.internalService.findItemInNestedArray(this.internalService.allData(), (item) => item.id === parentId);\n if (parent?.parentId) {\n this.internalService.activeFolderId.set(parent.parentId);\n } else {\n this.internalService.activeFolderId.set(null);\n }\n\n this.internalService.treeViewInstant().executeOnTreeNode(parent, 'active', false);\n }\n\n menuToggleHandler() {\n this.internalService.treeViewState.update((prev) => !prev);\n }\n\n changeViewHandler(v: ViewModeType) {\n this.internalService.viewMode.set(v);\n }\n\n async sortItemHandler(sort: 'name' | 'date' | 'type') {\n await this.internalService.dataCallBack()(this.internalService.activeFolderId(), sort);\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-container',\n templateUrl: './file-explorer-container.component.html',\n styleUrls: ['./file-explorer-container.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n providers: [AXFileExplorerService, AXFileExplorerInternalService],\n})\nexport class AXFileExplorerContainerComponent {}\n","<ng-content select=\"ax-file-explorer-tree\"></ng-content>\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-header',\n templateUrl: './file-explorer-header.component.html',\n styleUrls: ['./file-explorer-header.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerHeaderComponent {\n protected service = inject(AXFileExplorerService);\n protected internalService = inject(AXFileExplorerInternalService);\n}\n","<ax-toolbar>\n <ax-prefix>\n <ax-button (onClick)=\"service.menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"service.backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of internalService.breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <ax-text>{{ item }}</ax-text>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"service.changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"service.sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"service.sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"service.sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\n\n@Component({\n selector: 'ax-file-explorer-item',\n templateUrl: './file-explorer-item.component.html',\n styleUrls: ['./file-explorer-item.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerItemComponent extends MXBaseComponent {\n data = input<AXFileExplorerSchema>();\n dbClick = output();\n viewMode = input<ViewModeType>();\n\n protected dbClickHandler() {\n this.dbClick.emit();\n }\n\n // protected fileExtensionPreviewHandler(extension: string) {\n // switch (extension) {\n // case '':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path fill=\"none\" d=\"M18 10L13 10\" stroke-linecap=\"round\"/>\n // <path fill=\"none\" d=\"M10 3H16.5C16.9644 3 17.1966 3 17.3916 3.02567C18.7378 3.2029 19.7971 4.26222 19.9743 5.60842C20 5.80337 20 6.03558 20 6.5\" />\n // <path fill=\"none\" d=\"M2 6.94975C2 6.06722 2 5.62595 2.06935 5.25839C2.37464 3.64031 3.64031 2.37464 5.25839 2.06935C5.62595 2 6.06722 2 6.94975 2C7.33642 2 7.52976 2 7.71557 2.01738C8.51665 2.09229 9.27652 2.40704 9.89594 2.92051C10.0396 3.03961 10.1763 3.17633 10.4497 3.44975L11 4C11.8158 4.81578 12.2237 5.22367 12.7121 5.49543C12.9804 5.64471 13.2651 5.7626 13.5604 5.84678C14.0979 6 14.6747 6 15.8284 6H16.2021C18.8345 6 20.1506 6 21.0062 6.76946C21.0849 6.84024 21.1598 6.91514 21.2305 6.99383C22 7.84935 22 9.16554 22 11.7979V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V6.94975Z\" />\n // </svg>`);\n // break;\n // case 'jpg':\n // case 'png':\n // case 'jpeg':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"-0.5 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M21 22H3C2.72 22 2.5 21.6517 2.5 21.2083V3.79167C2.5 3.34833 2.72 3 3 3H21C21.28 3 21.5 3.34833 21.5 3.79167V21.2083C21.5 21.6517 21.28 22 21 22Z\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M4.5 19.1875L9.66 12.6875C9.86 12.4375 10.24 12.4375 10.44 12.6875L15.6 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M16.2 16.6975L16.4599 16.3275C16.6599 16.0775 17.0399 16.0775 17.2399 16.3275L19.4999 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M17.2046 9.54315C17.2046 10.4294 16.4862 11.1478 15.6 11.1478C14.7138 11.1478 13.9954 10.4294 13.9954 9.54315C13.9954 8.65695 14.7138 7.93854 15.6 7.93854C16.4862 7.93854 17.2046 8.65695 17.2046 9.54315Z\"\n // />\n // </svg>`);\n // break;\n // case 'mp3':\n // case 'wav':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // fill-rule=\"evenodd\"\n // clip-rule=\"evenodd\"\n // d=\"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289L3.29289 7.29289C3.10536 7.48043 3 7.73478 3 8V20C3 21.6569 4.34315 23 6 23H7C7.55228 23 8 22.5523 8 22C8 21.4477 7.55228 21 7 21H6C5.44772 21 5 20.5523 5 20V9H10C10.5523 9 11 8.55228 11 8V3H18C18.5523 3 19 3.44772 19 4V7C19 7.55228 19.4477 8 20 8C20.5523 8 21 7.55228 21 7V4C21 2.34315 19.6569 1 18 1H10ZM9 7H6.41421L9 4.41421V7ZM12.5 24C13.8807 24 15 22.8807 15 21.5V12.8673L20 12.153V18.05C19.8384 18.0172 19.6712 18 19.5 18C18.1193 18 17 19.1193 17 20.5C17 21.8807 18.1193 23 19.5 23C20.8807 23 22 21.8807 22 20.5V11C22 10.7101 21.8742 10.4345 21.6552 10.2445C21.4362 10.0546 21.1456 9.96905 20.8586 10.0101L13.8586 11.0101C13.3659 11.0804 13 11.5023 13 12V19.05C12.8384 19.0172 12.6712 19 12.5 19C11.1193 19 10 20.1193 10 21.5C10 22.8807 11.1193 24 12.5 24Z\"\n // />\n // </svg>`);\n // default:\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M26.731 9.902c-0.005-0.035-0.011-0.066-0.019-0.095l0.001 0.005c-0.031-0.134-0.094-0.249-0.182-0.342l0 0-8-8c-0.092-0.087-0.207-0.15-0.335-0.181l-0.005-0.001c-0.027-0.008-0.059-0.014-0.092-0.019l-0.003-0c-0.026-0.007-0.059-0.014-0.092-0.019l-0.004-0h-12c-0.414 0-0.75 0.336-0.75 0.75v0 28c0 0.414 0.336 0.75 0.75 0.75h20c0.414-0 0.75-0.336 0.75-0.75v0-20c-0.005-0.038-0.012-0.071-0.020-0.103l0.001 0.005zM24.189 9.25h-5.439v-5.439zM6.75 29.25v-26.5h10.5v7.25c0 0.414 0.336 0.75 0.75 0.75h7.25v18.5z\"\n // ></path>\n // </svg>`);\n // }\n // }\n}\n","@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n","import { AXDrawerComponent } from '@acorex/components/drawer';\nimport { AXTreeItemClickBaseEvent, AXTreeViewComponent } from '@acorex/components/tree-view';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\n\n@Component({\n selector: 'ax-file-explorer-tree',\n templateUrl: './file-explorer-tree.component.html',\n styleUrls: ['./file-explorer-tree.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerTreeComponent {\n protected internalService = inject(AXFileExplorerInternalService);\n protected drawer = viewChild(AXDrawerComponent);\n protected treeView = viewChild(AXTreeViewComponent);\n\n #effect = effect(() => {\n if (this.internalService.treeViewState()) {\n this.drawer().open();\n } else {\n this.drawer().close();\n }\n });\n\n #init = afterNextRender(() => {\n this.internalService.treeViewInstant.set(this.treeView());\n });\n\n protected openFolderOnViewHandler(e: AXTreeItemClickBaseEvent) {\n this.internalService.dbClickHandler(e.data, false);\n }\n}\n","<ax-drawer-container\n [ngClass]=\"this.internalService.treeViewState() && 'ax-file-explore-drawer-border'\"\n [ngStyle]=\"this.internalService.treeViewState() ? { width: 'fit-content' } : { width: 0 }\"\n>\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ax-tree-view\n (onNodeExpandClick)=\"openFolderOnViewHandler($event)\"\n [selectable]=\"false\"\n hasChildField=\"hasChild\"\n [items]=\"internalService.dataCallBack()\"\n ></ax-tree-view>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n","import { AXContextMenuComponent, AXContextMenuItemsClickEvent, AXContextMenuOpeningEvent, AXMenuItem } from '@acorex/components/menu';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerInternalService } from '../file-explorer-internal.service';\nimport { AXFileExplorerItemComponent } from '../file-explorer-item/file-explorer-item.component';\n\n@Component({\n selector: 'ax-file-explorer-view',\n templateUrl: './file-explorer-view.component.html',\n styleUrls: ['./file-explorer-view.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerViewComponent {\n dataCallBack = input.required<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>();\n\n protected contextMenu = viewChild(AXContextMenuComponent);\n protected internalService = inject(AXFileExplorerInternalService);\n\n #init = effect(() => {\n this.setInitialAllData();\n this.internalService.dataCallBack.set(this.dataCallBack());\n });\n\n #effect2 = effect(() => {\n if (this.internalService.activeFolderId()) {\n const result = this.internalService.findItemInNestedArray(this.internalService.allData(), (item) => item.id === this.internalService.activeFolderId());\n this.internalService.showData.set(result.children);\n } else {\n this.internalService.showData.set(this.internalService.allData());\n }\n setTimeout(() => {\n this.contextMenu().refresh();\n });\n });\n\n protected async setInitialAllData() {\n const rootData = await this.dataCallBack()();\n this.internalService.allData.set(rootData);\n }\n\n protected handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement['__axContext__'] as AXFileExplorerItemComponent;\n\n const items: AXMenuItem[] = [{ text: 'open', data: target }, { text: 'delete', data: target } as AXMenuItem];\n e.items.push(...items);\n\n // if (items.length) {\n // e.items.push(...items);\n // } else {\n // e.canceled = true;\n // }\n }\n\n protected handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n this.internalService.dbClickHandler(e.item.data.data());\n }\n}\n","<ng-content select=\"ax-file-explorer-header\"></ng-content>\n\n<div [ngClass]=\"internalService.viewMode()\" class=\"ax-file-container\">\n @for (item of internalService.showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"internalService.dbClickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"internalService.viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFileExplorerContainerComponent } from './file-explorer-container/file-explorer-container.component';\nimport { AXFileExplorerHeaderComponent } from './file-explorer-header/file-explorer-header.component';\nimport { AXFileExplorerItemComponent } from './file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerTreeComponent } from './file-explorer-tree/file-explorer-tree.component';\nimport { AXFileExplorerViewComponent } from './file-explorer-view/file-explorer-view.component';\n\nconst COMPONENT = [\n AXFileExplorerContainerComponent,\n AXFileExplorerViewComponent,\n AXFileExplorerItemComponent,\n AXFileExplorerHeaderComponent,\n AXFileExplorerTreeComponent,\n];\n\nconst MODULES = [AXDecoratorModule, AXButtonModule, AXBreadcrumbsModule, CommonModule, AXToolBarModule, AXMenuModule, AXDrawerModule, AXTreeViewModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFileExplorerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i2","i3","i1","i3.AXFileExplorerItemComponent"],"mappings":"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"}
@@ -186,8 +186,10 @@ class AXListComponent extends MXSelectionValueComponent {
186
186
  * Refreshes the list by clearing the selection cache and reloading the data source.
187
187
  * @ignore
188
188
  */
189
- refresh() {
190
- this.clearSelectionCache();
189
+ refresh(clearSelection = true) {
190
+ if (clearSelection) {
191
+ this.clearSelectionCache();
192
+ }
191
193
  this.listDataSource.refresh();
192
194
  }
193
195
  /**
@@ -203,8 +205,7 @@ class AXListComponent extends MXSelectionValueComponent {
203
205
  */
204
206
  focus() {
205
207
  const list = this.getHostElement().querySelector('ul');
206
- const focusable = list.querySelector('li.ax-state-selected') ??
207
- list.querySelector('li.list-item');
208
+ const focusable = list.querySelector('li.ax-state-selected') ?? list.querySelector('li.list-item');
208
209
  if (focusable) {
209
210
  focusable.focus();
210
211
  }
@@ -240,18 +241,7 @@ class AXListComponent extends MXSelectionValueComponent {
240
241
  }
241
242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXListComponent, decorators: [{
242
243
  type: Component,
243
- args: [{ selector: 'ax-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [
244
- 'id',
245
- 'name',
246
- 'disabled',
247
- 'readonly',
248
- 'valueField',
249
- 'textField',
250
- 'textTemplate',
251
- 'disabledField',
252
- 'multiple',
253
- 'selectionMode',
254
- ], outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'], providers: [
244
+ args: [{ selector: 'ax-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['id', 'name', 'disabled', 'readonly', 'valueField', 'textField', 'textTemplate', 'disabledField', 'multiple', 'selectionMode'], outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'], providers: [
255
245
  { provide: AXComponent, useExisting: AXListComponent },
256
246
  { provide: AXFocusableComponent, useExisting: AXListComponent },
257
247
  { provide: AXValuableComponent, useExisting: AXListComponent },
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-list.mjs","sources":["../../../../libs/components/list/src/lib/list.component.ts","../../../../libs/components/list/src/lib/list.component.html","../../../../libs/components/list/src/lib/list.module.ts","../../../../libs/components/list/src/acorex-components-list.ts"],"sourcesContent":["import {\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusableComponent,\n AXItemClickEvent,\n AXListDataSource,\n AXValuableComponent,\n AX_SELECTION_DATA_TOKEN,\n MXSelectionBridgeService,\n MXSelectionValueComponent,\n convertArrayToDataSource,\n} from '@acorex/components/common';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n forwardRef,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface AXListScrollIndexChanged extends AXEvent {\n index: number;\n}\n\n/**\n * provides a list control with various input options and events for user interaction.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'id',\n 'name',\n 'disabled',\n 'readonly',\n 'valueField',\n 'textField',\n 'textTemplate',\n 'disabledField',\n 'multiple',\n 'selectionMode',\n ],\n outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'],\n providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService: MXSelectionBridgeService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ],\n standalone: false\n})\nexport class AXListComponent extends MXSelectionValueComponent implements OnInit {\n /**\n * Emitted when an item in the list is clicked.\n *\n * @event\n */\n @Output()\n onItemClick: EventEmitter<AXItemClickEvent<any>> = new EventEmitter<AXItemClickEvent<any>>();\n\n /**\n * Defines the data source for the list.\n *\n * @defaultValue convertArrayToDataSource([])\n */\n @Input()\n dataSource: AXDataSource<unknown> = convertArrayToDataSource([]);\n\n /**\n * @ignore\n */\n itemHeightSignal: WritableSignal<number | 'auto'> = signal(40);\n\n /**\n * Sets the height of each item in the list.\n */\n @Input()\n public set itemHeight(v: number | 'auto') {\n this.itemHeightSignal.set(v);\n }\n\n /**\n * Template for rendering individual items in the list.\n */\n @Input()\n itemTemplate: TemplateRef<unknown>;\n\n /**\n * Template to display when the list is empty.\n */\n @Input()\n emptyTemplate: TemplateRef<unknown>;\n\n /**\n * Template to show while the list is loading.\n */\n @Input()\n loadingTemplate: TemplateRef<unknown>;\n\n /**\n * Emitted when the index of the scrolled item changes.\n *\n * @event\n */\n @Output()\n onScrolledIndexChanged: EventEmitter<AXListScrollIndexChanged> =\n new EventEmitter<AXListScrollIndexChanged>();\n\n /**\n * Specifies whether the checkbox is enabled.\n *\n * @defaultValue true\n */\n @Input()\n checkbox = true;\n\n /**\n * @ignore\n */\n protected listDataSource: AXListDataSource<unknown>;\n\n /**\n * @ignore\n */\n protected isLoading = signal(true);\n\n /**\n * @ignore\n */\n protected hasItems = false;\n\n /**\n * @ignore\n */\n private lastIndex = 0;\n\n /**\n * @ignore\n */\n private postponeFocus = false;\n\n /**\n * @ignore\n */\n @ViewChild(CdkVirtualScrollViewport)\n private viewport: CdkVirtualScrollViewport;\n\n trackByIdx(i) {\n return i;\n }\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this.listDataSource = new AXListDataSource<unknown>({\n source: this.dataSource,\n });\n this.listDataSource.source.onLoadingChanged.subscribe((data) => {\n this.isLoading.set(data);\n });\n this.listDataSource.source.onChanged.subscribe((data) => {\n this.hasItems = data.totalCount > 0;\n setTimeout(() => {\n this.render();\n }, 100);\n });\n }\n /**\n * @ignore\n */\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.toggleSelect(item);\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: e.target as HTMLElement,\n isUserInteraction: true,\n nativeEvent: e,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n const id = this.document.activeElement?.closest('li')?.dataset['id'];\n this.toggleSelect(id);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n /**\n * @ignore\n */\n private focusItemByNav(sign: -1 | 1): void {\n if (isPlatformBrowser(this.platformID)) {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector<HTMLDivElement>(s);\n const itemDiv: HTMLElement =\n this.document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\n if (next) {\n next.focus();\n }\n }\n }\n\n /**\n * @ignore\n */\n protected _handleOnscrolledIndexChange(e: number) {\n this.lastIndex = e;\n this.onScrolledIndexChanged.emit({\n component: this,\n index: this.lastIndex,\n isUserInteraction: true,\n });\n }\n\n /**\n * Retrieves an item from the data source based on the provided key.\n *\n * @param key The key used to identify the item.\n * @ignore\n */\n getItemByKey(key: unknown): Promise<unknown> | unknown {\n return this.dataSource.find(key);\n }\n\n /**\n * Renders the component by updating the viewport size, scrolling to the last index, and optionally focusing the element.\n */\n public render() {\n this.viewport.checkViewportSize();\n this.viewport.scrollToIndex(this.lastIndex);\n if (this.postponeFocus) {\n this.postponeFocus = false;\n this.focus();\n }\n }\n\n /**\n * Refreshes the list by clearing the selection cache and reloading the data source.\n * @ignore\n */\n public refresh() {\n this.clearSelectionCache();\n this.listDataSource.refresh();\n }\n\n /**\n * Scrolls the viewport to the specified item index.\n * @param index The index of the item to scroll to.\n * @ignore\n */\n public scrollToIndex(index: number) {\n this.viewport.scrollToIndex(index);\n }\n /**\n * Sets focus to the first selectable list item. If no item is available, postpones focus.\n */\n override focus(): void {\n const list = this.getHostElement().querySelector('ul');\n const focusable =\n list.querySelector<HTMLElement>('li.ax-state-selected') ??\n list.querySelector<HTMLElement>('li.list-item');\n if (focusable) {\n focusable.focus();\n } else {\n this.postponeFocus = true;\n }\n }\n\n /**\n * Determines whether to show the empty template based on the presence of items and loading state.\n * @ignore\n */\n showEmptyTemplate = () => this.emptyTemplate && this.hasItems === false && this.isLoading() === false;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string {\n const _class = `ax-default ${this.showEmptyTemplate() ? 'ax-state-empty' : ''}`;\n return this.itemTemplate ? '' : _class;\n }\n}\n","<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeightSignal()\"\n [style.--item-height]=\"itemHeightSignal() + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: { data: item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <div class=\"ax-label-container\">\n <input\n class=\"ax-checkbox\"\n *ngIf=\"multiple && checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{ getDisplayText(item) }}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate; else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ 'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n}\n","import { AXTranslationModule } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\n\nconst COMPONENT = [AXListComponent];\nconst MODULES = [CommonModule, ScrollingModule, AXTranslationModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-list.mjs","sources":["../../../../libs/components/list/src/lib/list.component.ts","../../../../libs/components/list/src/lib/list.component.html","../../../../libs/components/list/src/lib/list.module.ts","../../../../libs/components/list/src/acorex-components-list.ts"],"sourcesContent":["import {\n AXComponent,\n AXDataSource,\n AXEvent,\n AXFocusableComponent,\n AXItemClickEvent,\n AXListDataSource,\n AXValuableComponent,\n AX_SELECTION_DATA_TOKEN,\n MXSelectionBridgeService,\n MXSelectionValueComponent,\n convertArrayToDataSource,\n} from '@acorex/components/common';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n WritableSignal,\n forwardRef,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface AXListScrollIndexChanged extends AXEvent {\n index: number;\n}\n\n/**\n * provides a list control with various input options and events for user interaction.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['id', 'name', 'disabled', 'readonly', 'valueField', 'textField', 'textTemplate', 'disabledField', 'multiple', 'selectionMode'],\n outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'],\n providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService: MXSelectionBridgeService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ],\n standalone: false,\n})\nexport class AXListComponent extends MXSelectionValueComponent implements OnInit {\n /**\n * Emitted when an item in the list is clicked.\n *\n * @event\n */\n @Output()\n onItemClick: EventEmitter<AXItemClickEvent<any>> = new EventEmitter<AXItemClickEvent<any>>();\n\n /**\n * Defines the data source for the list.\n *\n * @defaultValue convertArrayToDataSource([])\n */\n @Input()\n dataSource: AXDataSource<unknown> = convertArrayToDataSource([]);\n\n /**\n * @ignore\n */\n itemHeightSignal: WritableSignal<number | 'auto'> = signal(40);\n\n /**\n * Sets the height of each item in the list.\n */\n @Input()\n public set itemHeight(v: number | 'auto') {\n this.itemHeightSignal.set(v);\n }\n\n /**\n * Template for rendering individual items in the list.\n */\n @Input()\n itemTemplate: TemplateRef<unknown>;\n\n /**\n * Template to display when the list is empty.\n */\n @Input()\n emptyTemplate: TemplateRef<unknown>;\n\n /**\n * Template to show while the list is loading.\n */\n @Input()\n loadingTemplate: TemplateRef<unknown>;\n\n /**\n * Emitted when the index of the scrolled item changes.\n *\n * @event\n */\n @Output()\n onScrolledIndexChanged: EventEmitter<AXListScrollIndexChanged> = new EventEmitter<AXListScrollIndexChanged>();\n\n /**\n * Specifies whether the checkbox is enabled.\n *\n * @defaultValue true\n */\n @Input()\n checkbox = true;\n\n /**\n * @ignore\n */\n protected listDataSource: AXListDataSource<unknown>;\n\n /**\n * @ignore\n */\n protected isLoading = signal(true);\n\n /**\n * @ignore\n */\n protected hasItems = false;\n\n /**\n * @ignore\n */\n private lastIndex = 0;\n\n /**\n * @ignore\n */\n private postponeFocus = false;\n\n /**\n * @ignore\n */\n @ViewChild(CdkVirtualScrollViewport)\n private viewport: CdkVirtualScrollViewport;\n\n trackByIdx(i) {\n return i;\n }\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this.listDataSource = new AXListDataSource<unknown>({\n source: this.dataSource,\n });\n this.listDataSource.source.onLoadingChanged.subscribe((data) => {\n this.isLoading.set(data);\n });\n this.listDataSource.source.onChanged.subscribe((data) => {\n this.hasItems = data.totalCount > 0;\n setTimeout(() => {\n this.render();\n }, 100);\n });\n }\n /**\n * @ignore\n */\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.toggleSelect(item);\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: e.target as HTMLElement,\n isUserInteraction: true,\n nativeEvent: e,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n const id = this.document.activeElement?.closest('li')?.dataset['id'];\n this.toggleSelect(id);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n /**\n * @ignore\n */\n private focusItemByNav(sign: -1 | 1): void {\n if (isPlatformBrowser(this.platformID)) {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector<HTMLDivElement>(s);\n const itemDiv: HTMLElement = this.document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\n if (next) {\n next.focus();\n }\n }\n }\n\n /**\n * @ignore\n */\n protected _handleOnscrolledIndexChange(e: number) {\n this.lastIndex = e;\n this.onScrolledIndexChanged.emit({\n component: this,\n index: this.lastIndex,\n isUserInteraction: true,\n });\n }\n\n /**\n * Retrieves an item from the data source based on the provided key.\n *\n * @param key The key used to identify the item.\n * @ignore\n */\n getItemByKey(key: unknown): Promise<unknown> | unknown {\n return this.dataSource.find(key);\n }\n\n /**\n * Renders the component by updating the viewport size, scrolling to the last index, and optionally focusing the element.\n */\n public render() {\n this.viewport.checkViewportSize();\n this.viewport.scrollToIndex(this.lastIndex);\n if (this.postponeFocus) {\n this.postponeFocus = false;\n this.focus();\n }\n }\n\n /**\n * Refreshes the list by clearing the selection cache and reloading the data source.\n * @ignore\n */\n public refresh(clearSelection = true) {\n if (clearSelection) {\n this.clearSelectionCache();\n }\n this.listDataSource.refresh();\n }\n\n /**\n * Scrolls the viewport to the specified item index.\n * @param index The index of the item to scroll to.\n * @ignore\n */\n public scrollToIndex(index: number) {\n this.viewport.scrollToIndex(index);\n }\n /**\n * Sets focus to the first selectable list item. If no item is available, postpones focus.\n */\n override focus(): void {\n const list = this.getHostElement().querySelector('ul');\n const focusable = list.querySelector<HTMLElement>('li.ax-state-selected') ?? list.querySelector<HTMLElement>('li.list-item');\n if (focusable) {\n focusable.focus();\n } else {\n this.postponeFocus = true;\n }\n }\n\n /**\n * Determines whether to show the empty template based on the presence of items and loading state.\n * @ignore\n */\n showEmptyTemplate = () => this.emptyTemplate && this.hasItems === false && this.isLoading() === false;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string {\n const _class = `ax-default ${this.showEmptyTemplate() ? 'ax-state-empty' : ''}`;\n return this.itemTemplate ? '' : _class;\n }\n}\n","<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeightSignal()\"\n [style.--item-height]=\"itemHeightSignal() + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: { data: item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <div class=\"ax-label-container\">\n <input\n class=\"ax-checkbox\"\n *ngIf=\"multiple && checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{ getDisplayText(item) }}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate; else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ 'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n}\n","import { AXTranslationModule } from '@acorex/core/translation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\n\nconst COMPONENT = [AXListComponent];\nconst MODULES = [CommonModule, ScrollingModule, AXTranslationModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -164,7 +164,7 @@ class AXPhoneBoxComponent extends classes((MXInputBaseValueComponent), MXLookCom
164
164
  useExisting: forwardRef(() => AXPhoneBoxComponent),
165
165
  multi: true,
166
166
  },
167
- ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"emitOnKeydownEvent($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"320\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "selectedItems", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i4.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i6.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
167
+ ], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["s"], descendants: true, isSignal: true }, { propertyName: "textbox", first: true, predicate: AXTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n dir=\"ltr\"\n [look]=\"look\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [mask-options]=\"{ mask: selectedCountry()?.format }\"\n [placeholder]=\"selectedCountry()?.format\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\"\n (onKeyDown)=\"emitOnKeydownEvent($event.nativeEvent)\"\n (onKeyPress)=\"emitOnKeypressEvent($event.nativeEvent)\"\n (onKeyUp)=\"emitOnKeyupEvent($event.nativeEvent)\"\n>\n <ax-prefix>\n @if (precode()) {\n <ax-text>{{ precode() }}</ax-text>\n } @else {\n <ax-select-box\n #s\n look=\"blank\"\n [disabled]=\"disabled || readonly\"\n [readonly]=\"readonly\"\n [dropdownWidth]=\"320\"\n [dataSource]=\"dataSource\"\n [ngModel]=\"selectedCountry()\"\n [textField]=\"'iso2code'\"\n [multiple]=\"false\"\n [valueField]=\"'code'\"\n [itemTemplate]=\"customItemTemplate\"\n [selectedTemplate]=\"selectedTemplate\"\n (onValueChanged)=\"_handleCountryValueChanged($event)\"\n (onClosed)=\"handleCountryOnClosed()\"\n [tabIndex]=\"included().length === 1 ? '-1' : '1'\"\n >\n <ax-search-box class=\"ax-sm\" look=\"fill\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n <ng-template #customItemTemplate let-item>\n <div class=\"ax-country-item\">\n <div\n class=\"ax-country-flag\"\n [ngStyle]=\"{\n 'background-position': item.data.bkPosition?.x + ' ' + item.data.bkPosition?.y,\n 'background-image': 'url(' + flags() + ')',\n }\"\n ></div>\n <div>\n <span class=\"ax-country-name\">{{ item.data.name }}</span>\n <span class=\"ax-iso2code\">{{ item.data.iso2code }}</span>\n </div>\n </div>\n </ng-template>\n <ng-template #selectedTemplate let-item>\n <div class=\"ax-selected-country\">\n <span>{{ item.data.iso2code }}</span>\n </div>\n </ng-template>\n <ng-template #loading></ng-template>\n </ax-select-box>\n }\n </ax-prefix>\n</ax-text-box>\n\n<ng-content select=\"ax-clear-button \"></ng-content>\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-phone-box .ax-editor-container{--ax-comp-editor-space-start-size: 0}ax-phone-box ax-select-box ax-dropdown-box{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-border-width: 0px !important;--ax-comp-editor-border-color: transparent !important}ax-phone-box ax-select-box ax-dropdown-box.ax-editor-container{--ax-comp-editor-box-outline-width: 0;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-phone-box ax-select-box ax-dropdown-box .ax-editor,ax-phone-box ax-select-box ax-dropdown-box .ax-input{--ax-comp-editor-space-start-size: 0}.ax-country-item{padding:.75rem .5rem;cursor:pointer;display:flex;gap:.5rem;align-items:center}.ax-country-item:hover{background-color:rgba(var(--ax-sys-color-ghost-lighter-surface))}.ax-country-item .ax-country-name{font-weight:500;margin-inline-end:.5rem}.ax-country-item .ax-iso2code{opacity:.7}.ax-country-flag{width:25px!important;height:20px!important;background-repeat:no-repeat}.ax-selected-country{display:flex;gap:.5rem;align-items:center;padding-inline-start:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i4.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i5.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i6.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
168
168
  }
169
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPhoneBoxComponent, decorators: [{
170
170
  type: Component,