@memberjunction/ng-file-storage 3.4.0 → 4.1.0

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 (37) hide show
  1. package/README.md +139 -282
  2. package/dist/lib/category-tree/category-tree.d.ts.map +1 -1
  3. package/dist/lib/category-tree/category-tree.js +25 -25
  4. package/dist/lib/category-tree/category-tree.js.map +1 -1
  5. package/dist/lib/file-browser/file-browser-demo.component.d.ts.map +1 -1
  6. package/dist/lib/file-browser/file-browser-demo.component.js +3 -3
  7. package/dist/lib/file-browser/file-browser-demo.component.js.map +1 -1
  8. package/dist/lib/file-browser/file-browser-resource.component.d.ts +0 -1
  9. package/dist/lib/file-browser/file-browser-resource.component.d.ts.map +1 -1
  10. package/dist/lib/file-browser/file-browser-resource.component.js +3 -6
  11. package/dist/lib/file-browser/file-browser-resource.component.js.map +1 -1
  12. package/dist/lib/file-browser/file-browser.component.d.ts.map +1 -1
  13. package/dist/lib/file-browser/file-browser.component.js +3 -3
  14. package/dist/lib/file-browser/file-browser.component.js.map +1 -1
  15. package/dist/lib/file-browser/file-grid.component.d.ts.map +1 -1
  16. package/dist/lib/file-browser/file-grid.component.js +400 -382
  17. package/dist/lib/file-browser/file-grid.component.js.map +1 -1
  18. package/dist/lib/file-browser/folder-tree.component.d.ts.map +1 -1
  19. package/dist/lib/file-browser/folder-tree.component.js +65 -65
  20. package/dist/lib/file-browser/folder-tree.component.js.map +1 -1
  21. package/dist/lib/file-browser/storage-providers-list.component.d.ts.map +1 -1
  22. package/dist/lib/file-browser/storage-providers-list.component.js +50 -46
  23. package/dist/lib/file-browser/storage-providers-list.component.js.map +1 -1
  24. package/dist/lib/file-upload/file-upload.d.ts +19 -19
  25. package/dist/lib/file-upload/file-upload.d.ts.map +1 -1
  26. package/dist/lib/file-upload/file-upload.js +13 -14
  27. package/dist/lib/file-upload/file-upload.js.map +1 -1
  28. package/dist/lib/files-grid/files-grid.d.ts.map +1 -1
  29. package/dist/lib/files-grid/files-grid.js +19 -20
  30. package/dist/lib/files-grid/files-grid.js.map +1 -1
  31. package/dist/lib/module.d.ts +13 -14
  32. package/dist/lib/module.d.ts.map +1 -1
  33. package/dist/lib/module.js +0 -4
  34. package/dist/lib/module.js.map +1 -1
  35. package/dist/public-api.js +0 -3
  36. package/dist/public-api.js.map +1 -1
  37. package/package.json +28 -29
@@ -1,18 +1,17 @@
1
1
  import { Component, EventEmitter, Output } from '@angular/core';
2
2
  import { FileStorageEngine } from '@memberjunction/core-entities';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@memberjunction/ng-shared-generic";
6
- function StorageProvidersListComponent_div_4_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelementStart(0, "div", 7);
8
- i0.ɵɵelement(1, "mj-loading", 8);
4
+ import * as i1 from "@memberjunction/ng-shared-generic";
5
+ function StorageProvidersListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
6
+ i0.ɵɵelementStart(0, "div", 3);
7
+ i0.ɵɵelement(1, "mj-loading", 7);
9
8
  i0.ɵɵelementEnd();
10
9
  } }
11
- function StorageProvidersListComponent_div_5_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
13
- i0.ɵɵelement(2, "i", 11);
10
+ function StorageProvidersListComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 8);
12
+ i0.ɵɵelement(2, "i", 9);
14
13
  i0.ɵɵelementEnd();
15
- i0.ɵɵelementStart(3, "p", 12);
14
+ i0.ɵɵelementStart(3, "p", 10);
16
15
  i0.ɵɵtext(4);
17
16
  i0.ɵɵelementEnd()();
18
17
  } if (rf & 2) {
@@ -20,46 +19,48 @@ function StorageProvidersListComponent_div_5_Template(rf, ctx) { if (rf & 1) {
20
19
  i0.ɵɵadvance(4);
21
20
  i0.ɵɵtextInterpolate(ctx_r0.errorMessage);
22
21
  } }
23
- function StorageProvidersListComponent_div_6_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
25
- i0.ɵɵelement(2, "i", 15);
22
+ function StorageProvidersListComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelementStart(0, "div", 5)(1, "div", 11);
24
+ i0.ɵɵelement(2, "i", 12);
26
25
  i0.ɵɵelementEnd();
27
- i0.ɵɵelementStart(3, "p", 16);
26
+ i0.ɵɵelementStart(3, "p", 13);
28
27
  i0.ɵɵtext(4, "No storage accounts configured");
29
28
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementStart(5, "p", 17);
29
+ i0.ɵɵelementStart(5, "p", 14);
31
30
  i0.ɵɵtext(6, "Contact your administrator to set up file storage accounts");
32
31
  i0.ɵɵelementEnd()();
33
32
  } }
34
- function StorageProvidersListComponent_div_7_div_1_span_9_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "span", 29);
36
- i0.ɵɵelement(1, "i", 30);
33
+ function StorageProvidersListComponent_Conditional_7_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelementStart(0, "span", 22);
35
+ i0.ɵɵelement(1, "i", 25);
37
36
  i0.ɵɵelementEnd();
38
37
  } }
39
- function StorageProvidersListComponent_div_7_div_1_span_10_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵelementStart(0, "span", 31);
41
- i0.ɵɵelement(1, "i", 32);
38
+ function StorageProvidersListComponent_Conditional_7_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵelementStart(0, "span", 23);
40
+ i0.ɵɵelement(1, "i", 26);
42
41
  i0.ɵɵelementEnd();
43
42
  } }
44
- function StorageProvidersListComponent_div_7_div_1_span_11_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelementStart(0, "span", 33);
46
- i0.ɵɵelement(1, "i", 34);
43
+ function StorageProvidersListComponent_Conditional_7_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "span", 24);
45
+ i0.ɵɵelement(1, "i", 27);
47
46
  i0.ɵɵelementEnd();
48
47
  } }
49
- function StorageProvidersListComponent_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
48
+ function StorageProvidersListComponent_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
50
49
  const _r2 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "div", 20);
52
- i0.ɵɵlistener("click", function StorageProvidersListComponent_div_7_div_1_Template_div_click_0_listener() { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectAccount(item_r3)); });
53
- i0.ɵɵelementStart(1, "div", 21);
50
+ i0.ɵɵelementStart(0, "div", 16);
51
+ i0.ɵɵlistener("click", function StorageProvidersListComponent_Conditional_7_For_2_Template_div_click_0_listener() { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectAccount(item_r3)); });
52
+ i0.ɵɵelementStart(1, "div", 17);
54
53
  i0.ɵɵelement(2, "i");
55
54
  i0.ɵɵelementEnd();
56
- i0.ɵɵelementStart(3, "div", 22)(4, "div", 23);
55
+ i0.ɵɵelementStart(3, "div", 18)(4, "div", 19);
57
56
  i0.ɵɵtext(5);
58
57
  i0.ɵɵelementEnd();
59
- i0.ɵɵelementStart(6, "div", 24)(7, "span", 25);
58
+ i0.ɵɵelementStart(6, "div", 20)(7, "span", 21);
60
59
  i0.ɵɵtext(8);
61
60
  i0.ɵɵelementEnd();
62
- i0.ɵɵtemplate(9, StorageProvidersListComponent_div_7_div_1_span_9_Template, 2, 0, "span", 26)(10, StorageProvidersListComponent_div_7_div_1_span_10_Template, 2, 0, "span", 27)(11, StorageProvidersListComponent_div_7_div_1_span_11_Template, 2, 0, "span", 28);
61
+ i0.ɵɵconditionalCreate(9, StorageProvidersListComponent_Conditional_7_For_2_Conditional_9_Template, 2, 0, "span", 22);
62
+ i0.ɵɵconditionalCreate(10, StorageProvidersListComponent_Conditional_7_For_2_Conditional_10_Template, 2, 0, "span", 23);
63
+ i0.ɵɵconditionalCreate(11, StorageProvidersListComponent_Conditional_7_For_2_Conditional_11_Template, 2, 0, "span", 24);
63
64
  i0.ɵɵelementEnd()()();
64
65
  } if (rf & 2) {
65
66
  const item_r3 = ctx.$implicit;
@@ -75,20 +76,20 @@ function StorageProvidersListComponent_div_7_div_1_Template(rf, ctx) { if (rf &
75
76
  i0.ɵɵadvance();
76
77
  i0.ɵɵtextInterpolate1(" ", item_r3.provider.Name, " ");
77
78
  i0.ɵɵadvance();
78
- i0.ɵɵproperty("ngIf", item_r3.provider.SupportsSearch);
79
+ i0.ɵɵconditional(item_r3.provider.SupportsSearch ? 9 : -1);
79
80
  i0.ɵɵadvance();
80
- i0.ɵɵproperty("ngIf", item_r3.account.CredentialID);
81
+ i0.ɵɵconditional(item_r3.account.CredentialID ? 10 : -1);
81
82
  i0.ɵɵadvance();
82
- i0.ɵɵproperty("ngIf", !item_r3.account.CredentialID);
83
+ i0.ɵɵconditional(!item_r3.account.CredentialID ? 11 : -1);
83
84
  } }
84
- function StorageProvidersListComponent_div_7_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "div", 18);
86
- i0.ɵɵtemplate(1, StorageProvidersListComponent_div_7_div_1_Template, 12, 11, "div", 19);
85
+ function StorageProvidersListComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "div", 6);
87
+ i0.ɵɵrepeaterCreate(1, StorageProvidersListComponent_Conditional_7_For_2_Template, 12, 11, "div", 15, i0.ɵɵrepeaterTrackByIdentity);
87
88
  i0.ɵɵelementEnd();
88
89
  } if (rf & 2) {
89
90
  const ctx_r0 = i0.ɵɵnextContext();
90
91
  i0.ɵɵadvance();
91
- i0.ɵɵproperty("ngForOf", ctx_r0.accounts);
92
+ i0.ɵɵrepeater(ctx_r0.accounts);
92
93
  } }
93
94
  /**
94
95
  * Displays a list of organizational file storage accounts.
@@ -208,28 +209,31 @@ export class StorageProvidersListComponent {
208
209
  FileStorageEngine.Instance.Config(true).then(() => this.loadAccounts());
209
210
  }
210
211
  static ɵfac = function StorageProvidersListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StorageProvidersListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
211
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StorageProvidersListComponent, selectors: [["mj-storage-providers-list"]], outputs: { accountSelected: "accountSelected" }, decls: 8, vars: 4, consts: [[1, "providers-list"], [1, "providers-header"], [1, "header-title"], ["class", "loading-state", 4, "ngIf"], ["class", "error-state", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], ["class", "providers-container", 4, "ngIf"], [1, "loading-state"], ["text", "Loading accounts..."], [1, "error-state"], [1, "error-icon"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "error-message"], [1, "empty-state"], [1, "empty-icon"], [1, "fa-solid", "fa-folder-plus"], [1, "empty-message"], [1, "empty-hint"], [1, "providers-container"], ["class", "provider-item", 3, "selected", "title", "click", 4, "ngFor", "ngForOf"], [1, "provider-item", 3, "click", "title"], [1, "provider-icon"], [1, "provider-info"], [1, "provider-name"], [1, "provider-meta"], [1, "provider-type-badge", 3, "title"], ["class", "search-badge", "title", "Supports search", 4, "ngIf"], ["class", "credential-badge", "title", "Credentials configured", 4, "ngIf"], ["class", "unconfigured-badge", "title", "No credentials configured", 4, "ngIf"], ["title", "Supports search", 1, "search-badge"], [1, "fa-solid", "fa-magnifying-glass"], ["title", "Credentials configured", 1, "credential-badge"], [1, "fa-solid", "fa-key"], ["title", "No credentials configured", 1, "unconfigured-badge"], [1, "fa-solid", "fa-exclamation-triangle"]], template: function StorageProvidersListComponent_Template(rf, ctx) { if (rf & 1) {
212
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StorageProvidersListComponent, selectors: [["mj-storage-providers-list"]], outputs: { accountSelected: "accountSelected" }, standalone: false, decls: 8, vars: 4, consts: [[1, "providers-list"], [1, "providers-header"], [1, "header-title"], [1, "loading-state"], [1, "error-state"], [1, "empty-state"], [1, "providers-container"], ["text", "Loading accounts..."], [1, "error-icon"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "error-message"], [1, "empty-icon"], [1, "fa-solid", "fa-folder-plus"], [1, "empty-message"], [1, "empty-hint"], [1, "provider-item", 3, "selected", "title"], [1, "provider-item", 3, "click", "title"], [1, "provider-icon"], [1, "provider-info"], [1, "provider-name"], [1, "provider-meta"], [1, "provider-type-badge", 3, "title"], ["title", "Supports search", 1, "search-badge"], ["title", "Credentials configured", 1, "credential-badge"], ["title", "No credentials configured", 1, "unconfigured-badge"], [1, "fa-solid", "fa-magnifying-glass"], [1, "fa-solid", "fa-key"], [1, "fa-solid", "fa-exclamation-triangle"]], template: function StorageProvidersListComponent_Template(rf, ctx) { if (rf & 1) {
212
213
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "span", 2);
213
214
  i0.ɵɵtext(3, "Storage Accounts");
214
215
  i0.ɵɵelementEnd()();
215
- i0.ɵɵtemplate(4, StorageProvidersListComponent_div_4_Template, 2, 0, "div", 3)(5, StorageProvidersListComponent_div_5_Template, 5, 1, "div", 4)(6, StorageProvidersListComponent_div_6_Template, 7, 0, "div", 5)(7, StorageProvidersListComponent_div_7_Template, 2, 1, "div", 6);
216
+ i0.ɵɵconditionalCreate(4, StorageProvidersListComponent_Conditional_4_Template, 2, 0, "div", 3);
217
+ i0.ɵɵconditionalCreate(5, StorageProvidersListComponent_Conditional_5_Template, 5, 1, "div", 4);
218
+ i0.ɵɵconditionalCreate(6, StorageProvidersListComponent_Conditional_6_Template, 7, 0, "div", 5);
219
+ i0.ɵɵconditionalCreate(7, StorageProvidersListComponent_Conditional_7_Template, 3, 0, "div", 6);
216
220
  i0.ɵɵelementEnd();
217
221
  } if (rf & 2) {
218
222
  i0.ɵɵadvance(4);
219
- i0.ɵɵproperty("ngIf", ctx.isLoading);
223
+ i0.ɵɵconditional(ctx.isLoading ? 4 : -1);
220
224
  i0.ɵɵadvance();
221
- i0.ɵɵproperty("ngIf", ctx.errorMessage && !ctx.isLoading);
225
+ i0.ɵɵconditional(ctx.errorMessage && !ctx.isLoading ? 5 : -1);
222
226
  i0.ɵɵadvance();
223
- i0.ɵɵproperty("ngIf", !ctx.isLoading && !ctx.errorMessage && ctx.accounts.length === 0);
227
+ i0.ɵɵconditional(!ctx.isLoading && !ctx.errorMessage && ctx.accounts.length === 0 ? 6 : -1);
224
228
  i0.ɵɵadvance();
225
- i0.ɵɵproperty("ngIf", !ctx.isLoading && !ctx.errorMessage && ctx.accounts.length > 0);
226
- } }, dependencies: [i1.NgForOf, i1.NgIf, i2.LoadingComponent], styles: ["\n\n\n\n\n.providers-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n\n\n.providers-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e5e5;\n background-color: #fafafa;\n}\n\n.header-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #1d1d1f;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.add-provider-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n background-color: #007aff;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\n.add-provider-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #0056b3;\n transform: scale(1.05);\n}\n\n.add-provider-btn[_ngcontent-%COMP%]:disabled {\n background-color: #ccc;\n cursor: not-allowed;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: #86868b;\n flex: 1;\n}\n\n.error-icon[_ngcontent-%COMP%], \n.empty-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.7;\n}\n\n.error-icon[_ngcontent-%COMP%] {\n color: #f44336;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n color: #007aff;\n}\n\n.error-message[_ngcontent-%COMP%], \n.empty-message[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n margin: 0 0 4px 0;\n color: #1d1d1f;\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #86868b;\n margin: 4px 0 0 0;\n max-width: 180px;\n line-height: 1.4;\n}\n\n\n\n.providers-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.provider-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n border-bottom: 1px solid #f0f0f0;\n position: relative;\n}\n\n.provider-item[_ngcontent-%COMP%]:hover {\n background-color: #f5f5f7;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] {\n background-color: #e8f4fd;\n border-left: 3px solid #007aff;\n}\n\n.provider-item.selected[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background-color: #007aff;\n}\n\n\n\n.provider-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: #424242;\n margin-right: 12px;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-icon[_ngcontent-%COMP%] {\n color: #007aff;\n}\n\n\n\n.provider-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.provider-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #1d1d1f;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-name[_ngcontent-%COMP%] {\n color: #007aff;\n font-weight: 600;\n}\n\n.provider-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: #86868b;\n}\n\n\n\n.default-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n color: #f5a623;\n}\n\n.default-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.provider-type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-type-badge[_ngcontent-%COMP%] {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n\n\n.search-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .search-badge[_ngcontent-%COMP%] {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n.search-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.credential-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .credential-badge[_ngcontent-%COMP%] {\n background-color: rgba(52, 199, 89, 0.15);\n color: #34c759;\n}\n\n.credential-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.unconfigured-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n color: #ff9500;\n}\n\n.unconfigured-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.oauth-connected-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.oauth-connected-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.oauth-disconnected-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #fff3e0;\n border-radius: 10px;\n font-size: 10px;\n color: #ff9500;\n}\n\n.oauth-disconnected-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.provider-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n}\n\n.connect-btn[_ngcontent-%COMP%], \n.disconnect-btn[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.connect-btn[_ngcontent-%COMP%] {\n background-color: #e8f5e9;\n color: #34c759;\n}\n\n.connect-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #c8e6c9;\n transform: scale(1.05);\n}\n\n.connect-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.disconnect-btn[_ngcontent-%COMP%] {\n background-color: transparent;\n color: #86868b;\n}\n\n.disconnect-btn[_ngcontent-%COMP%]:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n\n\n.remove-provider-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n background-color: transparent;\n color: #999;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n opacity: 0;\n margin-left: 8px;\n}\n\n.provider-item[_ngcontent-%COMP%]:hover .remove-provider-btn[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.remove-provider-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #ffebee;\n color: #f44336;\n}\n\n.remove-provider-btn[_ngcontent-%COMP%]:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #c7c7cc;\n border-radius: 3px;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #a0a0a5;\n}\n\n\n\n\n\n\n.add-provider-dialog[_ngcontent-%COMP%] {\n min-height: 150px;\n}\n\n.dialog-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n}\n\n.dialog-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n}\n\n.dialog-empty-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n color: #34c759;\n margin-bottom: 12px;\n}\n\n.dialog-empty-message[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 500;\n color: #1d1d1f;\n margin: 0 0 4px 0;\n}\n\n.dialog-empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #86868b;\n margin: 0;\n}\n\n.dialog-instruction[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #666;\n margin: 0 0 12px 0;\n padding: 0 4px;\n}\n\n.available-providers[_ngcontent-%COMP%] {\n max-height: 350px;\n overflow-y: auto;\n}\n\n.available-provider-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n margin-bottom: 8px;\n border: 1px solid #e5e5e5;\n}\n\n.available-provider-item[_ngcontent-%COMP%]:hover:not(.disabled) {\n background-color: #f5f5f7;\n border-color: #007aff;\n}\n\n.available-provider-item.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n background-color: #f9f9f9;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-icon[_ngcontent-%COMP%] {\n margin-right: 12px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #1d1d1f;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #86868b;\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-warning[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #ff9500;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.available-provider-item[_ngcontent-%COMP%] .oauth-hint[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #007aff;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .oauth-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.available-provider-item.oauth-provider[_ngcontent-%COMP%] {\n border-color: #007aff;\n border-style: dashed;\n}\n\n.available-provider-item.oauth-provider[_ngcontent-%COMP%]:hover:not(.disabled) {\n background-color: #e8f4fd;\n border-style: solid;\n}\n\n.add-indicator[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #007aff;\n font-size: 14px;\n}\n\n\n\n@media screen and (max-width: 768px) {\n .providers-header[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .header-title[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .add-provider-btn[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n font-size: 12px;\n }\n\n .provider-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .provider-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 18px;\n margin-right: 10px;\n }\n\n .provider-name[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .provider-status[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .remove-provider-btn[_ngcontent-%COMP%] {\n width: 22px;\n height: 22px;\n font-size: 11px;\n opacity: 1;\n }\n}"] });
229
+ i0.ɵɵconditional(!ctx.isLoading && !ctx.errorMessage && ctx.accounts.length > 0 ? 7 : -1);
230
+ } }, dependencies: [i1.LoadingComponent], styles: ["\n\n\n\n\n.providers-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n\n\n.providers-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e5e5;\n background-color: #fafafa;\n}\n\n.header-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: #1d1d1f;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.add-provider-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n background-color: #007aff;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\n.add-provider-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #0056b3;\n transform: scale(1.05);\n}\n\n.add-provider-btn[_ngcontent-%COMP%]:disabled {\n background-color: #ccc;\n cursor: not-allowed;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%], \n.error-state[_ngcontent-%COMP%], \n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: #86868b;\n flex: 1;\n}\n\n.error-icon[_ngcontent-%COMP%], \n.empty-icon[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.7;\n}\n\n.error-icon[_ngcontent-%COMP%] {\n color: #f44336;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n color: #007aff;\n}\n\n.error-message[_ngcontent-%COMP%], \n.empty-message[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n margin: 0 0 4px 0;\n color: #1d1d1f;\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #86868b;\n margin: 4px 0 0 0;\n max-width: 180px;\n line-height: 1.4;\n}\n\n\n\n.providers-container[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n\n\n.provider-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n border-bottom: 1px solid #f0f0f0;\n position: relative;\n}\n\n.provider-item[_ngcontent-%COMP%]:hover {\n background-color: #f5f5f7;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] {\n background-color: #e8f4fd;\n border-left: 3px solid #007aff;\n}\n\n.provider-item.selected[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background-color: #007aff;\n}\n\n\n\n.provider-icon[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: #424242;\n margin-right: 12px;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-icon[_ngcontent-%COMP%] {\n color: #007aff;\n}\n\n\n\n.provider-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.provider-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: #1d1d1f;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-name[_ngcontent-%COMP%] {\n color: #007aff;\n font-weight: 600;\n}\n\n.provider-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: #86868b;\n}\n\n\n\n.default-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n color: #f5a623;\n}\n\n.default-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.provider-type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .provider-type-badge[_ngcontent-%COMP%] {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n\n\n.search-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .search-badge[_ngcontent-%COMP%] {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n.search-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.credential-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.provider-item.selected[_ngcontent-%COMP%] .credential-badge[_ngcontent-%COMP%] {\n background-color: rgba(52, 199, 89, 0.15);\n color: #34c759;\n}\n\n.credential-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.unconfigured-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n color: #ff9500;\n}\n\n.unconfigured-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.oauth-connected-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.oauth-connected-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n.oauth-disconnected-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #fff3e0;\n border-radius: 10px;\n font-size: 10px;\n color: #ff9500;\n}\n\n.oauth-disconnected-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.provider-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n}\n\n.connect-btn[_ngcontent-%COMP%], \n.disconnect-btn[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.connect-btn[_ngcontent-%COMP%] {\n background-color: #e8f5e9;\n color: #34c759;\n}\n\n.connect-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #c8e6c9;\n transform: scale(1.05);\n}\n\n.connect-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.disconnect-btn[_ngcontent-%COMP%] {\n background-color: transparent;\n color: #86868b;\n}\n\n.disconnect-btn[_ngcontent-%COMP%]:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n\n\n.remove-provider-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n background-color: transparent;\n color: #999;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n opacity: 0;\n margin-left: 8px;\n}\n\n.provider-item[_ngcontent-%COMP%]:hover .remove-provider-btn[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.remove-provider-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: #ffebee;\n color: #f44336;\n}\n\n.remove-provider-btn[_ngcontent-%COMP%]:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #c7c7cc;\n border-radius: 3px;\n}\n\n.providers-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #a0a0a5;\n}\n\n\n\n\n\n\n.add-provider-dialog[_ngcontent-%COMP%] {\n min-height: 150px;\n}\n\n.dialog-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n}\n\n.dialog-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n}\n\n.dialog-empty-icon[_ngcontent-%COMP%] {\n font-size: 40px;\n color: #34c759;\n margin-bottom: 12px;\n}\n\n.dialog-empty-message[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 500;\n color: #1d1d1f;\n margin: 0 0 4px 0;\n}\n\n.dialog-empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #86868b;\n margin: 0;\n}\n\n.dialog-instruction[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #666;\n margin: 0 0 12px 0;\n padding: 0 4px;\n}\n\n.available-providers[_ngcontent-%COMP%] {\n max-height: 350px;\n overflow-y: auto;\n}\n\n.available-provider-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n margin-bottom: 8px;\n border: 1px solid #e5e5e5;\n}\n\n.available-provider-item[_ngcontent-%COMP%]:hover:not(.disabled) {\n background-color: #f5f5f7;\n border-color: #007aff;\n}\n\n.available-provider-item.disabled[_ngcontent-%COMP%] {\n opacity: 0.6;\n cursor: not-allowed;\n background-color: #f9f9f9;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-icon[_ngcontent-%COMP%] {\n margin-right: 12px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: #1d1d1f;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #86868b;\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-warning[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #ff9500;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .provider-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n.available-provider-item[_ngcontent-%COMP%] .oauth-hint[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #007aff;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item[_ngcontent-%COMP%] .oauth-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.available-provider-item.oauth-provider[_ngcontent-%COMP%] {\n border-color: #007aff;\n border-style: dashed;\n}\n\n.available-provider-item.oauth-provider[_ngcontent-%COMP%]:hover:not(.disabled) {\n background-color: #e8f4fd;\n border-style: solid;\n}\n\n.add-indicator[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #007aff;\n font-size: 14px;\n}\n\n\n\n@media screen and (max-width: 768px) {\n .providers-header[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .header-title[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .add-provider-btn[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n font-size: 12px;\n }\n\n .provider-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .provider-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 18px;\n margin-right: 10px;\n }\n\n .provider-name[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .provider-status[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .remove-provider-btn[_ngcontent-%COMP%] {\n width: 22px;\n height: 22px;\n font-size: 11px;\n opacity: 1;\n }\n}"] });
227
231
  }
228
232
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StorageProvidersListComponent, [{
229
233
  type: Component,
230
- args: [{ selector: 'mj-storage-providers-list', template: "<div class=\"providers-list\">\n <!-- Header -->\n <div class=\"providers-header\">\n <span class=\"header-title\">Storage Accounts</span>\n </div>\n\n <!-- Loading State -->\n <div *ngIf=\"isLoading\" class=\"loading-state\">\n <mj-loading text=\"Loading accounts...\"></mj-loading>\n </div>\n\n <!-- Error State -->\n <div *ngIf=\"errorMessage && !isLoading\" class=\"error-state\">\n <div class=\"error-icon\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n </div>\n <p class=\"error-message\">{{ errorMessage }}</p>\n </div>\n\n <!-- Empty State -->\n <div *ngIf=\"!isLoading && !errorMessage && accounts.length === 0\" class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n </div>\n <p class=\"empty-message\">No storage accounts configured</p>\n <p class=\"empty-hint\">Contact your administrator to set up file storage accounts</p>\n </div>\n\n <!-- Account List -->\n <div *ngIf=\"!isLoading && !errorMessage && accounts.length > 0\" class=\"providers-container\">\n <div\n *ngFor=\"let item of accounts\"\n class=\"provider-item\"\n [class.selected]=\"isSelected(item)\"\n (click)=\"selectAccount(item)\"\n [title]=\"item.account.Description || item.account.Name\"\n >\n <div class=\"provider-icon\">\n <i [class]=\"getProviderIcon(item.provider.Name)\"></i>\n </div>\n <div class=\"provider-info\">\n <div class=\"provider-name\">{{ item.account.Name }}</div>\n <div class=\"provider-meta\">\n <!-- Provider type badge -->\n <span class=\"provider-type-badge\" [title]=\"item.provider.Name\">\n {{ item.provider.Name }}\n </span>\n <!-- Search support badge -->\n <span class=\"search-badge\" *ngIf=\"item.provider.SupportsSearch\" title=\"Supports search\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </span>\n <!-- Credential configured badge -->\n <span class=\"credential-badge\" *ngIf=\"item.account.CredentialID\" title=\"Credentials configured\">\n <i class=\"fa-solid fa-key\"></i>\n </span>\n <!-- No credential warning -->\n <span class=\"unconfigured-badge\" *ngIf=\"!item.account.CredentialID\" title=\"No credentials configured\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n </span>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* ===========================\n Storage Providers List\n =========================== */\n\n.providers-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n/* Header with Add Button */\n.providers-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e5e5;\n background-color: #fafafa;\n}\n\n.header-title {\n font-size: 13px;\n font-weight: 600;\n color: #1d1d1f;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.add-provider-btn {\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n background-color: #007aff;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\n.add-provider-btn:hover:not(:disabled) {\n background-color: #0056b3;\n transform: scale(1.05);\n}\n\n.add-provider-btn:disabled {\n background-color: #ccc;\n cursor: not-allowed;\n}\n\n/* Loading, Error, and Empty States */\n.loading-state,\n.error-state,\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: #86868b;\n flex: 1;\n}\n\n.error-icon,\n.empty-icon {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.7;\n}\n\n.error-icon {\n color: #f44336;\n}\n\n.empty-icon {\n color: #007aff;\n}\n\n.error-message,\n.empty-message {\n font-size: 14px;\n font-weight: 500;\n margin: 0 0 4px 0;\n color: #1d1d1f;\n}\n\n.empty-hint {\n font-size: 12px;\n color: #86868b;\n margin: 4px 0 0 0;\n max-width: 180px;\n line-height: 1.4;\n}\n\n/* Provider List Container */\n.providers-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Individual Provider Item */\n.provider-item {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n border-bottom: 1px solid #f0f0f0;\n position: relative;\n}\n\n.provider-item:hover {\n background-color: #f5f5f7;\n}\n\n.provider-item.selected {\n background-color: #e8f4fd;\n border-left: 3px solid #007aff;\n}\n\n.provider-item.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background-color: #007aff;\n}\n\n/* Provider Icon */\n.provider-icon {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: #424242;\n margin-right: 12px;\n}\n\n.provider-item.selected .provider-icon {\n color: #007aff;\n}\n\n/* Provider Info */\n.provider-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.provider-name {\n font-size: 13px;\n font-weight: 500;\n color: #1d1d1f;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected .provider-name {\n color: #007aff;\n font-weight: 600;\n}\n\n.provider-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: #86868b;\n}\n\n/* Default Badge */\n.default-badge {\n display: inline-flex;\n align-items: center;\n color: #f5a623;\n}\n\n.default-badge i {\n font-size: 10px;\n}\n\n/* Provider Type Badge */\n.provider-type-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected .provider-type-badge {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n/* Search Badge */\n.search-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n}\n\n.provider-item.selected .search-badge {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n.search-badge i {\n font-size: 9px;\n}\n\n/* Credential Badge */\n.credential-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.provider-item.selected .credential-badge {\n background-color: rgba(52, 199, 89, 0.15);\n color: #34c759;\n}\n\n.credential-badge i {\n font-size: 9px;\n}\n\n/* Unconfigured Badge */\n.unconfigured-badge {\n display: inline-flex;\n align-items: center;\n color: #ff9500;\n}\n\n.unconfigured-badge i {\n font-size: 10px;\n}\n\n/* OAuth Status Badges */\n.oauth-connected-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.oauth-connected-badge i {\n font-size: 9px;\n}\n\n.oauth-disconnected-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #fff3e0;\n border-radius: 10px;\n font-size: 10px;\n color: #ff9500;\n}\n\n.oauth-disconnected-badge i {\n font-size: 9px;\n}\n\n/* Provider Actions (OAuth connect/disconnect buttons) */\n.provider-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n}\n\n.connect-btn,\n.disconnect-btn {\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.connect-btn {\n background-color: #e8f5e9;\n color: #34c759;\n}\n\n.connect-btn:hover:not(:disabled) {\n background-color: #c8e6c9;\n transform: scale(1.05);\n}\n\n.connect-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.disconnect-btn {\n background-color: transparent;\n color: #86868b;\n}\n\n.disconnect-btn:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n/* Remove Provider Button */\n.remove-provider-btn {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n background-color: transparent;\n color: #999;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n opacity: 0;\n margin-left: 8px;\n}\n\n.provider-item:hover .remove-provider-btn {\n opacity: 1;\n}\n\n.remove-provider-btn:hover:not(:disabled) {\n background-color: #ffebee;\n color: #f44336;\n}\n\n.remove-provider-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Scrollbar Styling */\n.providers-container::-webkit-scrollbar {\n width: 6px;\n}\n\n.providers-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.providers-container::-webkit-scrollbar-thumb {\n background: #c7c7cc;\n border-radius: 3px;\n}\n\n.providers-container::-webkit-scrollbar-thumb:hover {\n background: #a0a0a5;\n}\n\n/* ===========================\n Add Provider Dialog\n =========================== */\n\n.add-provider-dialog {\n min-height: 150px;\n}\n\n.dialog-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n}\n\n.dialog-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n}\n\n.dialog-empty-icon {\n font-size: 40px;\n color: #34c759;\n margin-bottom: 12px;\n}\n\n.dialog-empty-message {\n font-size: 16px;\n font-weight: 500;\n color: #1d1d1f;\n margin: 0 0 4px 0;\n}\n\n.dialog-empty-hint {\n font-size: 13px;\n color: #86868b;\n margin: 0;\n}\n\n.dialog-instruction {\n font-size: 13px;\n color: #666;\n margin: 0 0 12px 0;\n padding: 0 4px;\n}\n\n.available-providers {\n max-height: 350px;\n overflow-y: auto;\n}\n\n.available-provider-item {\n display: flex;\n align-items: center;\n padding: 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n margin-bottom: 8px;\n border: 1px solid #e5e5e5;\n}\n\n.available-provider-item:hover:not(.disabled) {\n background-color: #f5f5f7;\n border-color: #007aff;\n}\n\n.available-provider-item.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background-color: #f9f9f9;\n}\n\n.available-provider-item .provider-icon {\n margin-right: 12px;\n}\n\n.available-provider-item .provider-info {\n flex: 1;\n}\n\n.available-provider-item .provider-name {\n font-size: 14px;\n font-weight: 500;\n color: #1d1d1f;\n}\n\n.available-provider-item .provider-description {\n font-size: 12px;\n color: #86868b;\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.available-provider-item .provider-warning {\n font-size: 11px;\n color: #ff9500;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item .provider-warning i {\n font-size: 10px;\n}\n\n/* OAuth hint in add provider dialog */\n.available-provider-item .oauth-hint {\n font-size: 11px;\n color: #007aff;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item .oauth-hint i {\n font-size: 10px;\n}\n\n.available-provider-item.oauth-provider {\n border-color: #007aff;\n border-style: dashed;\n}\n\n.available-provider-item.oauth-provider:hover:not(.disabled) {\n background-color: #e8f4fd;\n border-style: solid;\n}\n\n.add-indicator {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #007aff;\n font-size: 14px;\n}\n\n/* Responsive Adjustments */\n@media screen and (max-width: 768px) {\n .providers-header {\n padding: 10px 12px;\n }\n\n .header-title {\n font-size: 12px;\n }\n\n .add-provider-btn {\n width: 26px;\n height: 26px;\n font-size: 12px;\n }\n\n .provider-item {\n padding: 10px 12px;\n }\n\n .provider-icon {\n width: 28px;\n height: 28px;\n font-size: 18px;\n margin-right: 10px;\n }\n\n .provider-name {\n font-size: 12px;\n }\n\n .provider-status {\n font-size: 10px;\n }\n\n .remove-provider-btn {\n width: 22px;\n height: 22px;\n font-size: 11px;\n opacity: 1;\n }\n}\n"] }]
234
+ args: [{ standalone: false, selector: 'mj-storage-providers-list', template: "<div class=\"providers-list\">\n <!-- Header -->\n <div class=\"providers-header\">\n <span class=\"header-title\">Storage Accounts</span>\n </div>\n\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading accounts...\"></mj-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (errorMessage && !isLoading) {\n <div class=\"error-state\">\n <div class=\"error-icon\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n </div>\n <p class=\"error-message\">{{ errorMessage }}</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!isLoading && !errorMessage && accounts.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fa-solid fa-folder-plus\"></i>\n </div>\n <p class=\"empty-message\">No storage accounts configured</p>\n <p class=\"empty-hint\">Contact your administrator to set up file storage accounts</p>\n </div>\n }\n\n <!-- Account List -->\n @if (!isLoading && !errorMessage && accounts.length > 0) {\n <div class=\"providers-container\">\n @for (item of accounts; track item) {\n <div\n class=\"provider-item\"\n [class.selected]=\"isSelected(item)\"\n (click)=\"selectAccount(item)\"\n [title]=\"item.account.Description || item.account.Name\"\n >\n <div class=\"provider-icon\">\n <i [class]=\"getProviderIcon(item.provider.Name)\"></i>\n </div>\n <div class=\"provider-info\">\n <div class=\"provider-name\">{{ item.account.Name }}</div>\n <div class=\"provider-meta\">\n <!-- Provider type badge -->\n <span class=\"provider-type-badge\" [title]=\"item.provider.Name\">\n {{ item.provider.Name }}\n </span>\n <!-- Search support badge -->\n @if (item.provider.SupportsSearch) {\n <span class=\"search-badge\" title=\"Supports search\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </span>\n }\n <!-- Credential configured badge -->\n @if (item.account.CredentialID) {\n <span class=\"credential-badge\" title=\"Credentials configured\">\n <i class=\"fa-solid fa-key\"></i>\n </span>\n }\n <!-- No credential warning -->\n @if (!item.account.CredentialID) {\n <span class=\"unconfigured-badge\" title=\"No credentials configured\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n </span>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["/* ===========================\n Storage Providers List\n =========================== */\n\n.providers-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n/* Header with Add Button */\n.providers-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #e5e5e5;\n background-color: #fafafa;\n}\n\n.header-title {\n font-size: 13px;\n font-weight: 600;\n color: #1d1d1f;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.add-provider-btn {\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n background-color: #007aff;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\n.add-provider-btn:hover:not(:disabled) {\n background-color: #0056b3;\n transform: scale(1.05);\n}\n\n.add-provider-btn:disabled {\n background-color: #ccc;\n cursor: not-allowed;\n}\n\n/* Loading, Error, and Empty States */\n.loading-state,\n.error-state,\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: #86868b;\n flex: 1;\n}\n\n.error-icon,\n.empty-icon {\n font-size: 32px;\n margin-bottom: 12px;\n opacity: 0.7;\n}\n\n.error-icon {\n color: #f44336;\n}\n\n.empty-icon {\n color: #007aff;\n}\n\n.error-message,\n.empty-message {\n font-size: 14px;\n font-weight: 500;\n margin: 0 0 4px 0;\n color: #1d1d1f;\n}\n\n.empty-hint {\n font-size: 12px;\n color: #86868b;\n margin: 4px 0 0 0;\n max-width: 180px;\n line-height: 1.4;\n}\n\n/* Provider List Container */\n.providers-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* Individual Provider Item */\n.provider-item {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n border-bottom: 1px solid #f0f0f0;\n position: relative;\n}\n\n.provider-item:hover {\n background-color: #f5f5f7;\n}\n\n.provider-item.selected {\n background-color: #e8f4fd;\n border-left: 3px solid #007aff;\n}\n\n.provider-item.selected::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 3px;\n background-color: #007aff;\n}\n\n/* Provider Icon */\n.provider-icon {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: #424242;\n margin-right: 12px;\n}\n\n.provider-item.selected .provider-icon {\n color: #007aff;\n}\n\n/* Provider Info */\n.provider-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.provider-name {\n font-size: 13px;\n font-weight: 500;\n color: #1d1d1f;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected .provider-name {\n color: #007aff;\n font-weight: 600;\n}\n\n.provider-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: #86868b;\n}\n\n/* Default Badge */\n.default-badge {\n display: inline-flex;\n align-items: center;\n color: #f5a623;\n}\n\n.default-badge i {\n font-size: 10px;\n}\n\n/* Provider Type Badge */\n.provider-type-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.provider-item.selected .provider-type-badge {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n/* Search Badge */\n.search-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #f0f0f0;\n border-radius: 10px;\n font-size: 10px;\n color: #666;\n}\n\n.provider-item.selected .search-badge {\n background-color: rgba(0, 122, 255, 0.15);\n color: #007aff;\n}\n\n.search-badge i {\n font-size: 9px;\n}\n\n/* Credential Badge */\n.credential-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.provider-item.selected .credential-badge {\n background-color: rgba(52, 199, 89, 0.15);\n color: #34c759;\n}\n\n.credential-badge i {\n font-size: 9px;\n}\n\n/* Unconfigured Badge */\n.unconfigured-badge {\n display: inline-flex;\n align-items: center;\n color: #ff9500;\n}\n\n.unconfigured-badge i {\n font-size: 10px;\n}\n\n/* OAuth Status Badges */\n.oauth-connected-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #e8f5e9;\n border-radius: 10px;\n font-size: 10px;\n color: #34c759;\n}\n\n.oauth-connected-badge i {\n font-size: 9px;\n}\n\n.oauth-disconnected-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 6px;\n background-color: #fff3e0;\n border-radius: 10px;\n font-size: 10px;\n color: #ff9500;\n}\n\n.oauth-disconnected-badge i {\n font-size: 9px;\n}\n\n/* Provider Actions (OAuth connect/disconnect buttons) */\n.provider-actions {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 8px;\n}\n\n.connect-btn,\n.disconnect-btn {\n width: 26px;\n height: 26px;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n}\n\n.connect-btn {\n background-color: #e8f5e9;\n color: #34c759;\n}\n\n.connect-btn:hover:not(:disabled) {\n background-color: #c8e6c9;\n transform: scale(1.05);\n}\n\n.connect-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.disconnect-btn {\n background-color: transparent;\n color: #86868b;\n}\n\n.disconnect-btn:hover {\n background-color: #ffebee;\n color: #f44336;\n}\n\n/* Remove Provider Button */\n.remove-provider-btn {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n background-color: transparent;\n color: #999;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 12px;\n opacity: 0;\n margin-left: 8px;\n}\n\n.provider-item:hover .remove-provider-btn {\n opacity: 1;\n}\n\n.remove-provider-btn:hover:not(:disabled) {\n background-color: #ffebee;\n color: #f44336;\n}\n\n.remove-provider-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Scrollbar Styling */\n.providers-container::-webkit-scrollbar {\n width: 6px;\n}\n\n.providers-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.providers-container::-webkit-scrollbar-thumb {\n background: #c7c7cc;\n border-radius: 3px;\n}\n\n.providers-container::-webkit-scrollbar-thumb:hover {\n background: #a0a0a5;\n}\n\n/* ===========================\n Add Provider Dialog\n =========================== */\n\n.add-provider-dialog {\n min-height: 150px;\n}\n\n.dialog-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n}\n\n.dialog-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 30px 20px;\n text-align: center;\n}\n\n.dialog-empty-icon {\n font-size: 40px;\n color: #34c759;\n margin-bottom: 12px;\n}\n\n.dialog-empty-message {\n font-size: 16px;\n font-weight: 500;\n color: #1d1d1f;\n margin: 0 0 4px 0;\n}\n\n.dialog-empty-hint {\n font-size: 13px;\n color: #86868b;\n margin: 0;\n}\n\n.dialog-instruction {\n font-size: 13px;\n color: #666;\n margin: 0 0 12px 0;\n padding: 0 4px;\n}\n\n.available-providers {\n max-height: 350px;\n overflow-y: auto;\n}\n\n.available-provider-item {\n display: flex;\n align-items: center;\n padding: 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n margin-bottom: 8px;\n border: 1px solid #e5e5e5;\n}\n\n.available-provider-item:hover:not(.disabled) {\n background-color: #f5f5f7;\n border-color: #007aff;\n}\n\n.available-provider-item.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background-color: #f9f9f9;\n}\n\n.available-provider-item .provider-icon {\n margin-right: 12px;\n}\n\n.available-provider-item .provider-info {\n flex: 1;\n}\n\n.available-provider-item .provider-name {\n font-size: 14px;\n font-weight: 500;\n color: #1d1d1f;\n}\n\n.available-provider-item .provider-description {\n font-size: 12px;\n color: #86868b;\n margin-top: 2px;\n line-height: 1.3;\n}\n\n.available-provider-item .provider-warning {\n font-size: 11px;\n color: #ff9500;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item .provider-warning i {\n font-size: 10px;\n}\n\n/* OAuth hint in add provider dialog */\n.available-provider-item .oauth-hint {\n font-size: 11px;\n color: #007aff;\n margin-top: 4px;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.available-provider-item .oauth-hint i {\n font-size: 10px;\n}\n\n.available-provider-item.oauth-provider {\n border-color: #007aff;\n border-style: dashed;\n}\n\n.available-provider-item.oauth-provider:hover:not(.disabled) {\n background-color: #e8f4fd;\n border-style: solid;\n}\n\n.add-indicator {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #007aff;\n font-size: 14px;\n}\n\n/* Responsive Adjustments */\n@media screen and (max-width: 768px) {\n .providers-header {\n padding: 10px 12px;\n }\n\n .header-title {\n font-size: 12px;\n }\n\n .add-provider-btn {\n width: 26px;\n height: 26px;\n font-size: 12px;\n }\n\n .provider-item {\n padding: 10px 12px;\n }\n\n .provider-icon {\n width: 28px;\n height: 28px;\n font-size: 18px;\n margin-right: 10px;\n }\n\n .provider-name {\n font-size: 12px;\n }\n\n .provider-status {\n font-size: 10px;\n }\n\n .remove-provider-btn {\n width: 22px;\n height: 22px;\n font-size: 11px;\n opacity: 1;\n }\n}\n"] }]
231
235
  }], () => [{ type: i0.ChangeDetectorRef }], { accountSelected: [{
232
236
  type: Output
233
237
  }] }); })();
234
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StorageProvidersListComponent, { className: "StorageProvidersListComponent", filePath: "src/lib/file-browser/storage-providers-list.component.ts", lineNumber: 15 }); })();
238
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StorageProvidersListComponent, { className: "StorageProvidersListComponent", filePath: "src/lib/file-browser/storage-providers-list.component.ts", lineNumber: 16 }); })();
235
239
  //# sourceMappingURL=storage-providers-list.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-providers-list.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/storage-providers-list.component.ts","../../../src/lib/file-browser/storage-providers-list.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAU,MAAM,EAAqB,MAAM,eAAe,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAA8B,MAAM,+BAA+B,CAAC;;;;;ICM5F,8BAA6C;IAC3C,gCAAoD;IACtD,iBAAM;;;IAIJ,AADF,8BAA4D,cAClC;IACtB,wBAAgD;IAClD,iBAAM;IACN,6BAAyB;IAAA,YAAkB;IAC7C,AAD6C,iBAAI,EAC3C;;;IADqB,eAAkB;IAAlB,yCAAkB;;;IAK3C,AADF,+BAAsF,cAC5D;IACtB,wBAAuC;IACzC,iBAAM;IACN,6BAAyB;IAAA,8CAA8B;IAAA,iBAAI;IAC3D,6BAAsB;IAAA,0EAA0D;IAClF,AADkF,iBAAI,EAChF;;;IAsBE,gCAAwF;IACtF,wBAA4C;IAC9C,iBAAO;;;IAEP,gCAAgG;IAC9F,wBAA+B;IACjC,iBAAO;;;IAEP,gCAAsG;IACpG,wBAAgD;IAClD,iBAAO;;;;IA5Bb,+BAMC;IAFC,uNAAS,6BAAmB,KAAC;IAG7B,+BAA2B;IACzB,oBAAqD;IACvD,iBAAM;IAEJ,AADF,+BAA2B,cACE;IAAA,YAAuB;IAAA,iBAAM;IAGtD,AAFF,+BAA2B,eAEsC;IAC7D,YACF;IAAA,iBAAO;IAUP,AAJA,AAJA,6FAAwF,kFAIQ,kFAIM;IAK5G,AADE,AADE,iBAAM,EACF,EACF;;;;IA5BJ,sDAAmC;IAEnC,2EAAuD;IAGlD,eAA6C;IAA7C,4DAA6C;IAGrB,eAAuB;IAAvB,0CAAuB;IAGd,eAA4B;IAA5B,6CAA4B;IAC5D,cACF;IADE,sDACF;IAE4B,cAAkC;IAAlC,sDAAkC;IAI9B,cAA+B;IAA/B,mDAA+B;IAI7B,cAAgC;IAAhC,oDAAgC;;;IA3B1E,+BAA4F;IAC1F,uFAMC;IA0BH,iBAAM;;;IA/Be,cAAW;IAAX,yCAAW;;AD5BlC;;;;;GAKG;AAMH,MAAM,OAAO,6BAA6B;IA2BpB;IA1BpB;;;OAGG;IACO,eAAe,GAAG,IAAI,YAAY,EAAqC,CAAC;IAElF;;OAEG;IACI,QAAQ,GAAiC,EAAE,CAAC;IAEnD;;OAEG;IACI,eAAe,GAAsC,IAAI,CAAC;IAEjE;;OAEG;IACI,SAAS,GAAY,KAAK,CAAC;IAElC;;OAEG;IACI,YAAY,GAAkB,IAAI,CAAC;IAE1C,YAAoB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IAE9C,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,+BAA+B;YAE5D,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CAAC;YAE7C,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACzB,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY;aACxC,CAAC,CAAC,CAAC,CAAC;YAEL,yCAAyC;YACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC;YAC/F,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,mBAA+C;QAClE,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,mBAA+C;QAC/D,OAAO,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,KAAK,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,YAAoB;QACzC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAExC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,OAAO,kBAAkB,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,OAAO,2BAA2B,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,OAAO,qBAAqB,CAAC;QAC/B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,sBAAsB,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,iBAAiB,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpE,OAAO,wBAAwB,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;uHAlHU,6BAA6B;6DAA7B,6BAA6B;YCXtC,AADF,AAFF,8BAA4B,aAEI,cACD;YAAA,gCAAgB;YAC7C,AAD6C,iBAAO,EAC9C;YAyBN,AATA,AARA,AALA,8EAA6C,iEAKe,iEAQ0B,iEASM;YAkC9F,iBAAM;;YAxDE,eAAe;YAAf,oCAAe;YAKf,cAAgC;YAAhC,yDAAgC;YAQhC,cAA0D;YAA1D,uFAA0D;YAS1D,cAAwD;YAAxD,qFAAwD;;;iFDfnD,6BAA6B;cALzC,SAAS;2BACE,2BAA2B;kDAS3B,eAAe;kBAAxB,MAAM;;kFALI,6BAA6B"}
1
+ {"version":3,"file":"storage-providers-list.component.js","sourceRoot":"","sources":["../../../src/lib/file-browser/storage-providers-list.component.ts","../../../src/lib/file-browser/storage-providers-list.component.html"],"names":[],"mappings":"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"}
@@ -55,77 +55,77 @@ declare const FileUploadMutationSchema: z.ZodObject<{
55
55
  Provider: z.ZodString;
56
56
  }, "__mj_CreatedAt" | "__mj_UpdatedAt">, z.ZodTypeAny, "passthrough">>;
57
57
  }, "strip", z.ZodTypeAny, {
58
+ NameExists: boolean;
59
+ UploadUrl: string;
58
60
  File: {
59
- Category: string | null;
60
61
  ID: string;
61
62
  Name: string;
62
63
  Description: string | null;
63
- Status: string;
64
64
  CategoryID: string | null;
65
- ContentType: string | null;
66
65
  ProviderID: string;
66
+ ContentType: string | null;
67
67
  ProviderKey: string | null;
68
+ Status: string;
69
+ Category: string | null;
68
70
  Provider: string;
69
71
  } & {
70
72
  [k: string]: unknown;
71
73
  };
74
+ }, {
72
75
  NameExists: boolean;
73
76
  UploadUrl: string;
74
- }, {
75
77
  File: {
76
- Category: string | null;
77
78
  ID: string;
78
79
  Name: string;
79
80
  Description: string | null;
80
- Status: string;
81
81
  CategoryID: string | null;
82
- ContentType: string | null;
83
82
  ProviderID: string;
83
+ ContentType: string | null;
84
84
  ProviderKey: string | null;
85
+ Status: string;
86
+ Category: string | null;
85
87
  Provider: string;
86
88
  } & {
87
89
  [k: string]: unknown;
88
90
  };
89
- NameExists: boolean;
90
- UploadUrl: string;
91
91
  }>;
92
92
  }, "strip", z.ZodTypeAny, {
93
93
  CreateMJFile: {
94
+ NameExists: boolean;
95
+ UploadUrl: string;
94
96
  File: {
95
- Category: string | null;
96
97
  ID: string;
97
98
  Name: string;
98
99
  Description: string | null;
99
- Status: string;
100
100
  CategoryID: string | null;
101
- ContentType: string | null;
102
101
  ProviderID: string;
102
+ ContentType: string | null;
103
103
  ProviderKey: string | null;
104
+ Status: string;
105
+ Category: string | null;
104
106
  Provider: string;
105
107
  } & {
106
108
  [k: string]: unknown;
107
109
  };
108
- NameExists: boolean;
109
- UploadUrl: string;
110
110
  };
111
111
  }, {
112
112
  CreateMJFile: {
113
+ NameExists: boolean;
114
+ UploadUrl: string;
113
115
  File: {
114
- Category: string | null;
115
116
  ID: string;
116
117
  Name: string;
117
118
  Description: string | null;
118
- Status: string;
119
119
  CategoryID: string | null;
120
- ContentType: string | null;
121
120
  ProviderID: string;
121
+ ContentType: string | null;
122
122
  ProviderKey: string | null;
123
+ Status: string;
124
+ Category: string | null;
123
125
  Provider: string;
124
126
  } & {
125
127
  [k: string]: unknown;
126
128
  };
127
- NameExists: boolean;
128
- UploadUrl: string;
129
129
  };
130
130
  }>;
131
131
  type ApiFile = z.infer<typeof FileUploadMutationSchema>['CreateMJFile']['File'];
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAyC,MAAM,+BAA+B,CAAC;AAGlG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;AAExB,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAgCvG,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,KAAK,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE/C,qBAKa,mBAAoB,YAAW,MAAM;IACzC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAM;IACtC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAM;IACzC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,EAAE,CAAkB;IAE5B,IAAI,WAAW,IAAI,OAAO,CAEzB;;IAIQ,QAAQ,UAAS;IACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC1C,aAAa,qBAA4B;IACzC,UAAU,gCAAuC;IAE3D,QAAQ,IAAI,IAAI;IAIV,OAAO;IASb,OAAO;IAOD,aAAa;IAab,kBAAkB,CAAC,CAAC,EAAE,WAAW;YAQzB,mBAAmB;YAkCnB,WAAW;yCA5Fd,mBAAmB;2CAAnB,mBAAmB;CAoH/B"}
1
+ {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,MAAM,EAAU,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAyC,MAAM,+BAA+B,CAAC;AAGlG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;;AAExB,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAgCvG,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,KAAK,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE/C,qBAMa,mBAAoB,YAAW,MAAM;IACzC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAM;IACtC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAM;IACzC,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,EAAE,CAAkB;IAE5B,IAAI,WAAW,IAAI,OAAO,CAEzB;;IAIQ,QAAQ,UAAS;IACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAC1C,aAAa,qBAA4B;IACzC,UAAU,gCAAuC;IAE3D,QAAQ,IAAI,IAAI;IAIV,OAAO;IASb,OAAO;IAOD,aAAa;IAab,kBAAkB,CAAC,CAAC,EAAE,WAAW;YAQzB,mBAAmB;YAkCnB,WAAW;yCA5Fd,mBAAmB;2CAAnB,mBAAmB;CAoH/B"}
@@ -4,23 +4,22 @@ import { FileSchema } from '@memberjunction/core-entities';
4
4
  import { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';
5
5
  import { z } from 'zod';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@progress/kendo-angular-dialog";
9
- import * as i3 from "@progress/kendo-angular-buttons";
10
- import * as i4 from "@progress/kendo-angular-upload";
11
- function FileUploadComponent_kendo_dialog_2_Template(rf, ctx) { if (rf & 1) {
7
+ import * as i1 from "@progress/kendo-angular-dialog";
8
+ import * as i2 from "@progress/kendo-angular-buttons";
9
+ import * as i3 from "@progress/kendo-angular-upload";
10
+ function FileUploadComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
12
11
  const _r1 = i0.ɵɵgetCurrentView();
13
12
  i0.ɵɵelementStart(0, "kendo-dialog", 2);
14
- i0.ɵɵlistener("close", function FileUploadComponent_kendo_dialog_2_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelConfirm()); });
13
+ i0.ɵɵlistener("close", function FileUploadComponent_Conditional_2_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelConfirm()); });
15
14
  i0.ɵɵelementStart(1, "p", 3);
16
15
  i0.ɵɵtext(2);
17
16
  i0.ɵɵelementEnd();
18
17
  i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 4);
19
- i0.ɵɵlistener("click", function FileUploadComponent_kendo_dialog_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelConfirm()); });
18
+ i0.ɵɵlistener("click", function FileUploadComponent_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CancelConfirm()); });
20
19
  i0.ɵɵtext(5, "Cancel");
21
20
  i0.ɵɵelementEnd();
22
21
  i0.ɵɵelementStart(6, "button", 5);
23
- i0.ɵɵlistener("click", function FileUploadComponent_kendo_dialog_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Confirm()); });
22
+ i0.ɵɵlistener("click", function FileUploadComponent_Conditional_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Confirm()); });
24
23
  i0.ɵɵtext(7, "Overwrite");
25
24
  i0.ɵɵelementEnd()()();
26
25
  } if (rf & 2) {
@@ -166,22 +165,22 @@ export class FileUploadComponent {
166
165
  }
167
166
  }
168
167
  static ɵfac = function FileUploadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FileUploadComponent)(); };
169
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FileUploadComponent, selectors: [["mj-files-file-upload"]], inputs: { disabled: "disabled", CategoryID: "CategoryID" }, outputs: { uploadStarted: "uploadStarted", fileUpload: "fileUpload" }, decls: 3, vars: 3, consts: [[3, "select", "disabled", "multiple"], ["title", "Please confirm", 3, "minWidth", "width", "close", 4, "ngIf"], ["title", "Please confirm", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
168
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FileUploadComponent, selectors: [["mj-files-file-upload"]], inputs: { disabled: "disabled", CategoryID: "CategoryID" }, outputs: { uploadStarted: "uploadStarted", fileUpload: "fileUpload" }, standalone: false, decls: 3, vars: 3, consts: [[3, "select", "disabled", "multiple"], ["title", "Please confirm", 3, "minWidth", "width"], ["title", "Please confirm", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
170
169
  i0.ɵɵelementStart(0, "div")(1, "kendo-fileselect", 0);
171
170
  i0.ɵɵlistener("select", function FileUploadComponent_Template_kendo_fileselect_select_1_listener($event) { return ctx.SelectEventHandler($event); });
172
171
  i0.ɵɵelementEnd();
173
- i0.ɵɵtemplate(2, FileUploadComponent_kendo_dialog_2_Template, 8, 3, "kendo-dialog", 1);
172
+ i0.ɵɵconditionalCreate(2, FileUploadComponent_Conditional_2_Template, 8, 3, "kendo-dialog", 1);
174
173
  i0.ɵɵelementEnd();
175
174
  } if (rf & 2) {
176
175
  i0.ɵɵadvance();
177
176
  i0.ɵɵproperty("disabled", ctx.IsUploading || ctx.disabled)("multiple", false);
178
177
  i0.ɵɵadvance();
179
- i0.ɵɵproperty("ngIf", ctx.ConfirmQueue.length > 0);
180
- } }, dependencies: [i1.NgIf, i2.DialogComponent, i2.DialogActionsComponent, i3.ButtonComponent, i4.FileSelectComponent] });
178
+ i0.ɵɵconditional(ctx.ConfirmQueue.length > 0 ? 2 : -1);
179
+ } }, dependencies: [i1.DialogComponent, i1.DialogActionsComponent, i2.ButtonComponent, i3.FileSelectComponent], encapsulation: 2 });
181
180
  }
182
181
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FileUploadComponent, [{
183
182
  type: Component,
184
- args: [{ selector: 'mj-files-file-upload', template: "<div>\n <kendo-fileselect [disabled]=\"IsUploading || disabled\" [multiple]=\"false\" (select)=\"SelectEventHandler($event)\"> </kendo-fileselect>\n <kendo-dialog title=\"Please confirm\" *ngIf=\"ConfirmQueue.length > 0\" (close)=\"CancelConfirm()\" [minWidth]=\"250\" [width]=\"450\">\n <p style=\"margin: 30px; text-align: center\">\n This will overwrite an existing file named '{{ConfirmQueue[0][0].name}}'. Are you sure you want to continue?\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"CancelConfirm()\">Cancel</button>\n <button kendoButton (click)=\"Confirm()\" themeColor=\"primary\">Overwrite</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n</div>\n" }]
183
+ args: [{ standalone: false, selector: 'mj-files-file-upload', template: "<div>\n <kendo-fileselect [disabled]=\"IsUploading || disabled\" [multiple]=\"false\" (select)=\"SelectEventHandler($event)\"> </kendo-fileselect>\n @if (ConfirmQueue.length > 0) {\n <kendo-dialog title=\"Please confirm\" (close)=\"CancelConfirm()\" [minWidth]=\"250\" [width]=\"450\">\n <p style=\"margin: 30px; text-align: center\">\n This will overwrite an existing file named '{{ConfirmQueue[0][0].name}}'. Are you sure you want to continue?\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"CancelConfirm()\">Cancel</button>\n <button kendoButton (click)=\"Confirm()\" themeColor=\"primary\">Overwrite</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n</div>\n" }]
185
184
  }], () => [], { disabled: [{
186
185
  type: Input
187
186
  }], CategoryID: [{
@@ -191,5 +190,5 @@ export class FileUploadComponent {
191
190
  }], fileUpload: [{
192
191
  type: Output
193
192
  }] }); })();
194
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FileUploadComponent, { className: "FileUploadComponent", filePath: "src/lib/file-upload/file-upload.ts", lineNumber: 57 }); })();
193
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FileUploadComponent, { className: "FileUploadComponent", filePath: "src/lib/file-upload/file-upload.ts", lineNumber: 58 }); })();
195
194
  //# sourceMappingURL=file-upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts","../../../src/lib/file-upload/file-upload.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/lib/file-upload/file-upload.ts","../../../src/lib/file-upload/file-upload.html"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"files-grid.d.ts","sourceRoot":"","sources":["../../../src/lib/files-grid/files-grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;;AAgD7D,qBAKa,kBAAmB,YAAW,MAAM,EAAE,SAAS;IAK9C,OAAO,CAAC,aAAa;IAJ1B,KAAK,EAAE,UAAU,EAAE,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;gBAEpB,aAAa,EAAE,aAAa;IAEvC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC;;;;;;OAMG;IACI,aAAa;IAKpB;;;;;;;OAOG;IACU,YAAY;IAezB;;;;;;OAMG;IACI,YAAY,SAAgB,UAAU,mBAkB3C;IAEF;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAO9C;;;;;;OAMG;IACI,UAAU,SAAgB,UAAU,mBAYzC;IAEF;;;;;OAKG;IACI,gBAAgB,CAAC,CAAC,EAAE,eAAe;IAU1C;;;OAGG;IACG,OAAO;yCAvIF,kBAAkB;2CAAlB,kBAAkB;CAuJ9B"}
1
+ {"version":3,"file":"files-grid.d.ts","sourceRoot":"","sources":["../../../src/lib/files-grid/files-grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;;AAgD7D,qBAMa,kBAAmB,YAAW,MAAM,EAAE,SAAS;IAK9C,OAAO,CAAC,aAAa;IAJ1B,KAAK,EAAE,UAAU,EAAE,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;gBAEpB,aAAa,EAAE,aAAa;IAEvC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpD,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMzC;;;;;;OAMG;IACI,aAAa;IAKpB;;;;;;;OAOG;IACU,YAAY;IAezB;;;;;;OAMG;IACI,YAAY,GAAU,MAAM,UAAU,mBAkB3C;IAEF;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAO9C;;;;;;OAMG;IACI,UAAU,GAAU,MAAM,UAAU,mBAYzC;IAEF;;;;;OAKG;IACI,gBAAgB,CAAC,CAAC,EAAE,eAAe;IAU1C;;;OAGG;IACG,OAAO;yCAvIF,kBAAkB;2CAAlB,kBAAkB;CAuJ9B"}