@memberjunction/ng-explorer-core 2.121.0 → 2.122.1

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 (127) hide show
  1. package/README.md +0 -1
  2. package/dist/app-routing.module.d.ts +6 -5
  3. package/dist/app-routing.module.d.ts.map +1 -1
  4. package/dist/app-routing.module.js +266 -132
  5. package/dist/app-routing.module.js.map +1 -1
  6. package/dist/lib/app-view/application-view.component.js +10 -10
  7. package/dist/lib/app-view/application-view.component.js.map +1 -1
  8. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +11 -12
  9. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
  10. package/dist/lib/data-browser-component/data-browser.component.js +8 -8
  11. package/dist/lib/data-browser-component/data-browser.component.js.map +1 -1
  12. package/dist/lib/generic-browse-list/generic-browse-list.component.js +10 -7
  13. package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -1
  14. package/dist/lib/generic-browser-list/generic-browser-list.component.js +14 -11
  15. package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -1
  16. package/dist/lib/list-view/list-view.component.js +24 -21
  17. package/dist/lib/list-view/list-view.component.js.map +1 -1
  18. package/dist/lib/navigation/navigation.component.d.ts +0 -1
  19. package/dist/lib/navigation/navigation.component.d.ts.map +1 -1
  20. package/dist/lib/navigation/navigation.component.js +11 -19
  21. package/dist/lib/navigation/navigation.component.js.map +1 -1
  22. package/dist/lib/resource-browser/resource-browser.component.js +14 -11
  23. package/dist/lib/resource-browser/resource-browser.component.js.map +1 -1
  24. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +20 -0
  25. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -0
  26. package/dist/lib/resource-wrappers/artifact-resource.component.js +92 -0
  27. package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -0
  28. package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +119 -0
  29. package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -0
  30. package/dist/lib/resource-wrappers/chat-collections-resource.component.js +500 -0
  31. package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -0
  32. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +87 -0
  33. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -0
  34. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +345 -0
  35. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -0
  36. package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +67 -0
  37. package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -0
  38. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +244 -0
  39. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -0
  40. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +46 -3
  41. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  42. package/dist/lib/resource-wrappers/dashboard-resource.component.js +298 -21
  43. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  44. package/dist/lib/resource-wrappers/list-detail-resource.component.js +1 -1
  45. package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
  46. package/dist/lib/resource-wrappers/query-resource.component.js +1 -1
  47. package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
  48. package/dist/lib/resource-wrappers/record-resource.component.d.ts.map +1 -1
  49. package/dist/lib/resource-wrappers/record-resource.component.js +22 -5
  50. package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
  51. package/dist/lib/resource-wrappers/report-resource.component.js +1 -1
  52. package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -1
  53. package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts.map +1 -1
  54. package/dist/lib/resource-wrappers/resource-wrappers-loader.js +15 -0
  55. package/dist/lib/resource-wrappers/resource-wrappers-loader.js.map +1 -1
  56. package/dist/lib/resource-wrappers/search-results-resource.component.js +1 -1
  57. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  58. package/dist/lib/resource-wrappers/view-resource.component.js +1 -1
  59. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  60. package/dist/lib/shell/components/header/app-nav.component.d.ts +45 -0
  61. package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -0
  62. package/dist/lib/shell/components/header/app-nav.component.js +127 -0
  63. package/dist/lib/shell/components/header/app-nav.component.js.map +1 -0
  64. package/dist/lib/shell/components/header/app-switcher.component.d.ts +53 -0
  65. package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -0
  66. package/dist/lib/shell/components/header/app-switcher.component.js +190 -0
  67. package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -0
  68. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +83 -0
  69. package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -0
  70. package/dist/lib/shell/components/tabs/component-cache-manager.js +175 -0
  71. package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -0
  72. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +138 -0
  73. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -0
  74. package/dist/lib/shell/components/tabs/tab-container.component.js +920 -0
  75. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -0
  76. package/dist/lib/shell/services/settings-dialog.service.d.ts +28 -0
  77. package/dist/lib/shell/services/settings-dialog.service.d.ts.map +1 -0
  78. package/dist/lib/shell/services/settings-dialog.service.js +67 -0
  79. package/dist/lib/shell/services/settings-dialog.service.js.map +1 -0
  80. package/dist/lib/shell/shell.component.d.ts +166 -0
  81. package/dist/lib/shell/shell.component.d.ts.map +1 -0
  82. package/dist/lib/shell/shell.component.js +1173 -0
  83. package/dist/lib/shell/shell.component.js.map +1 -0
  84. package/dist/lib/shell/shell.module.d.ts +14 -0
  85. package/dist/lib/shell/shell.module.d.ts.map +1 -0
  86. package/dist/lib/shell/shell.module.js +42 -0
  87. package/dist/lib/shell/shell.module.js.map +1 -0
  88. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +17 -13
  89. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
  90. package/dist/lib/single-dashboard/single-dashboard.component.d.ts +2 -1
  91. package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
  92. package/dist/lib/single-dashboard/single-dashboard.component.js +6 -1
  93. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
  94. package/dist/lib/single-entity/single-entity.component.js +21 -17
  95. package/dist/lib/single-entity/single-entity.component.js.map +1 -1
  96. package/dist/lib/single-list-detail/single-list-detail.component.js +36 -30
  97. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
  98. package/dist/lib/single-record/single-record.component.d.ts +1 -0
  99. package/dist/lib/single-record/single-record.component.d.ts.map +1 -1
  100. package/dist/lib/single-record/single-record.component.js +16 -9
  101. package/dist/lib/single-record/single-record.component.js.map +1 -1
  102. package/dist/lib/single-report/single-report.component.d.ts +1 -7
  103. package/dist/lib/single-report/single-report.component.d.ts.map +1 -1
  104. package/dist/lib/single-report/single-report.component.js +16 -37
  105. package/dist/lib/single-report/single-report.component.js.map +1 -1
  106. package/dist/lib/single-view/single-view.component.d.ts +1 -2
  107. package/dist/lib/single-view/single-view.component.d.ts.map +1 -1
  108. package/dist/lib/single-view/single-view.component.js +35 -43
  109. package/dist/lib/single-view/single-view.component.js.map +1 -1
  110. package/dist/lib/style-guide-test/style-guide-test.component.js +20 -13
  111. package/dist/lib/style-guide-test/style-guide-test.component.js.map +1 -1
  112. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts +1 -1
  113. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts.map +1 -1
  114. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +8 -11
  115. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -1
  116. package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
  117. package/dist/lib/user-notifications/user-notifications.component.js +0 -5
  118. package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
  119. package/dist/module.d.ts +50 -46
  120. package/dist/module.d.ts.map +1 -1
  121. package/dist/module.js +23 -11
  122. package/dist/module.js.map +1 -1
  123. package/dist/public-api.d.ts +4 -0
  124. package/dist/public-api.d.ts.map +1 -1
  125. package/dist/public-api.js +5 -0
  126. package/dist/public-api.js.map +1 -1
  127. package/package.json +44 -35
@@ -12,13 +12,13 @@ import * as i0 from "@angular/core";
12
12
  import * as i1 from "@memberjunction/ng-shared";
13
13
  import * as i2 from "@angular/router";
14
14
  import * as i3 from "@angular/common";
15
- import * as i4 from "@progress/kendo-angular-indicators";
16
- import * as i5 from "@progress/kendo-angular-buttons";
17
- import * as i6 from "@progress/kendo-angular-layout";
18
- import * as i7 from "@memberjunction/ng-record-selector";
15
+ import * as i4 from "@progress/kendo-angular-buttons";
16
+ import * as i5 from "@progress/kendo-angular-layout";
17
+ import * as i6 from "@memberjunction/ng-record-selector";
18
+ import * as i7 from "@memberjunction/ng-shared-generic";
19
19
  function DataBrowserComponent_div_15_Template(rf, ctx) { if (rf & 1) {
20
20
  i0.ɵɵelementStart(0, "div", 15);
21
- i0.ɵɵelement(1, "kendo-loader", 16);
21
+ i0.ɵɵelement(1, "mj-loading", 16);
22
22
  i0.ɵɵelementEnd();
23
23
  } }
24
24
  function DataBrowserComponent_div_16_kendo_card_1_i_2_Template(rf, ctx) { if (rf & 1) {
@@ -221,7 +221,7 @@ let DataBrowserComponent = class DataBrowserComponent extends BaseNavigationComp
221
221
  }
222
222
  }
223
223
  static ɵfac = function DataBrowserComponent_Factory(t) { return new (t || DataBrowserComponent)(i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router)); };
224
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataBrowserComponent, selectors: [["app-data-browser"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 19, vars: 8, consts: [[1, "mj-page-container"], [1, "mj-breadcrumb"], [1, "mj-breadcrumb-item", 3, "click"], [1, "fas", "fa-home"], [1, "fas", "fa-chevron-right", "mj-breadcrumb-separator"], [1, "mj-breadcrumb-current"], [1, "mj-header"], [1, "mj-header-title"], [1, "mj-header-actions"], ["kendoButton", "", "fillMode", "flat", "rounded", "full", "size", "large", "themeColor", "primary", 3, "click", "title"], [1, "fas", "fa-cog"], ["class", "mj-loading mj-loading-overlay", 4, "ngIf"], ["class", "mj-grid mj-grid-responsive", 4, "ngIf"], ["class", "mj-empty-state", 4, "ngIf"], ["EntityName", "Applications", "DisplayField", "Name", "DisplayIconField", "Icon", "DialogTitle", "Select Applications", 3, "DialogClosed", "AvailableRecords", "SelectedRecords", "UnselectedRecords", "DialogVisible"], [1, "mj-loading", "mj-loading-overlay"], ["type", "converging-spinner", "themeColor", "primary", "size", "large"], [1, "mj-grid", "mj-grid-responsive"], ["class", "mj-kendo-icon-card mj-kendo-icon-card-clickable", 3, "click", 4, "ngFor", "ngForOf"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable", 3, "click"], ["class", "mj-card-icon-large", 3, "ngClass", 4, "ngIf"], ["class", "fas fa-cube mj-card-icon-large", 4, "ngIf"], [4, "ngIf"], ["class", "text-muted", 4, "ngIf"], ["class", "mj-app-status", 4, "ngIf"], [1, "mj-card-icon-large", 3, "ngClass"], [1, "fas", "fa-cube", "mj-card-icon-large"], [1, "text-muted"], [1, "mj-app-status"], [1, "fas", "fa-star"], [1, "mj-empty-state"], [1, "fas", "fa-server", "mj-empty-icon"], ["kendoButton", "", "themeColor", "primary", "rounded", "medium", "size", "large", 3, "click"], [1, "button-content"]], template: function DataBrowserComponent_Template(rf, ctx) { if (rf & 1) {
224
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DataBrowserComponent, selectors: [["app-data-browser"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 19, vars: 8, consts: [[1, "mj-page-container"], [1, "mj-breadcrumb"], [1, "mj-breadcrumb-item", 3, "click"], [1, "fas", "fa-home"], [1, "fas", "fa-chevron-right", "mj-breadcrumb-separator"], [1, "mj-breadcrumb-current"], [1, "mj-header"], [1, "mj-header-title"], [1, "mj-header-actions"], ["kendoButton", "", "fillMode", "flat", "rounded", "full", "size", "large", "themeColor", "primary", 3, "click", "title"], [1, "fas", "fa-cog"], ["class", "mj-loading mj-loading-overlay", 4, "ngIf"], ["class", "mj-grid mj-grid-responsive", 4, "ngIf"], ["class", "mj-empty-state", 4, "ngIf"], ["EntityName", "Applications", "DisplayField", "Name", "DisplayIconField", "Icon", "DialogTitle", "Select Applications", 3, "DialogClosed", "AvailableRecords", "SelectedRecords", "UnselectedRecords", "DialogVisible"], [1, "mj-loading", "mj-loading-overlay"], ["text", "Loading applications...", "size", "large"], [1, "mj-grid", "mj-grid-responsive"], ["class", "mj-kendo-icon-card mj-kendo-icon-card-clickable", 3, "click", 4, "ngFor", "ngForOf"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable", 3, "click"], ["class", "mj-card-icon-large", 3, "ngClass", 4, "ngIf"], ["class", "fas fa-cube mj-card-icon-large", 4, "ngIf"], [4, "ngIf"], ["class", "text-muted", 4, "ngIf"], ["class", "mj-app-status", 4, "ngIf"], [1, "mj-card-icon-large", 3, "ngClass"], [1, "fas", "fa-cube", "mj-card-icon-large"], [1, "text-muted"], [1, "mj-app-status"], [1, "fas", "fa-star"], [1, "mj-empty-state"], [1, "fas", "fa-server", "mj-empty-icon"], ["kendoButton", "", "themeColor", "primary", "rounded", "medium", "size", "large", 3, "click"], [1, "button-content"]], template: function DataBrowserComponent_Template(rf, ctx) { if (rf & 1) {
225
225
  i0.ɵɵelementStart(0, "div", 0)(1, "nav", 1)(2, "span", 2);
226
226
  i0.ɵɵlistener("click", function DataBrowserComponent_Template_span_click_2_listener($event) { return ctx.GoHome($event); });
227
227
  i0.ɵɵelement(3, "i", 3);
@@ -253,7 +253,7 @@ let DataBrowserComponent = class DataBrowserComponent extends BaseNavigationComp
253
253
  i0.ɵɵproperty("ngIf", ctx.SelectedApplications.length === 0 && !ctx.showLoader);
254
254
  i0.ɵɵadvance();
255
255
  i0.ɵɵproperty("AvailableRecords", ctx.AllApplications)("SelectedRecords", ctx.SelectedApplications)("UnselectedRecords", ctx.UnselectedApplications)("DialogVisible", ctx.AppSelectionDialogVisible);
256
- } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.LoaderComponent, i5.ButtonComponent, i6.CardComponent, i6.CardBodyComponent, i7.RecordSelectorDialogComponent], styles: ["\n\n\n\n\n\n\n\n\n\n mj-record-selector-dialog {\n .mj-record-selector-content {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n \n \n\n @media (max-width: 768px) {\n .mj-record-selector-content {\n grid-template-columns: 1fr;\n }\n }\n}\n\n\n\n.mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n &::before {\n content: '\\f5fd'; \n\n font-family: 'Font Awesome 6 Free', 'FontAwesome';\n font-weight: 900;\n font-size: 2.5rem;\n margin-right: 1rem;\n color: var(--mj-blue);\n }\n}\n\n\n\n.mj-app-status[_ngcontent-%COMP%] {\n margin-top: auto;\n padding-top: 16px;\n font-size: 0.875rem;\n color: var(--mj-blue);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n \n i {\n font-size: 0.75rem;\n }\n}\n\n\n\n.mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 280px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n\n\n@media (max-width: 1024px) {\n .mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 240px;\n }\n}\n\n@media (max-width: 768px) {\n .mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 200px;\n }\n \n .mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]::before {\n font-size: 1.875rem;\n }\n}\n\n@media (max-width: 480px) {\n .mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]::before {\n display: none; \n\n }\n}"] });
256
+ } }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.ButtonComponent, i5.CardComponent, i5.CardBodyComponent, i6.RecordSelectorDialogComponent, i7.LoadingComponent], styles: ["\n\n\n\n\n\n\n\n\n\n mj-record-selector-dialog {\n .mj-record-selector-content {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n \n \n\n @media (max-width: 768px) {\n .mj-record-selector-content {\n grid-template-columns: 1fr;\n }\n }\n}\n\n\n\n.mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n &::before {\n content: '\\f5fd'; \n\n font-family: 'Font Awesome 6 Free', 'FontAwesome';\n font-weight: 900;\n font-size: 2.5rem;\n margin-right: 1rem;\n color: var(--mj-blue);\n }\n}\n\n\n\n.mj-app-status[_ngcontent-%COMP%] {\n margin-top: auto;\n padding-top: 16px;\n font-size: 0.875rem;\n color: var(--mj-blue);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n \n i {\n font-size: 0.75rem;\n }\n}\n\n\n\n.mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 280px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n\n\n@media (max-width: 1024px) {\n .mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 240px;\n }\n}\n\n@media (max-width: 768px) {\n .mj-kendo-icon-card[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n min-height: 200px;\n }\n \n .mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]::before {\n font-size: 1.875rem;\n }\n}\n\n@media (max-width: 480px) {\n .mj-header[_ngcontent-%COMP%] .mj-header-title[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]::before {\n display: none; \n\n }\n}"] });
257
257
  };
258
258
  DataBrowserComponent = __decorate([
259
259
  RegisterClass(BaseNavigationComponent, 'Data')
@@ -261,7 +261,7 @@ DataBrowserComponent = __decorate([
261
261
  export { DataBrowserComponent };
262
262
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataBrowserComponent, [{
263
263
  type: Component,
264
- args: [{ selector: 'app-data-browser', template: "<!-- Enhanced Data Browser Component -->\n<div class=\"mj-page-container\">\n <!-- Breadcrumb Navigation -->\n <nav class=\"mj-breadcrumb\">\n <span class=\"mj-breadcrumb-item\" (click)=\"GoHome($event)\">\n <i class=\"fas fa-home\"></i>\n Home\n </span>\n <i class=\"fas fa-chevron-right mj-breadcrumb-separator\"></i>\n <span class=\"mj-breadcrumb-current\">Applications</span>\n </nav>\n\n <!-- Header using global styles -->\n <div class=\"mj-header\">\n <div class=\"mj-header-title\">\n <h1>Applications</h1>\n </div>\n <div class=\"mj-header-actions\">\n <button kendoButton\n fillMode=\"flat\"\n rounded=\"full\"\n size=\"large\"\n themeColor=\"primary\"\n [title]=\"'Configure Applications'\"\n (click)=\"ShowAppSelectionDialog()\">\n <i class=\"fas fa-cog\"></i>\n </button>\n </div>\n </div>\n\n <!-- Loading State using global styles -->\n <div class=\"mj-loading mj-loading-overlay\" *ngIf=\"showLoader\">\n <kendo-loader \n type=\"converging-spinner\" \n themeColor=\"primary\" \n size=\"large\">\n </kendo-loader>\n </div>\n\n <!-- Applications Grid using global grid and icon card styles -->\n <div class=\"mj-grid mj-grid-responsive\" *ngIf=\"!showLoader && SelectedApplications.length > 0\">\n <kendo-card \n class=\"mj-kendo-icon-card mj-kendo-icon-card-clickable\" \n *ngFor=\"let app of SelectedApplications\" \n (click)=\"appItemClick(app)\"\n [attr.tabindex]=\"0\"\n [attr.role]=\"'button'\"\n [attr.aria-label]=\"'Open ' + app.Name + ' application'\">\n <kendo-card-body>\n <i *ngIf=\"app.Icon && app.Icon.length > 0\" \n [ngClass]=\"app.Icon\" \n class=\"mj-card-icon-large\"\n [attr.aria-hidden]=\"true\"></i>\n <i *ngIf=\"!app.Icon || app.Icon.length === 0\" \n class=\"fas fa-cube mj-card-icon-large\"\n [attr.aria-hidden]=\"true\"></i>\n <h3>{{ app.Name }}</h3>\n <p *ngIf=\"app.Description\">{{ app.Description }}</p>\n <p *ngIf=\"!app.Description\" class=\"text-muted\">No description available</p>\n <div class=\"mj-app-status\" *ngIf=\"app.DefaultForNewUser\">\n <i class=\"fas fa-star\"></i>\n Default App\n </div>\n </kendo-card-body>\n </kendo-card>\n </div>\n\n <!-- Empty State using global styles -->\n <div class=\"mj-empty-state\" *ngIf=\"SelectedApplications.length === 0 && !showLoader\">\n <i class=\"fas fa-server mj-empty-icon\"></i>\n <h3>No Applications Selected</h3>\n <p>Choose which applications you'd like to access from your dashboard</p>\n <button kendoButton\n themeColor=\"primary\"\n rounded=\"medium\"\n size=\"large\"\n (click)=\"ShowAppSelectionDialog()\">\n <span class=\"button-content\">\n <i class=\"fas fa-cog\"></i>\n Configure Applications\n </span>\n </button>\n </div>\n\n <!-- Application Selection Dialog -->\n <mj-record-selector-dialog \n EntityName=\"Applications\"\n [AvailableRecords]=\"AllApplications\" \n [SelectedRecords]=\"SelectedApplications\" \n [UnselectedRecords]=\"UnselectedApplications\"\n [DialogVisible]=\"AppSelectionDialogVisible\"\n DisplayField=\"Name\"\n DisplayIconField=\"Icon\"\n DialogTitle=\"Select Applications\"\n (DialogClosed)=\"OnAppSelectionDialogClosed($event)\">\n </mj-record-selector-dialog>\n</div>\n", styles: ["/* Data Browser Component - Minimal Custom Styles */\n/* Leveraging global styles from the MJ design system */\n\n/* Only component-specific overrides that can't be handled by global styles */\n\n/* Record Selector Dialog - Two column layout */\n::ng-deep mj-record-selector-dialog {\n .mj-record-selector-content {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n \n /* Responsive - single column on mobile */\n @media (max-width: 768px) {\n .mj-record-selector-content {\n grid-template-columns: 1fr;\n }\n }\n}\n\n/* Header title with icon - specific to this page */\n.mj-header .mj-header-title h1 {\n &::before {\n content: '\\f5fd'; /* Font Awesome server icon */\n font-family: 'Font Awesome 6 Free', 'FontAwesome';\n font-weight: 900;\n font-size: 2.5rem;\n margin-right: 1rem;\n color: var(--mj-blue);\n }\n}\n\n/* App status indicator - component specific */\n.mj-app-status {\n margin-top: auto;\n padding-top: 16px;\n font-size: 0.875rem;\n color: var(--mj-blue);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n \n i {\n font-size: 0.75rem;\n }\n}\n\n/* Ensure consistent card body height in grid */\n.mj-kendo-icon-card .k-card-body {\n min-height: 280px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* Responsive adjustments for card height */\n@media (max-width: 1024px) {\n .mj-kendo-icon-card .k-card-body {\n min-height: 240px;\n }\n}\n\n@media (max-width: 768px) {\n .mj-kendo-icon-card .k-card-body {\n min-height: 200px;\n }\n \n .mj-header .mj-header-title h1::before {\n font-size: 1.875rem;\n }\n}\n\n@media (max-width: 480px) {\n .mj-header .mj-header-title h1::before {\n display: none; /* Hide icon on very small screens */\n }\n}\n"] }]
264
+ args: [{ selector: 'app-data-browser', template: "<!-- Enhanced Data Browser Component -->\n<div class=\"mj-page-container\">\n <!-- Breadcrumb Navigation -->\n <nav class=\"mj-breadcrumb\">\n <span class=\"mj-breadcrumb-item\" (click)=\"GoHome($event)\">\n <i class=\"fas fa-home\"></i>\n Home\n </span>\n <i class=\"fas fa-chevron-right mj-breadcrumb-separator\"></i>\n <span class=\"mj-breadcrumb-current\">Applications</span>\n </nav>\n\n <!-- Header using global styles -->\n <div class=\"mj-header\">\n <div class=\"mj-header-title\">\n <h1>Applications</h1>\n </div>\n <div class=\"mj-header-actions\">\n <button kendoButton\n fillMode=\"flat\"\n rounded=\"full\"\n size=\"large\"\n themeColor=\"primary\"\n [title]=\"'Configure Applications'\"\n (click)=\"ShowAppSelectionDialog()\">\n <i class=\"fas fa-cog\"></i>\n </button>\n </div>\n </div>\n\n <!-- Loading State using global styles -->\n <div class=\"mj-loading mj-loading-overlay\" *ngIf=\"showLoader\">\n <mj-loading text=\"Loading applications...\" size=\"large\"></mj-loading>\n </div>\n\n <!-- Applications Grid using global grid and icon card styles -->\n <div class=\"mj-grid mj-grid-responsive\" *ngIf=\"!showLoader && SelectedApplications.length > 0\">\n <kendo-card \n class=\"mj-kendo-icon-card mj-kendo-icon-card-clickable\" \n *ngFor=\"let app of SelectedApplications\" \n (click)=\"appItemClick(app)\"\n [attr.tabindex]=\"0\"\n [attr.role]=\"'button'\"\n [attr.aria-label]=\"'Open ' + app.Name + ' application'\">\n <kendo-card-body>\n <i *ngIf=\"app.Icon && app.Icon.length > 0\" \n [ngClass]=\"app.Icon\" \n class=\"mj-card-icon-large\"\n [attr.aria-hidden]=\"true\"></i>\n <i *ngIf=\"!app.Icon || app.Icon.length === 0\" \n class=\"fas fa-cube mj-card-icon-large\"\n [attr.aria-hidden]=\"true\"></i>\n <h3>{{ app.Name }}</h3>\n <p *ngIf=\"app.Description\">{{ app.Description }}</p>\n <p *ngIf=\"!app.Description\" class=\"text-muted\">No description available</p>\n <div class=\"mj-app-status\" *ngIf=\"app.DefaultForNewUser\">\n <i class=\"fas fa-star\"></i>\n Default App\n </div>\n </kendo-card-body>\n </kendo-card>\n </div>\n\n <!-- Empty State using global styles -->\n <div class=\"mj-empty-state\" *ngIf=\"SelectedApplications.length === 0 && !showLoader\">\n <i class=\"fas fa-server mj-empty-icon\"></i>\n <h3>No Applications Selected</h3>\n <p>Choose which applications you'd like to access from your dashboard</p>\n <button kendoButton\n themeColor=\"primary\"\n rounded=\"medium\"\n size=\"large\"\n (click)=\"ShowAppSelectionDialog()\">\n <span class=\"button-content\">\n <i class=\"fas fa-cog\"></i>\n Configure Applications\n </span>\n </button>\n </div>\n\n <!-- Application Selection Dialog -->\n <mj-record-selector-dialog \n EntityName=\"Applications\"\n [AvailableRecords]=\"AllApplications\" \n [SelectedRecords]=\"SelectedApplications\" \n [UnselectedRecords]=\"UnselectedApplications\"\n [DialogVisible]=\"AppSelectionDialogVisible\"\n DisplayField=\"Name\"\n DisplayIconField=\"Icon\"\n DialogTitle=\"Select Applications\"\n (DialogClosed)=\"OnAppSelectionDialogClosed($event)\">\n </mj-record-selector-dialog>\n</div>\n", styles: ["/* Data Browser Component - Minimal Custom Styles */\n/* Leveraging global styles from the MJ design system */\n\n/* Only component-specific overrides that can't be handled by global styles */\n\n/* Record Selector Dialog - Two column layout */\n::ng-deep mj-record-selector-dialog {\n .mj-record-selector-content {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 20px;\n }\n \n /* Responsive - single column on mobile */\n @media (max-width: 768px) {\n .mj-record-selector-content {\n grid-template-columns: 1fr;\n }\n }\n}\n\n/* Header title with icon - specific to this page */\n.mj-header .mj-header-title h1 {\n &::before {\n content: '\\f5fd'; /* Font Awesome server icon */\n font-family: 'Font Awesome 6 Free', 'FontAwesome';\n font-weight: 900;\n font-size: 2.5rem;\n margin-right: 1rem;\n color: var(--mj-blue);\n }\n}\n\n/* App status indicator - component specific */\n.mj-app-status {\n margin-top: auto;\n padding-top: 16px;\n font-size: 0.875rem;\n color: var(--mj-blue);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n \n i {\n font-size: 0.75rem;\n }\n}\n\n/* Ensure consistent card body height in grid */\n.mj-kendo-icon-card .k-card-body {\n min-height: 280px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* Responsive adjustments for card height */\n@media (max-width: 1024px) {\n .mj-kendo-icon-card .k-card-body {\n min-height: 240px;\n }\n}\n\n@media (max-width: 768px) {\n .mj-kendo-icon-card .k-card-body {\n min-height: 200px;\n }\n \n .mj-header .mj-header-title h1::before {\n font-size: 1.875rem;\n }\n}\n\n@media (max-width: 480px) {\n .mj-header .mj-header-title h1::before {\n display: none; /* Hide icon on very small screens */\n }\n}\n"] }]
265
265
  }], () => [{ type: i1.SharedService }, { type: i2.Router }], null); })();
266
266
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DataBrowserComponent, { className: "DataBrowserComponent", filePath: "src/lib/data-browser-component/data-browser.component.ts", lineNumber: 14 }); })();
267
267
  //# sourceMappingURL=data-browser.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-browser.component.js","sourceRoot":"","sources":["../../../src/lib/data-browser-component/data-browser.component.ts","../../../src/lib/data-browser-component/data-browser.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-browser.component.js","sourceRoot":"","sources":["../../../src/lib/data-browser-component/data-browser.component.ts","../../../src/lib/data-browser-component/data-browser.component.html"],"names":[],"mappings":"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"}
@@ -3,12 +3,15 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@memberjunction/ng-shared";
4
4
  import * as i2 from "@angular/router";
5
5
  import * as i3 from "@angular/common";
6
- import * as i4 from "@progress/kendo-angular-indicators";
7
- import * as i5 from "@progress/kendo-angular-buttons";
6
+ import * as i4 from "@progress/kendo-angular-buttons";
7
+ import * as i5 from "@memberjunction/ng-shared-generic";
8
8
  function GenericBrowseListComponent_div_17_Template(rf, ctx) { if (rf & 1) {
9
9
  i0.ɵɵelementStart(0, "div", 13);
10
- i0.ɵɵelement(1, "kendo-loader", 14);
10
+ i0.ɵɵelement(1, "mj-loading", 14);
11
11
  i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ i0.ɵɵadvance();
14
+ i0.ɵɵproperty("showText", false);
12
15
  } }
13
16
  function GenericBrowseListComponent_div_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
14
17
  i0.ɵɵelementStart(0, "div", 16)(1, "div", 18);
@@ -108,7 +111,7 @@ export class GenericBrowseListComponent {
108
111
  this.router.navigate(["dashboard"]);
109
112
  }
110
113
  static ɵfac = function GenericBrowseListComponent_Factory(t) { return new (t || GenericBrowseListComponent)(i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router)); };
111
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GenericBrowseListComponent, selectors: [["app-generic-browse-list"]], inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", showAddButton: "showAddButton", addText: "addText", backText: "backText" }, outputs: { addButtonClickEvent: "addButtonClickEvent", deleteButtonClickEvent: "deleteButtonClickEvent", itemClickEvent: "itemClickEvent" }, decls: 19, vars: 4, consts: [[1, "generic-browse-list-container"], [1, "card-header-entity"], [1, "title-wrap"], [1, "add-item"], ["kendoButton", "", 1, "edit-btn", "mj-btn-primary", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], [1, "main-fav-wrapper"], [1, "title-wrapper"], ["themeColor", "primary", 3, "data"], [1, "fa-solid", "fa-plus"], [1, "main-area"], ["class", "mj-loading", 4, "ngIf"], ["class", "card-list", 4, "ngIf"], [1, "mj-loading"], ["type", "converging-spinner"], [1, "card-list"], [1, "mj-empty-state"], [1, "card-wrapper"], [1, "mj-empty-icon"], [1, "fa-solid", "fa-star"], ["class", "card-wrapper", 4, "ngFor", "ngForOf"], [1, "mj-card-body"], [1, "list-item-icon"], ["title", "Add to Favorites", 1, "common-btn"], [1, "fa-regular", "fa-star"], ["title", "Open", 1, "common-btn"], [1, "fa-solid", "fa-external-link-alt"], ["title", "Edit", 1, "common-btn"], [1, "fa-regular", "fa-pen-to-square"], ["title", "Delete", 1, "common-btn"], [1, "fa-regular", "fa-trash-can"], [1, "view-card-content-list", 3, "click"], [1, "card-icon"], [1, "fa-solid", "fa-chart-bar", "fa-3x", 2, "color", "var(--mj-blue)"]], template: function GenericBrowseListComponent_Template(rf, ctx) { if (rf & 1) {
114
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GenericBrowseListComponent, selectors: [["app-generic-browse-list"]], inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", showAddButton: "showAddButton", addText: "addText", backText: "backText" }, outputs: { addButtonClickEvent: "addButtonClickEvent", deleteButtonClickEvent: "deleteButtonClickEvent", itemClickEvent: "itemClickEvent" }, decls: 19, vars: 4, consts: [[1, "generic-browse-list-container"], [1, "card-header-entity"], [1, "title-wrap"], [1, "add-item"], ["kendoButton", "", 1, "edit-btn", "mj-btn-primary", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], [1, "main-fav-wrapper"], [1, "title-wrapper"], ["themeColor", "primary", 3, "data"], [1, "fa-solid", "fa-plus"], [1, "main-area"], ["class", "mj-loading", 4, "ngIf"], ["class", "card-list", 4, "ngIf"], [1, "mj-loading"], ["size", "large", 3, "showText"], [1, "card-list"], [1, "mj-empty-state"], [1, "card-wrapper"], [1, "mj-empty-icon"], [1, "fa-solid", "fa-star"], ["class", "card-wrapper", 4, "ngFor", "ngForOf"], [1, "mj-card-body"], [1, "list-item-icon"], ["title", "Add to Favorites", 1, "common-btn"], [1, "fa-regular", "fa-star"], ["title", "Open", 1, "common-btn"], [1, "fa-solid", "fa-external-link-alt"], ["title", "Edit", 1, "common-btn"], [1, "fa-regular", "fa-pen-to-square"], ["title", "Delete", 1, "common-btn"], [1, "fa-regular", "fa-trash-can"], [1, "view-card-content-list", 3, "click"], [1, "card-icon"], [1, "fa-solid", "fa-chart-bar", "fa-3x", 2, "color", "var(--mj-blue)"]], template: function GenericBrowseListComponent_Template(rf, ctx) { if (rf & 1) {
112
115
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h1");
113
116
  i0.ɵɵtext(4);
114
117
  i0.ɵɵelementEnd()();
@@ -125,7 +128,7 @@ export class GenericBrowseListComponent {
125
128
  i0.ɵɵtext(15, " Create New ");
126
129
  i0.ɵɵelementEnd()();
127
130
  i0.ɵɵelementStart(16, "div", 10);
128
- i0.ɵɵtemplate(17, GenericBrowseListComponent_div_17_Template, 2, 0, "div", 11)(18, GenericBrowseListComponent_div_18_Template, 3, 1, "div", 12);
131
+ i0.ɵɵtemplate(17, GenericBrowseListComponent_div_17_Template, 2, 1, "div", 11)(18, GenericBrowseListComponent_div_18_Template, 3, 1, "div", 12);
129
132
  i0.ɵɵelementEnd()()();
130
133
  } if (rf & 2) {
131
134
  i0.ɵɵadvance(4);
@@ -136,11 +139,11 @@ export class GenericBrowseListComponent {
136
139
  i0.ɵɵproperty("ngIf", ctx.showLoader);
137
140
  i0.ɵɵadvance();
138
141
  i0.ɵɵproperty("ngIf", !ctx.showLoader);
139
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.LoaderComponent, i5.ButtonComponent, i5.DropDownButtonComponent], styles: ["\n\n\n\n\n.generic-browse-list-container[_ngcontent-%COMP%] {\n @extend .mj-page-container;\n}\n\n\n\n.card-header-entity[_ngcontent-%COMP%] {\n @extend .mj-header;\n}\n\n.title-wrap[_ngcontent-%COMP%] {\n @extend .mj-header-title;\n}\n\n.title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 2.25rem;\n line-height: 1.2;\n color: var(--navy);\n}\n\n.add-item[_ngcontent-%COMP%] {\n @extend .mj-header-actions;\n}\n\n.add-item[_ngcontent-%COMP%] .edit-btn[_ngcontent-%COMP%] {\n @extend .mj-btn-primary;\n}\n\n\n\n.main-fav-wrapper[_ngcontent-%COMP%] {\n @extend .mj-content-container;\n}\n\n\n\n.title-wrapper[_ngcontent-%COMP%] {\n @extend .mj-toolbar;\n}\n\n.title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n @extend .mj-toolbar-title;\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--navy);\n}\n\n\n\n .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n @extend .mj-btn-primary;\n}\n\n\n\n.card-list[_ngcontent-%COMP%] {\n @extend .mj-grid-responsive;\n margin-top: 20px;\n}\n\n.card-wrapper[_ngcontent-%COMP%] {\n @extend .mj-card;\n @extend .mj-grid-item;\n position: relative;\n cursor: pointer;\n}\n\n\n\n.view-card-content-list[_ngcontent-%COMP%] {\n @extend .mj-card-body;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px 16px;\n}\n\n.view-card-content-list[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n transition: var(--transition-time);\n}\n\n.view-card-content-list[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--navy);\n margin: 0 0 8px 0;\n transition: var(--transition-time);\n text-align: center;\n}\n\n.view-card-content-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 0.9rem;\n color: var(--gray-800);\n line-height: 1.4;\n margin: 0;\n text-align: center;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.list-item-icon[_ngcontent-%COMP%] {\n @extend .mj-card-actions;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(4px);\n border-radius: var(--border-radius);\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.common-btn[_ngcontent-%COMP%] {\n @extend .mj-btn-icon-only;\n @extend .mj-btn-sm;\n background: transparent;\n border: 1px solid var(--gray-700);\n color: var(--gray-800);\n \n &:hover {\n background: var(--mj-blue);\n color: var(--white-color);\n border-color: var(--mj-blue);\n }\n}\n\n.common-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n}\n\n.common-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n transition: var(--transition-time);\n}\n\n.common-btn[_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n fill: var(--white-color);\n}\n\n\n\n.card-wrapper[_ngcontent-%COMP%]:hover {\n .view-card-content-list svg {\n transform: scale(1.1);\n }\n \n .view-card-content-list svg path {\n fill: var(--mj-blue);\n }\n \n .view-card-content-list h5 {\n color: var(--mj-blue);\n transform: scale(1.02);\n }\n}\n\n\n\n.main-area[_ngcontent-%COMP%] kendo-loader[_ngcontent-%COMP%] {\n @extend .mj-loading;\n min-height: 200px;\n}\n\n\n\n.breadcrumb-wrap[_ngcontent-%COMP%] {\n @extend .mj-breadcrumb;\n}\n\n\n\n .generic-browse-list-container .card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 2.25rem !important;\n line-height: 1.2 !important;\n color: var(--navy) !important;\n}\n\n .generic-browse-list-container .card-header-entity .add-item .k-button {\n @extend .mj-btn-primary;\n}\n\n\n\n\n\n\n@media (max-width: 768px) {\n .card-header-entity[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 20px;\n text-align: center;\n }\n \n .title-wrapper[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 15px;\n }\n \n .list-item-icon[_ngcontent-%COMP%] {\n opacity: 1;\n position: static;\n justify-content: center;\n margin-top: 16px;\n background: var(--gray-600);\n border-radius: var(--border-radius);\n }\n}\n\n@media (max-width: 480px) {\n .view-card-content-list[_ngcontent-%COMP%] {\n padding: 20px 12px;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n margin-bottom: 12px;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}"] });
142
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i4.ButtonComponent, i4.DropDownButtonComponent, i5.LoadingComponent], styles: ["\n\n\n\n\n.generic-browse-list-container[_ngcontent-%COMP%] {\n @extend .mj-page-container;\n}\n\n\n\n.card-header-entity[_ngcontent-%COMP%] {\n @extend .mj-header;\n}\n\n.title-wrap[_ngcontent-%COMP%] {\n @extend .mj-header-title;\n}\n\n.title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 2.25rem;\n line-height: 1.2;\n color: var(--navy);\n}\n\n.add-item[_ngcontent-%COMP%] {\n @extend .mj-header-actions;\n}\n\n.add-item[_ngcontent-%COMP%] .edit-btn[_ngcontent-%COMP%] {\n @extend .mj-btn-primary;\n}\n\n\n\n.main-fav-wrapper[_ngcontent-%COMP%] {\n @extend .mj-content-container;\n}\n\n\n\n.title-wrapper[_ngcontent-%COMP%] {\n @extend .mj-toolbar;\n}\n\n.title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n @extend .mj-toolbar-title;\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--navy);\n}\n\n\n\n .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n @extend .mj-btn-primary;\n}\n\n\n\n.card-list[_ngcontent-%COMP%] {\n @extend .mj-grid-responsive;\n margin-top: 20px;\n}\n\n.card-wrapper[_ngcontent-%COMP%] {\n @extend .mj-card;\n @extend .mj-grid-item;\n position: relative;\n cursor: pointer;\n}\n\n\n\n.view-card-content-list[_ngcontent-%COMP%] {\n @extend .mj-card-body;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px 16px;\n}\n\n.view-card-content-list[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n transition: var(--transition-time);\n}\n\n.view-card-content-list[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--navy);\n margin: 0 0 8px 0;\n transition: var(--transition-time);\n text-align: center;\n}\n\n.view-card-content-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 0.9rem;\n color: var(--gray-800);\n line-height: 1.4;\n margin: 0;\n text-align: center;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.list-item-icon[_ngcontent-%COMP%] {\n @extend .mj-card-actions;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(4px);\n border-radius: var(--border-radius);\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.common-btn[_ngcontent-%COMP%] {\n @extend .mj-btn-icon-only;\n @extend .mj-btn-sm;\n background: transparent;\n border: 1px solid var(--gray-700);\n color: var(--gray-800);\n \n &:hover {\n background: var(--mj-blue);\n color: var(--white-color);\n border-color: var(--mj-blue);\n }\n}\n\n.common-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n}\n\n.common-btn[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n transition: var(--transition-time);\n}\n\n.common-btn[_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%] {\n fill: var(--white-color);\n}\n\n\n\n.card-wrapper[_ngcontent-%COMP%]:hover {\n .view-card-content-list svg {\n transform: scale(1.1);\n }\n \n .view-card-content-list svg path {\n fill: var(--mj-blue);\n }\n \n .view-card-content-list h5 {\n color: var(--mj-blue);\n transform: scale(1.02);\n }\n}\n\n\n\n.breadcrumb-wrap[_ngcontent-%COMP%] {\n @extend .mj-breadcrumb;\n}\n\n\n\n .generic-browse-list-container .card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 2.25rem !important;\n line-height: 1.2 !important;\n color: var(--navy) !important;\n}\n\n .generic-browse-list-container .card-header-entity .add-item .k-button {\n @extend .mj-btn-primary;\n}\n\n\n\n\n\n\n@media (max-width: 768px) {\n .card-header-entity[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 20px;\n text-align: center;\n }\n \n .title-wrapper[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n gap: 15px;\n }\n \n .list-item-icon[_ngcontent-%COMP%] {\n opacity: 1;\n position: static;\n justify-content: center;\n margin-top: 16px;\n background: var(--gray-600);\n border-radius: var(--border-radius);\n }\n}\n\n@media (max-width: 480px) {\n .view-card-content-list[_ngcontent-%COMP%] {\n padding: 20px 12px;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n margin-bottom: 12px;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n font-size: 1.1rem;\n }\n \n .view-card-content-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n }\n}"] });
140
143
  }
141
144
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GenericBrowseListComponent, [{
142
145
  type: Component,
143
- args: [{ selector: 'app-generic-browse-list', template: "<div class=\"generic-browse-list-container\">\n <!-- Main Header -->\n <div class=\"card-header-entity\">\n <div class=\"title-wrap\">\n <h1>{{ title }}</h1>\n </div>\n <div class=\"add-item\">\n <button class=\"edit-btn mj-btn-primary\" kendoButton (click)=\"addButtonClicked()\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Add/Edit Entities\n </button>\n </div>\n </div>\n\n <!-- Content Section -->\n <div class=\"main-fav-wrapper\">\n <!-- Section Header -->\n <div class=\"title-wrapper\">\n <h4>Favorites</h4>\n <kendo-dropdownbutton [data]=\"data\" themeColor=\"primary\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New\n </kendo-dropdownbutton>\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-area\">\n <!-- Loading State -->\n <div class=\"mj-loading\" *ngIf=\"showLoader\">\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n </div>\n\n <!-- Items Grid -->\n <div class=\"card-list\" *ngIf=\"!showLoader\">\n @if(items.length === 0) {\n <div class=\"mj-empty-state\">\n <div class=\"mj-empty-icon\">\n <i class=\"fa-solid fa-star\"></i>\n </div>\n <h3>No Favorites Yet</h3>\n <p>Add items to your favorites to see them here</p>\n </div>\n }\n @else {\n <div *ngFor=\"let d of items\" class=\"card-wrapper\">\n <div class=\"mj-card-body\">\n <!-- Card Actions -->\n <div class=\"list-item-icon\">\n <button class=\"common-btn\" title=\"Add to Favorites\">\n <i class=\"fa-regular fa-star\"></i>\n </button>\n <button class=\"common-btn\" title=\"Open\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n <button class=\"common-btn\" title=\"Edit\">\n <i class=\"fa-regular fa-pen-to-square\"></i>\n </button>\n <button class=\"common-btn\" title=\"Delete\">\n <i class=\"fa-regular fa-trash-can\"></i>\n </button>\n </div>\n\n <!-- Card Content -->\n <div class=\"view-card-content-list\" (click)=\"itemClick(d)\">\n <div class=\"card-icon\">\n <i class=\"fa-solid fa-chart-bar fa-3x\" style=\"color: var(--mj-blue);\"></i>\n </div>\n <h5>{{ d.Name }}</h5>\n <p>{{ d.Description }}</p>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: ["/* ===================================\n GENERIC BROWSE LIST COMPONENT - STANDARDIZED\n =================================== */\n\n.generic-browse-list-container {\n @extend .mj-page-container;\n}\n\n/* Main Header */\n.card-header-entity {\n @extend .mj-header;\n}\n\n.title-wrap {\n @extend .mj-header-title;\n}\n\n.title-wrap h1 {\n margin: 0;\n font-size: 2.25rem;\n line-height: 1.2;\n color: var(--navy);\n}\n\n.add-item {\n @extend .mj-header-actions;\n}\n\n.add-item .edit-btn {\n @extend .mj-btn-primary;\n}\n\n/* Main Content Wrapper */\n.main-fav-wrapper {\n @extend .mj-content-container;\n}\n\n/* Section Title */\n.title-wrapper {\n @extend .mj-toolbar;\n}\n\n.title-wrapper h4 {\n @extend .mj-toolbar-title;\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--navy);\n}\n\n/* Create New Dropdown */\n::ng-deep .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n @extend .mj-btn-primary;\n}\n\n/* Card Grid */\n.card-list {\n @extend .mj-grid-responsive;\n margin-top: 20px;\n}\n\n.card-wrapper {\n @extend .mj-card;\n @extend .mj-grid-item;\n position: relative;\n cursor: pointer;\n}\n\n/* Card Content */\n.view-card-content-list {\n @extend .mj-card-body;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px 16px;\n}\n\n.view-card-content-list svg {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n transition: var(--transition-time);\n}\n\n.view-card-content-list h5 {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--navy);\n margin: 0 0 8px 0;\n transition: var(--transition-time);\n text-align: center;\n}\n\n.view-card-content-list p {\n font-size: 0.9rem;\n color: var(--gray-800);\n line-height: 1.4;\n margin: 0;\n text-align: center;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Card Actions */\n.list-item-icon {\n @extend .mj-card-actions;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(4px);\n border-radius: var(--border-radius);\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.common-btn {\n @extend .mj-btn-icon-only;\n @extend .mj-btn-sm;\n background: transparent;\n border: 1px solid var(--gray-700);\n color: var(--gray-800);\n \n &:hover {\n background: var(--mj-blue);\n color: var(--white-color);\n border-color: var(--mj-blue);\n }\n}\n\n.common-btn svg {\n width: 16px;\n height: 16px;\n}\n\n.common-btn svg path {\n transition: var(--transition-time);\n}\n\n.common-btn:hover svg path {\n fill: var(--white-color);\n}\n\n/* Card Hover Effects */\n.card-wrapper:hover {\n .view-card-content-list svg {\n transform: scale(1.1);\n }\n \n .view-card-content-list svg path {\n fill: var(--mj-blue);\n }\n \n .view-card-content-list h5 {\n color: var(--mj-blue);\n transform: scale(1.02);\n }\n}\n\n/* Loading State */\n.main-area kendo-loader {\n @extend .mj-loading;\n min-height: 200px;\n}\n\n/* Breadcrumb */\n.breadcrumb-wrap {\n @extend .mj-breadcrumb;\n}\n\n/* Legacy Support */\n::ng-deep .generic-browse-list-container .card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 2.25rem !important;\n line-height: 1.2 !important;\n color: var(--navy) !important;\n}\n\n::ng-deep .generic-browse-list-container .card-header-entity .add-item .k-button {\n @extend .mj-btn-primary;\n}\n\n/* ===================================\n RESPONSIVE DESIGN\n =================================== */\n\n@media (max-width: 768px) {\n .card-header-entity {\n flex-direction: column;\n align-items: stretch;\n gap: 20px;\n text-align: center;\n }\n \n .title-wrapper {\n flex-direction: column;\n align-items: stretch;\n gap: 15px;\n }\n \n .list-item-icon {\n opacity: 1;\n position: static;\n justify-content: center;\n margin-top: 16px;\n background: var(--gray-600);\n border-radius: var(--border-radius);\n }\n}\n\n@media (max-width: 480px) {\n .view-card-content-list {\n padding: 20px 12px;\n }\n \n .view-card-content-list svg {\n width: 40px;\n height: 40px;\n margin-bottom: 12px;\n }\n \n .view-card-content-list h5 {\n font-size: 1.1rem;\n }\n \n .view-card-content-list p {\n font-size: 0.85rem;\n }\n}"] }]
146
+ args: [{ selector: 'app-generic-browse-list', template: "<div class=\"generic-browse-list-container\">\n <!-- Main Header -->\n <div class=\"card-header-entity\">\n <div class=\"title-wrap\">\n <h1>{{ title }}</h1>\n </div>\n <div class=\"add-item\">\n <button class=\"edit-btn mj-btn-primary\" kendoButton (click)=\"addButtonClicked()\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Add/Edit Entities\n </button>\n </div>\n </div>\n\n <!-- Content Section -->\n <div class=\"main-fav-wrapper\">\n <!-- Section Header -->\n <div class=\"title-wrapper\">\n <h4>Favorites</h4>\n <kendo-dropdownbutton [data]=\"data\" themeColor=\"primary\">\n <i class=\"fa-solid fa-plus\"></i>\n Create New\n </kendo-dropdownbutton>\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-area\">\n <!-- Loading State -->\n <div class=\"mj-loading\" *ngIf=\"showLoader\">\n <mj-loading [showText]=\"false\" size=\"large\"></mj-loading>\n </div>\n\n <!-- Items Grid -->\n <div class=\"card-list\" *ngIf=\"!showLoader\">\n @if(items.length === 0) {\n <div class=\"mj-empty-state\">\n <div class=\"mj-empty-icon\">\n <i class=\"fa-solid fa-star\"></i>\n </div>\n <h3>No Favorites Yet</h3>\n <p>Add items to your favorites to see them here</p>\n </div>\n }\n @else {\n <div *ngFor=\"let d of items\" class=\"card-wrapper\">\n <div class=\"mj-card-body\">\n <!-- Card Actions -->\n <div class=\"list-item-icon\">\n <button class=\"common-btn\" title=\"Add to Favorites\">\n <i class=\"fa-regular fa-star\"></i>\n </button>\n <button class=\"common-btn\" title=\"Open\">\n <i class=\"fa-solid fa-external-link-alt\"></i>\n </button>\n <button class=\"common-btn\" title=\"Edit\">\n <i class=\"fa-regular fa-pen-to-square\"></i>\n </button>\n <button class=\"common-btn\" title=\"Delete\">\n <i class=\"fa-regular fa-trash-can\"></i>\n </button>\n </div>\n\n <!-- Card Content -->\n <div class=\"view-card-content-list\" (click)=\"itemClick(d)\">\n <div class=\"card-icon\">\n <i class=\"fa-solid fa-chart-bar fa-3x\" style=\"color: var(--mj-blue);\"></i>\n </div>\n <h5>{{ d.Name }}</h5>\n <p>{{ d.Description }}</p>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>", styles: ["/* ===================================\n GENERIC BROWSE LIST COMPONENT - STANDARDIZED\n =================================== */\n\n.generic-browse-list-container {\n @extend .mj-page-container;\n}\n\n/* Main Header */\n.card-header-entity {\n @extend .mj-header;\n}\n\n.title-wrap {\n @extend .mj-header-title;\n}\n\n.title-wrap h1 {\n margin: 0;\n font-size: 2.25rem;\n line-height: 1.2;\n color: var(--navy);\n}\n\n.add-item {\n @extend .mj-header-actions;\n}\n\n.add-item .edit-btn {\n @extend .mj-btn-primary;\n}\n\n/* Main Content Wrapper */\n.main-fav-wrapper {\n @extend .mj-content-container;\n}\n\n/* Section Title */\n.title-wrapper {\n @extend .mj-toolbar;\n}\n\n.title-wrapper h4 {\n @extend .mj-toolbar-title;\n margin: 0;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--navy);\n}\n\n/* Create New Dropdown */\n::ng-deep .main-fav-wrapper .title-wrapper .k-dropdown-button .k-button {\n @extend .mj-btn-primary;\n}\n\n/* Card Grid */\n.card-list {\n @extend .mj-grid-responsive;\n margin-top: 20px;\n}\n\n.card-wrapper {\n @extend .mj-card;\n @extend .mj-grid-item;\n position: relative;\n cursor: pointer;\n}\n\n/* Card Content */\n.view-card-content-list {\n @extend .mj-card-body;\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 24px 16px;\n}\n\n.view-card-content-list svg {\n width: 48px;\n height: 48px;\n margin-bottom: 16px;\n transition: var(--transition-time);\n}\n\n.view-card-content-list h5 {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--navy);\n margin: 0 0 8px 0;\n transition: var(--transition-time);\n text-align: center;\n}\n\n.view-card-content-list p {\n font-size: 0.9rem;\n color: var(--gray-800);\n line-height: 1.4;\n margin: 0;\n text-align: center;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* Card Actions */\n.list-item-icon {\n @extend .mj-card-actions;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(4px);\n border-radius: var(--border-radius);\n padding: 8px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.common-btn {\n @extend .mj-btn-icon-only;\n @extend .mj-btn-sm;\n background: transparent;\n border: 1px solid var(--gray-700);\n color: var(--gray-800);\n \n &:hover {\n background: var(--mj-blue);\n color: var(--white-color);\n border-color: var(--mj-blue);\n }\n}\n\n.common-btn svg {\n width: 16px;\n height: 16px;\n}\n\n.common-btn svg path {\n transition: var(--transition-time);\n}\n\n.common-btn:hover svg path {\n fill: var(--white-color);\n}\n\n/* Card Hover Effects */\n.card-wrapper:hover {\n .view-card-content-list svg {\n transform: scale(1.1);\n }\n \n .view-card-content-list svg path {\n fill: var(--mj-blue);\n }\n \n .view-card-content-list h5 {\n color: var(--mj-blue);\n transform: scale(1.02);\n }\n}\n\n/* Breadcrumb */\n.breadcrumb-wrap {\n @extend .mj-breadcrumb;\n}\n\n/* Legacy Support */\n::ng-deep .generic-browse-list-container .card-header-entity .title-wrap h1 {\n margin: 0 !important;\n font-size: 2.25rem !important;\n line-height: 1.2 !important;\n color: var(--navy) !important;\n}\n\n::ng-deep .generic-browse-list-container .card-header-entity .add-item .k-button {\n @extend .mj-btn-primary;\n}\n\n/* ===================================\n RESPONSIVE DESIGN\n =================================== */\n\n@media (max-width: 768px) {\n .card-header-entity {\n flex-direction: column;\n align-items: stretch;\n gap: 20px;\n text-align: center;\n }\n \n .title-wrapper {\n flex-direction: column;\n align-items: stretch;\n gap: 15px;\n }\n \n .list-item-icon {\n opacity: 1;\n position: static;\n justify-content: center;\n margin-top: 16px;\n background: var(--gray-600);\n border-radius: var(--border-radius);\n }\n}\n\n@media (max-width: 480px) {\n .view-card-content-list {\n padding: 20px 12px;\n }\n \n .view-card-content-list svg {\n width: 40px;\n height: 40px;\n margin-bottom: 12px;\n }\n \n .view-card-content-list h5 {\n font-size: 1.1rem;\n }\n \n .view-card-content-list p {\n font-size: 0.85rem;\n }\n}"] }]
144
147
  }], () => [{ type: i1.SharedService }, { type: i2.Router }], { showLoader: [{
145
148
  type: Input
146
149
  }], itemType: [{
@@ -1 +1 @@
1
- {"version":3,"file":"generic-browse-list.component.js","sourceRoot":"","sources":["../../../src/lib/generic-browse-list/generic-browse-list.component.ts","../../../src/lib/generic-browse-list/generic-browse-list.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-browse-list.component.js","sourceRoot":"","sources":["../../../src/lib/generic-browse-list/generic-browse-list.component.ts","../../../src/lib/generic-browse-list/generic-browse-list.component.html"],"names":[],"mappings":"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"}
@@ -9,12 +9,12 @@ import * as i1 from "@memberjunction/ng-shared";
9
9
  import * as i2 from "@angular/common";
10
10
  import * as i3 from "@progress/kendo-angular-grid";
11
11
  import * as i4 from "@progress/kendo-angular-dialog";
12
- import * as i5 from "@progress/kendo-angular-indicators";
13
- import * as i6 from "@progress/kendo-angular-buttons";
14
- import * as i7 from "@progress/kendo-angular-inputs";
15
- import * as i8 from "@progress/kendo-angular-label";
16
- import * as i9 from "@progress/kendo-angular-layout";
17
- import * as i10 from "@memberjunction/ng-entity-form-dialog";
12
+ import * as i5 from "@progress/kendo-angular-buttons";
13
+ import * as i6 from "@progress/kendo-angular-inputs";
14
+ import * as i7 from "@progress/kendo-angular-label";
15
+ import * as i8 from "@progress/kendo-angular-layout";
16
+ import * as i9 from "@memberjunction/ng-entity-form-dialog";
17
+ import * as i10 from "@memberjunction/ng-shared-generic";
18
18
  const _c0 = ["entityFormDialog"];
19
19
  function GenericBrowserListComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
20
20
  const _r2 = i0.ɵɵgetCurrentView();
@@ -34,8 +34,11 @@ function GenericBrowserListComponent_ng_template_20_Template(rf, ctx) { if (rf &
34
34
  } }
35
35
  function GenericBrowserListComponent_div_28_Template(rf, ctx) { if (rf & 1) {
36
36
  i0.ɵɵelementStart(0, "div", 32);
37
- i0.ɵɵelement(1, "kendo-loader", 33);
37
+ i0.ɵɵelement(1, "mj-loading", 33);
38
38
  i0.ɵɵelementEnd();
39
+ } if (rf & 2) {
40
+ i0.ɵɵadvance();
41
+ i0.ɵɵproperty("showText", false);
39
42
  } }
40
43
  function GenericBrowserListComponent_Conditional_29_Conditional_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
41
44
  i0.ɵɵelementStart(0, "div", 43)(1, "span", 44);
@@ -942,7 +945,7 @@ export class GenericBrowserListComponent {
942
945
  } if (rf & 2) {
943
946
  let _t;
944
947
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormDialogRef = _t.first);
945
- } }, inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", disableEditButton: "disableEditButton", addText: "addText", backText: "backText", ItemEntityName: "ItemEntityName", CategoryEntityName: "CategoryEntityName", selectedFolderID: "selectedFolderID", showNotifications: "showNotifications", categoryEntityID: "categoryEntityID", displayAsGrid: "displayAsGrid", resourceName: "resourceName", viewingResource: "viewingResource", displayItemsAsList: "displayItemsAsList", extraDropdownOptions: "extraDropdownOptions" }, outputs: { BeforeAddFolderEvent: "BeforeAddFolderEvent", BeforeAddItemEvent: "BeforeAddItemEvent", BeforeDeleteFolderEvent: "BeforeDeleteFolderEvent", BeforeDeleteItemEvent: "BeforeDeleteItemEvent", BeforeUnlinkItemEvent: "BeforeUnlinkItemEvent", BeforeUpdateFolderEvent: "BeforeUpdateFolderEvent", BeforeUpdateItemEvent: "BeforeUpdateItemEvent", AfterAddFolderEvent: "AfterAddFolderEvent", AfterAddItemEvent: "AfterAddItemEvent", AfterDeleteFolderEvent: "AfterDeleteFolderEvent", AfterDeleteItemEvent: "AfterDeleteItemEvent", AfterUnlinkItemEvent: "AfterUnlinkItemEvent", AfterUpdateFolderEvent: "AfterUpdateFolderEvent", AfterUpdateItemEvent: "AfterUpdateItemEvent", NavigateToParentEvent: "NavigateToParentEvent", itemClickEvent: "itemClickEvent", backButtonClickEvent: "backButtonClickEvent", dropdownOptionClickEvent: "dropdownOptionClickEvent", viewModeChangeEvent: "viewModeChangeEvent" }, decls: 34, vars: 14, consts: [["searchInput", ""], ["entityFormDialog", ""], [1, "mj-page-container"], [1, "mj-content-container"], [1, "mj-header"], [1, "mj-header-title"], ["title", "Back to Parent", 1, "mj-btn-icon-only"], [1, "mj-header-icon"], [3, "ngClass"], [1, "mj-header-subtitle"], [1, "mj-header-actions"], ["themeColor", "primary", 1, "mj-btn-primary", 3, "itemClick", "data"], [1, "fa-solid", "fa-plus", "mj-btn-icon"], [1, "mj-btn-text"], [1, "mj-toolbar"], [1, "mj-search"], ["type", "text", "placeholder", "Search items...", "size", "medium", "rounded", "medium", "fillMode", "outline", 1, "mj-search-input", 3, "keyup", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "mj-toolbar-actions"], ["kendoButton", "", "title", "Table View", "fillMode", "outline", "themeColor", "base", 3, "click", "toggleable", "selected"], [1, "fa-solid", "fa-table"], ["kendoButton", "", "title", "Card View", "fillMode", "outline", "themeColor", "base", 3, "click", "toggleable", "selected"], [1, "fa-solid", "fa-grip"], [1, "main-area"], ["class", "mj-loading", 4, "ngIf"], ["class", "mj-dialog-confirm", "title", "Confirm Action", 3, "minWidth", "width", "close", 4, "ngIf"], ["title", "Create New Folder", "class", "mj-dialog-form", 3, "minWidth", "width", "close", 4, "ngIf"], ["Mode", "complete"], ["title", "Back to Parent", 1, "mj-btn-icon-only", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "fa-solid", "fa-folder-open"], [1, "fas", "fa-search", "search-prefix-icon"], [1, "mj-loading"], ["type", "converging-spinner"], [1, "mj-grid-table", 3, "kendoGridBinding"], [1, "mj-grid-table", 3, "cellClick", "kendoGridBinding"], ["field", "Name", "title", "Name"], ["kendoGridCellTemplate", ""], ["field", "Size", "title", "Size"], ["field", "LastOpened", "title", "Last Opened"], ["field", "ModifiedBy", "title", "Modified By"], ["field", "Type", "title", "Type"], ["title", "Actions"], [1, "mj-grid-name-cell"], [1, "mj-grid-name"], [1, "mj-grid-date"], ["label", "Folder", "rounded", "full", "themeColor", "info", "size", "small"], ["rounded", "full", "themeColor", "base", "size", "small", 3, "label"], [1, "mj-btn-icon-only", "mj-btn-sm", 3, "title"], ["title", "Edit Item", 1, "mj-btn-icon-only", "mj-btn-sm"], ["title", "Delete Item", 1, "mj-btn-icon-only", "mj-btn-sm"], ["title", "Remove Link", 1, "mj-btn-icon-only", "mj-btn-sm"], [1, "mj-btn-icon-only", "mj-btn-sm", 3, "click", "title"], ["title", "Edit Item", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-regular", "fa-pen-to-square"], ["title", "Delete Item", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-regular", "fa-trash-can"], ["title", "Remove Link", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-solid", "fa-link-slash"], [1, "mj-empty-state"], [1, "mj-grid-responsive"], [1, "mj-empty-icon"], [1, "fa-regular", "fa-folder-open"], ["kendoButton", "", "themeColor", "primary", "rounded", "medium", 3, "click"], [1, "button-content"], [1, "fas", "fa-plus"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable", 3, "click"], [1, "mj-card-actions"], [1, "mj-icon-wrapper-linked", 3, "title"], [1, "mj-card-icon-large", 3, "ngClass", "title"], [1, "mj-card-metadata"], [1, "mj-card-icon-large", 3, "ngClass"], [1, "fa-solid", "fa-link", "mj-link-indicator"], [1, "mj-metadata-item"], [1, "fa-regular", "fa-clock"], [1, "fa-regular", "fa-user"], ["title", "Confirm Action", 1, "mj-dialog-confirm", 3, "close", "minWidth", "width"], [1, "mj-dialog-content"], [1, "mj-dialog-icon"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "mj-dialog-warning"], [1, "mj-dialog-actions"], ["kendoButton", "", "fillMode", "outline", "rounded", "medium", 3, "click"], ["kendoButton", "", "themeColor", "error", "rounded", "medium", 3, "click"], ["title", "Create New Folder", 1, "mj-dialog-form", 3, "close", "minWidth", "width"], ["orientation", "vertical"], ["text", "Folder Name"], ["placeholder", "Enter folder name...", "rounded", "medium", "fillMode", "outline", 3, "valueChange", "clearButton"], [1, "fas", "fa-folder-plus"], [1, "fas", "fa-folder", "search-prefix-icon"]], template: function GenericBrowserListComponent_Template(rf, ctx) { if (rf & 1) {
948
+ } }, inputs: { showLoader: "showLoader", itemType: "itemType", title: "title", items: "items", iconName: "iconName", disableEditButton: "disableEditButton", addText: "addText", backText: "backText", ItemEntityName: "ItemEntityName", CategoryEntityName: "CategoryEntityName", selectedFolderID: "selectedFolderID", showNotifications: "showNotifications", categoryEntityID: "categoryEntityID", displayAsGrid: "displayAsGrid", resourceName: "resourceName", viewingResource: "viewingResource", displayItemsAsList: "displayItemsAsList", extraDropdownOptions: "extraDropdownOptions" }, outputs: { BeforeAddFolderEvent: "BeforeAddFolderEvent", BeforeAddItemEvent: "BeforeAddItemEvent", BeforeDeleteFolderEvent: "BeforeDeleteFolderEvent", BeforeDeleteItemEvent: "BeforeDeleteItemEvent", BeforeUnlinkItemEvent: "BeforeUnlinkItemEvent", BeforeUpdateFolderEvent: "BeforeUpdateFolderEvent", BeforeUpdateItemEvent: "BeforeUpdateItemEvent", AfterAddFolderEvent: "AfterAddFolderEvent", AfterAddItemEvent: "AfterAddItemEvent", AfterDeleteFolderEvent: "AfterDeleteFolderEvent", AfterDeleteItemEvent: "AfterDeleteItemEvent", AfterUnlinkItemEvent: "AfterUnlinkItemEvent", AfterUpdateFolderEvent: "AfterUpdateFolderEvent", AfterUpdateItemEvent: "AfterUpdateItemEvent", NavigateToParentEvent: "NavigateToParentEvent", itemClickEvent: "itemClickEvent", backButtonClickEvent: "backButtonClickEvent", dropdownOptionClickEvent: "dropdownOptionClickEvent", viewModeChangeEvent: "viewModeChangeEvent" }, decls: 34, vars: 14, consts: [["searchInput", ""], ["entityFormDialog", ""], [1, "mj-page-container"], [1, "mj-content-container"], [1, "mj-header"], [1, "mj-header-title"], ["title", "Back to Parent", 1, "mj-btn-icon-only"], [1, "mj-header-icon"], [3, "ngClass"], [1, "mj-header-subtitle"], [1, "mj-header-actions"], ["themeColor", "primary", 1, "mj-btn-primary", 3, "itemClick", "data"], [1, "fa-solid", "fa-plus", "mj-btn-icon"], [1, "mj-btn-text"], [1, "mj-toolbar"], [1, "mj-search"], ["type", "text", "placeholder", "Search items...", "size", "medium", "rounded", "medium", "fillMode", "outline", 1, "mj-search-input", 3, "keyup", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "mj-toolbar-actions"], ["kendoButton", "", "title", "Table View", "fillMode", "outline", "themeColor", "base", 3, "click", "toggleable", "selected"], [1, "fa-solid", "fa-table"], ["kendoButton", "", "title", "Card View", "fillMode", "outline", "themeColor", "base", 3, "click", "toggleable", "selected"], [1, "fa-solid", "fa-grip"], [1, "main-area"], ["class", "mj-loading", 4, "ngIf"], ["class", "mj-dialog-confirm", "title", "Confirm Action", 3, "minWidth", "width", "close", 4, "ngIf"], ["title", "Create New Folder", "class", "mj-dialog-form", 3, "minWidth", "width", "close", 4, "ngIf"], ["Mode", "complete"], ["title", "Back to Parent", 1, "mj-btn-icon-only", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "fa-solid", "fa-folder-open"], [1, "fas", "fa-search", "search-prefix-icon"], [1, "mj-loading"], ["size", "large", 3, "showText"], [1, "mj-grid-table", 3, "kendoGridBinding"], [1, "mj-grid-table", 3, "cellClick", "kendoGridBinding"], ["field", "Name", "title", "Name"], ["kendoGridCellTemplate", ""], ["field", "Size", "title", "Size"], ["field", "LastOpened", "title", "Last Opened"], ["field", "ModifiedBy", "title", "Modified By"], ["field", "Type", "title", "Type"], ["title", "Actions"], [1, "mj-grid-name-cell"], [1, "mj-grid-name"], [1, "mj-grid-date"], ["label", "Folder", "rounded", "full", "themeColor", "info", "size", "small"], ["rounded", "full", "themeColor", "base", "size", "small", 3, "label"], [1, "mj-btn-icon-only", "mj-btn-sm", 3, "title"], ["title", "Edit Item", 1, "mj-btn-icon-only", "mj-btn-sm"], ["title", "Delete Item", 1, "mj-btn-icon-only", "mj-btn-sm"], ["title", "Remove Link", 1, "mj-btn-icon-only", "mj-btn-sm"], [1, "mj-btn-icon-only", "mj-btn-sm", 3, "click", "title"], ["title", "Edit Item", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-regular", "fa-pen-to-square"], ["title", "Delete Item", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-regular", "fa-trash-can"], ["title", "Remove Link", 1, "mj-btn-icon-only", "mj-btn-sm", 3, "click"], [1, "fa-solid", "fa-link-slash"], [1, "mj-empty-state"], [1, "mj-grid-responsive"], [1, "mj-empty-icon"], [1, "fa-regular", "fa-folder-open"], ["kendoButton", "", "themeColor", "primary", "rounded", "medium", 3, "click"], [1, "button-content"], [1, "fas", "fa-plus"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable"], [1, "mj-kendo-icon-card", "mj-kendo-icon-card-clickable", 3, "click"], [1, "mj-card-actions"], [1, "mj-icon-wrapper-linked", 3, "title"], [1, "mj-card-icon-large", 3, "ngClass", "title"], [1, "mj-card-metadata"], [1, "mj-card-icon-large", 3, "ngClass"], [1, "fa-solid", "fa-link", "mj-link-indicator"], [1, "mj-metadata-item"], [1, "fa-regular", "fa-clock"], [1, "fa-regular", "fa-user"], ["title", "Confirm Action", 1, "mj-dialog-confirm", 3, "close", "minWidth", "width"], [1, "mj-dialog-content"], [1, "mj-dialog-icon"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "mj-dialog-warning"], [1, "mj-dialog-actions"], ["kendoButton", "", "fillMode", "outline", "rounded", "medium", 3, "click"], ["kendoButton", "", "themeColor", "error", "rounded", "medium", 3, "click"], ["title", "Create New Folder", 1, "mj-dialog-form", 3, "close", "minWidth", "width"], ["orientation", "vertical"], ["text", "Folder Name"], ["placeholder", "Enter folder name...", "rounded", "medium", "fillMode", "outline", 3, "valueChange", "clearButton"], [1, "fas", "fa-folder-plus"], [1, "fas", "fa-folder", "search-prefix-icon"]], template: function GenericBrowserListComponent_Template(rf, ctx) { if (rf & 1) {
946
949
  const _r1 = i0.ɵɵgetCurrentView();
947
950
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5);
948
951
  i0.ɵɵtemplate(4, GenericBrowserListComponent_Conditional_4_Template, 2, 0, "span", 6);
@@ -973,7 +976,7 @@ export class GenericBrowserListComponent {
973
976
  i0.ɵɵelement(26, "span", 22);
974
977
  i0.ɵɵelementEnd()()()();
975
978
  i0.ɵɵelementStart(27, "div", 23);
976
- i0.ɵɵtemplate(28, GenericBrowserListComponent_div_28_Template, 2, 0, "div", 24)(29, GenericBrowserListComponent_Conditional_29_Template, 2, 1);
979
+ i0.ɵɵtemplate(28, GenericBrowserListComponent_div_28_Template, 2, 1, "div", 24)(29, GenericBrowserListComponent_Conditional_29_Template, 2, 1);
977
980
  i0.ɵɵelementEnd()();
978
981
  i0.ɵɵtemplate(30, GenericBrowserListComponent_kendo_dialog_30_Template, 19, 7, "kendo-dialog", 25)(31, GenericBrowserListComponent_kendo_dialog_31_Template, 13, 3, "kendo-dialog", 26);
979
982
  i0.ɵɵelement(32, "mj-entity-form-dialog", 27, 1);
@@ -1003,11 +1006,11 @@ export class GenericBrowserListComponent {
1003
1006
  i0.ɵɵproperty("ngIf", ctx.deleteDialogOpened);
1004
1007
  i0.ɵɵadvance();
1005
1008
  i0.ɵɵproperty("ngIf", ctx.createFolderDialogOpened);
1006
- } }, dependencies: [i2.NgClass, i2.NgIf, i3.GridComponent, i3.DataBindingDirective, i3.ColumnComponent, i3.CellTemplateDirective, i4.DialogComponent, i4.DialogActionsComponent, i5.LoaderComponent, i6.ButtonGroupComponent, i6.ButtonComponent, i6.DropDownButtonComponent, i6.ChipComponent, i7.TextBoxComponent, i7.TextBoxPrefixTemplateDirective, i7.FormFieldComponent, i8.LabelComponent, i9.CardComponent, i9.CardBodyComponent, i10.EntityFormDialogComponent], styles: ["\n\n\n\n\n\n\n.mj-icon-wrapper-linked[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n}\n\n.mj-link-indicator[_ngcontent-%COMP%] {\n position: absolute;\n bottom: -5px;\n right: -5px;\n font-size: 1.5rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n\n\n.mj-grid-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n \n .mj-grid-icon {\n font-size: 1.25rem;\n color: var(--mj-blue);\n flex-shrink: 0;\n }\n \n .mj-grid-name {\n font-weight: 500;\n color: var(--navy);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .mj-grid-link-indicator {\n position: absolute;\n bottom: -4px;\n right: -4px;\n font-size: 0.75rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n }\n}\n\n.mj-grid-date[_ngcontent-%COMP%] {\n color: var(--gray-800);\n font-size: 0.875rem;\n}\n\n\n\n.mj-card-metadata[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n justify-content: center;\n margin: 12px 0;\n font-size: 0.875rem;\n color: var(--gray-800);\n \n .mj-metadata-item {\n display: flex;\n align-items: center;\n gap: 6px;\n \n span:first-child {\n font-size: 0.875rem;\n color: var(--mj-blue);\n }\n }\n}\n\n\n\n.mj-card-actions[_ngcontent-%COMP%] {\n .fa-star {\n transition: all 0.2s ease;\n \n &.fa-solid {\n color: #ffc107;\n }\n \n &.fa-regular {\n color: var(--gray-800);\n }\n }\n \n button:hover .fa-star.fa-regular {\n color: #ffc107;\n }\n}\n\n\n\n .mj-grid-table {\n .mj-toolbar-actions {\n .mj-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n font-size: 14px;\n }\n }\n}"] });
1009
+ } }, dependencies: [i2.NgClass, i2.NgIf, i3.GridComponent, i3.DataBindingDirective, i3.ColumnComponent, i3.CellTemplateDirective, i4.DialogComponent, i4.DialogActionsComponent, i5.ButtonGroupComponent, i5.ButtonComponent, i5.DropDownButtonComponent, i5.ChipComponent, i6.TextBoxComponent, i6.TextBoxPrefixTemplateDirective, i6.FormFieldComponent, i7.LabelComponent, i8.CardComponent, i8.CardBodyComponent, i9.EntityFormDialogComponent, i10.LoadingComponent], styles: ["\n\n\n\n\n\n\n.mj-icon-wrapper-linked[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n}\n\n.mj-link-indicator[_ngcontent-%COMP%] {\n position: absolute;\n bottom: -5px;\n right: -5px;\n font-size: 1.5rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n\n\n.mj-grid-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n \n .mj-grid-icon {\n font-size: 1.25rem;\n color: var(--mj-blue);\n flex-shrink: 0;\n }\n \n .mj-grid-name {\n font-weight: 500;\n color: var(--navy);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .mj-grid-link-indicator {\n position: absolute;\n bottom: -4px;\n right: -4px;\n font-size: 0.75rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n }\n}\n\n.mj-grid-date[_ngcontent-%COMP%] {\n color: var(--gray-800);\n font-size: 0.875rem;\n}\n\n\n\n.mj-card-metadata[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n justify-content: center;\n margin: 12px 0;\n font-size: 0.875rem;\n color: var(--gray-800);\n \n .mj-metadata-item {\n display: flex;\n align-items: center;\n gap: 6px;\n \n span:first-child {\n font-size: 0.875rem;\n color: var(--mj-blue);\n }\n }\n}\n\n\n\n.mj-card-actions[_ngcontent-%COMP%] {\n .fa-star {\n transition: all 0.2s ease;\n \n &.fa-solid {\n color: #ffc107;\n }\n \n &.fa-regular {\n color: var(--gray-800);\n }\n }\n \n button:hover .fa-star.fa-regular {\n color: #ffc107;\n }\n}\n\n\n\n .mj-grid-table {\n .mj-toolbar-actions {\n .mj-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n font-size: 14px;\n }\n }\n}"] });
1007
1010
  }
1008
1011
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GenericBrowserListComponent, [{
1009
1012
  type: Component,
1010
- args: [{ selector: 'app-generic-browser-list', template: "<div class=\"mj-page-container\">\n <div class=\"mj-content-container\">\n \n <!-- Header Section -->\n <div class=\"mj-header\">\n <div class=\"mj-header-title\">\n @if(selectedFolderID){\n <span title=\"Back to Parent\" class=\"mj-btn-icon-only\" (click)=\"goToParent()\">\n <span class=\"fa-solid fa-arrow-left\"></span>\n </span>\n }\n <div class=\"mj-header-icon\">\n <span [ngClass]=\"getHeaderIconClass()\"></span>\n </div>\n <div>\n <h1>{{title}}</h1>\n @if(selectedFolderID){\n <div class=\"mj-header-subtitle\">\n <span class=\"fa-solid fa-folder-open\"></span>\n Current Folder\n </div>\n }\n </div>\n </div>\n \n <div class=\"mj-header-actions\">\n <kendo-dropdownbutton \n class=\"mj-btn-primary\" \n (itemClick)=\"onDropdownItemClick($event)\" \n [data]=\"dropdownOptions\" \n themeColor=\"primary\">\n <span class=\"fa-solid fa-plus mj-btn-icon\"></span>\n <span class=\"mj-btn-text\">Create New</span>\n </kendo-dropdownbutton>\n </div>\n </div>\n\n <!-- Toolbar Section -->\n <div class=\"mj-toolbar\">\n <div class=\"mj-search\">\n <kendo-textbox \n class=\"mj-search-input\"\n type=\"text\" \n #searchInput \n placeholder=\"Search items...\" \n (keyup)=\"onKeyup(searchInput.value)\"\n [clearButton]=\"true\"\n size=\"medium\"\n rounded=\"medium\"\n fillMode=\"outline\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fas fa-search search-prefix-icon\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"mj-toolbar-actions\">\n <kendo-buttongroup>\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"displayAsGrid\"\n (click)=\"changeViewMode('grid')\" \n title=\"Table View\"\n fillMode=\"outline\"\n themeColor=\"base\">\n <span class=\"fa-solid fa-table\"></span>\n </button>\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"!displayAsGrid\"\n (click)=\"changeViewMode('list')\" \n title=\"Card View\"\n fillMode=\"outline\"\n themeColor=\"base\">\n <span class=\"fa-solid fa-grip\"></span>\n </button>\n </kendo-buttongroup>\n </div>\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-area\">\n <!-- Loading State -->\n <div class=\"mj-loading\" *ngIf=\"showLoader\">\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n </div>\n \n @if(!showLoader){\n <!-- Grid View -->\n @if(displayAsGrid){\n <kendo-grid \n class=\"mj-grid-table\"\n (cellClick)=\"onCellItemClicked($event)\" \n [kendoGridBinding]=\"items\">\n <kendo-grid-column field=\"Name\" title=\"Name\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <div class=\"mj-grid-name-cell\"> \n <span class=\"mj-grid-name\">{{ dataItem.Name }}</span>\n </div>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"Size\" title=\"Size\"></kendo-grid-column>\n <kendo-grid-column field=\"LastOpened\" title=\"Last Opened\">\n <ng-template kendoGridCellTemplate let-dataItem>\n @if(getItemProperty(dataItem, 'LastOpened')) {\n <span class=\"mj-grid-date\">{{ getFormattedDate(getItemProperty(dataItem, 'LastOpened')) }}</span>\n }\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"ModifiedBy\" title=\"Modified By\">\n <ng-template kendoGridCellTemplate let-dataItem>\n {{ getItemProperty(dataItem, 'ModifiedBy') || '' }}\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"Type\" title=\"Type\">\n <ng-template kendoGridCellTemplate let-dataItem>\n @if(dataItem.Type === 'Folder') {\n <kendo-chip \n label=\"Folder\" \n rounded=\"full\"\n themeColor=\"info\"\n size=\"small\">\n </kendo-chip>\n }\n @else if(dataItem.Type === 'Resource') {\n <kendo-chip \n [label]=\"getResourceTypeLabel(dataItem)\" \n rounded=\"full\"\n themeColor=\"base\"\n size=\"small\">\n </kendo-chip>\n }\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <div class=\"mj-toolbar-actions\">\n @if(dataItem.Favorite !== undefined) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" \n (click)=\"SetFavoriteStatus(dataItem); $event.stopPropagation()\" \n [title]=\"dataItem.Favorite ? 'Remove from favorites' : 'Add to favorites'\">\n <span [ngClass]=\"dataItem.Favorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\"></span>\n </button>\n }\n @if(!disableEditButton && (!dataItem.IsLink || dataItem.LinkPermissionLevel === 'Owner' || dataItem.LinkPermissionLevel === 'Edit')) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"editItem(dataItem)\" title=\"Edit Item\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(!dataItem.IsLink || dataItem.LinkPermissionLevel === 'Owner') {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"deleteItem(dataItem)\" title=\"Delete Item\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\n }\n @else if (dataItem.IsLink) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"unlinkItem(dataItem)\" title=\"Remove Link\">\n <span class=\"fa-solid fa-link-slash\"></span>\n </button>\n }\n </div>\n </ng-template>\n </kendo-grid-column>\n </kendo-grid>\n }\n \n <!-- Card View -->\n @else{\n <!-- Empty State -->\n @if(items.length === 0){\n <div class=\"mj-empty-state\">\n <div class=\"mj-empty-icon\">\n <span class=\"fa-regular fa-folder-open\"></span>\n </div>\n <h3>No items found</h3>\n <p>This folder is empty or no items match your search criteria.</p>\n <button kendoButton themeColor=\"primary\" rounded=\"medium\" (click)=\"onDropdownItemClick({text: 'Folder'})\">\n <span class=\"button-content\">\n <i class=\"fas fa-plus\"></i>\n Create Your First Item\n </span>\n </button>\n </div>\n }\n \n <!-- Cards Grid -->\n @else{\n <div class=\"mj-grid-responsive\">\n @for(item of items; track item){\n <kendo-card class=\"mj-kendo-icon-card mj-kendo-icon-card-clickable\" (click)=\"itemClick(item)\">\n <!-- Card Actions -->\n <div class=\"mj-card-actions\">\n @if(item.Favorite !== undefined) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" \n (click)=\"SetFavoriteStatus(item); $event.stopPropagation()\" \n [title]=\"item.Favorite ? 'Remove from favorites' : 'Add to favorites'\">\n <span [ngClass]=\"item.Favorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\"></span>\n </button>\n }\n @if(!disableEditButton && (!item.IsLink || item.LinkPermissionLevel === 'Owner' || item.LinkPermissionLevel === 'Edit')) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"editItem(item); $event.stopPropagation()\" title=\"Edit Item\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(!item.IsLink || item.LinkPermissionLevel === 'Owner') {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"deleteItem(item); $event.stopPropagation()\" title=\"Delete Item\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\n }\n @else if (item.IsLink) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"unlinkItem(item); $event.stopPropagation()\" title=\"Remove Link\">\n <span class=\"fa-solid fa-link-slash\"></span>\n </button>\n }\n </div>\n \n <!-- Card Body -->\n <kendo-card-body>\n @if(item.IsLink) {\n <div class=\"mj-icon-wrapper-linked\" [title]=\"item.Name + ' (Shared)'\">\n <span [ngClass]=\"getIconForResourceType(item)\" class=\"mj-card-icon-large\"></span>\n <span class=\"fa-solid fa-link mj-link-indicator\"></span>\n </div>\n }\n @else {\n <span [ngClass]=\"getIconForResourceType(item)\" class=\"mj-card-icon-large\" [title]=\"item.Name\"></span>\n }\n \n <h3>{{ item.Name }}</h3>\n <p>{{ item.Description || 'No description available' }}</p>\n \n <!-- Resource metadata -->\n @if(getItemProperty(item, 'LastOpened') || getItemProperty(item, 'ModifiedBy')) {\n <div class=\"mj-card-metadata\">\n @if(getItemProperty(item, 'LastOpened')) {\n <div class=\"mj-metadata-item\">\n <span class=\"fa-regular fa-clock\"></span>\n <span>{{ getFormattedDate(getItemProperty(item, 'LastOpened')) }}</span>\n </div>\n }\n @if(getItemProperty(item, 'ModifiedBy')) {\n <div class=\"mj-metadata-item\">\n <span class=\"fa-regular fa-user\"></span>\n <span>{{ getItemProperty(item, 'ModifiedBy') }}</span>\n </div>\n }\n </div>\n }\n \n <!-- Type chip -->\n @if(item.Type === 'Folder') {\n <kendo-chip \n label=\"Folder\" \n rounded=\"full\"\n themeColor=\"info\"\n size=\"small\">\n </kendo-chip>\n }\n @else if(item.Type === 'Resource') {\n <kendo-chip \n [label]=\"getResourceTypeLabel(item)\" \n rounded=\"full\"\n themeColor=\"base\"\n size=\"small\">\n </kendo-chip>\n }\n </kendo-card-body>\n </kendo-card>\n }\n </div>\n }\n }\n }\n </div>\n </div>\n\n <!-- Delete Confirmation Dialog -->\n <kendo-dialog \n [minWidth]=\"400\"\n [width]=\"500\"\n class=\"mj-dialog-confirm\" \n title=\"Confirm Action\" \n *ngIf=\"deleteDialogOpened\" \n (close)=\"onConfirmDeleteItem(false)\">\n \n <div class=\"mj-dialog-content\">\n <div class=\"mj-dialog-icon\">\n <span class=\"fa-solid fa-triangle-exclamation\"></span>\n </div>\n <p>\n Are you sure you want to \n <strong>{{(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'delete' : 'unlink'}}</strong> \n <strong>{{selectedItem?.Name}}</strong>?\n </p>\n @if((selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink){\n <p class=\"mj-dialog-warning\">This action cannot be undone.</p>\n }\n </div>\n \n <kendo-dialog-actions class=\"mj-dialog-actions\">\n <button kendoButton fillMode=\"outline\" rounded=\"medium\" (click)=\"onConfirmDeleteItem(false)\">\n Cancel\n </button>\n <button kendoButton themeColor=\"error\" rounded=\"medium\" (click)=\"onConfirmDeleteItem(true)\">\n <span class=\"button-content\">\n <i [ngClass]=\"(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'fas fa-trash' : 'fas fa-link-slash'\"></i>\n {{(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'Delete' : 'Unlink'}}\n </span>\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Create Folder Dialog -->\n <kendo-dialog \n title=\"Create New Folder\" \n *ngIf=\"createFolderDialogOpened\" \n (close)=\"toggleCreateFolderView()\"\n [minWidth]=\"350\"\n [width]=\"450\"\n class=\"mj-dialog-form\">\n \n <div class=\"mj-dialog-content\">\n <kendo-formfield orientation=\"vertical\">\n <kendo-label text=\"Folder Name\"></kendo-label>\n <kendo-textbox \n placeholder=\"Enter folder name...\" \n (valueChange)=\"onCreateFolderKeyup($event)\"\n rounded=\"medium\"\n fillMode=\"outline\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fas fa-folder search-prefix-icon\"></i>\n </ng-template>\n </kendo-textbox>\n </kendo-formfield>\n </div>\n \n <kendo-dialog-actions class=\"mj-dialog-actions\">\n <button kendoButton fillMode=\"outline\" rounded=\"medium\" (click)=\"toggleCreateFolderView()\">\n Cancel\n </button>\n <button kendoButton themeColor=\"primary\" rounded=\"medium\" (click)=\"createFolder()\">\n <span class=\"button-content\">\n <i class=\"fas fa-folder-plus\"></i>\n Create Folder\n </span>\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Entity Form Dialog -->\n <mj-entity-form-dialog\n #entityFormDialog\n Mode=\"complete\">\n </mj-entity-form-dialog>\n</div>", styles: ["/* ===================================\n GENERIC BROWSER LIST SPECIFIC STYLES\n =================================== */\n\n/* Link indicator for shared items */\n.mj-icon-wrapper-linked {\n position: relative;\n display: inline-block;\n}\n\n.mj-link-indicator {\n position: absolute;\n bottom: -5px;\n right: -5px;\n font-size: 1.5rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n/* Grid specific cells for this component */\n.mj-grid-name-cell {\n display: flex;\n align-items: center;\n gap: 10px;\n \n .mj-grid-icon {\n font-size: 1.25rem;\n color: var(--mj-blue);\n flex-shrink: 0;\n }\n \n .mj-grid-name {\n font-weight: 500;\n color: var(--navy);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .mj-grid-link-indicator {\n position: absolute;\n bottom: -4px;\n right: -4px;\n font-size: 0.75rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n }\n}\n\n.mj-grid-date {\n color: var(--gray-800);\n font-size: 0.875rem;\n}\n\n/* Card metadata section specific to this component */\n.mj-card-metadata {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n justify-content: center;\n margin: 12px 0;\n font-size: 0.875rem;\n color: var(--gray-800);\n \n .mj-metadata-item {\n display: flex;\n align-items: center;\n gap: 6px;\n \n span:first-child {\n font-size: 0.875rem;\n color: var(--mj-blue);\n }\n }\n}\n\n/* Favorite star specific styling */\n.mj-card-actions {\n .fa-star {\n transition: all 0.2s ease;\n \n &.fa-solid {\n color: #ffc107;\n }\n \n &.fa-regular {\n color: var(--gray-800);\n }\n }\n \n button:hover .fa-star.fa-regular {\n color: #ffc107;\n }\n}\n\n/* Action buttons in grid cells - specific sizing for this component */\n::ng-deep .mj-grid-table {\n .mj-toolbar-actions {\n .mj-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n font-size: 14px;\n }\n }\n}\n"] }]
1013
+ args: [{ selector: 'app-generic-browser-list', template: "<div class=\"mj-page-container\">\n <div class=\"mj-content-container\">\n \n <!-- Header Section -->\n <div class=\"mj-header\">\n <div class=\"mj-header-title\">\n @if(selectedFolderID){\n <span title=\"Back to Parent\" class=\"mj-btn-icon-only\" (click)=\"goToParent()\">\n <span class=\"fa-solid fa-arrow-left\"></span>\n </span>\n }\n <div class=\"mj-header-icon\">\n <span [ngClass]=\"getHeaderIconClass()\"></span>\n </div>\n <div>\n <h1>{{title}}</h1>\n @if(selectedFolderID){\n <div class=\"mj-header-subtitle\">\n <span class=\"fa-solid fa-folder-open\"></span>\n Current Folder\n </div>\n }\n </div>\n </div>\n \n <div class=\"mj-header-actions\">\n <kendo-dropdownbutton \n class=\"mj-btn-primary\" \n (itemClick)=\"onDropdownItemClick($event)\" \n [data]=\"dropdownOptions\" \n themeColor=\"primary\">\n <span class=\"fa-solid fa-plus mj-btn-icon\"></span>\n <span class=\"mj-btn-text\">Create New</span>\n </kendo-dropdownbutton>\n </div>\n </div>\n\n <!-- Toolbar Section -->\n <div class=\"mj-toolbar\">\n <div class=\"mj-search\">\n <kendo-textbox \n class=\"mj-search-input\"\n type=\"text\" \n #searchInput \n placeholder=\"Search items...\" \n (keyup)=\"onKeyup(searchInput.value)\"\n [clearButton]=\"true\"\n size=\"medium\"\n rounded=\"medium\"\n fillMode=\"outline\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fas fa-search search-prefix-icon\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"mj-toolbar-actions\">\n <kendo-buttongroup>\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"displayAsGrid\"\n (click)=\"changeViewMode('grid')\" \n title=\"Table View\"\n fillMode=\"outline\"\n themeColor=\"base\">\n <span class=\"fa-solid fa-table\"></span>\n </button>\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"!displayAsGrid\"\n (click)=\"changeViewMode('list')\" \n title=\"Card View\"\n fillMode=\"outline\"\n themeColor=\"base\">\n <span class=\"fa-solid fa-grip\"></span>\n </button>\n </kendo-buttongroup>\n </div>\n </div>\n\n <!-- Main Content Area -->\n <div class=\"main-area\">\n <!-- Loading State -->\n <div class=\"mj-loading\" *ngIf=\"showLoader\">\n <mj-loading [showText]=\"false\" size=\"large\"></mj-loading>\n </div>\n \n @if(!showLoader){\n <!-- Grid View -->\n @if(displayAsGrid){\n <kendo-grid \n class=\"mj-grid-table\"\n (cellClick)=\"onCellItemClicked($event)\" \n [kendoGridBinding]=\"items\">\n <kendo-grid-column field=\"Name\" title=\"Name\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <div class=\"mj-grid-name-cell\"> \n <span class=\"mj-grid-name\">{{ dataItem.Name }}</span>\n </div>\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"Size\" title=\"Size\"></kendo-grid-column>\n <kendo-grid-column field=\"LastOpened\" title=\"Last Opened\">\n <ng-template kendoGridCellTemplate let-dataItem>\n @if(getItemProperty(dataItem, 'LastOpened')) {\n <span class=\"mj-grid-date\">{{ getFormattedDate(getItemProperty(dataItem, 'LastOpened')) }}</span>\n }\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"ModifiedBy\" title=\"Modified By\">\n <ng-template kendoGridCellTemplate let-dataItem>\n {{ getItemProperty(dataItem, 'ModifiedBy') || '' }}\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column field=\"Type\" title=\"Type\">\n <ng-template kendoGridCellTemplate let-dataItem>\n @if(dataItem.Type === 'Folder') {\n <kendo-chip \n label=\"Folder\" \n rounded=\"full\"\n themeColor=\"info\"\n size=\"small\">\n </kendo-chip>\n }\n @else if(dataItem.Type === 'Resource') {\n <kendo-chip \n [label]=\"getResourceTypeLabel(dataItem)\" \n rounded=\"full\"\n themeColor=\"base\"\n size=\"small\">\n </kendo-chip>\n }\n </ng-template>\n </kendo-grid-column>\n <kendo-grid-column title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem>\n <div class=\"mj-toolbar-actions\">\n @if(dataItem.Favorite !== undefined) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" \n (click)=\"SetFavoriteStatus(dataItem); $event.stopPropagation()\" \n [title]=\"dataItem.Favorite ? 'Remove from favorites' : 'Add to favorites'\">\n <span [ngClass]=\"dataItem.Favorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\"></span>\n </button>\n }\n @if(!disableEditButton && (!dataItem.IsLink || dataItem.LinkPermissionLevel === 'Owner' || dataItem.LinkPermissionLevel === 'Edit')) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"editItem(dataItem)\" title=\"Edit Item\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(!dataItem.IsLink || dataItem.LinkPermissionLevel === 'Owner') {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"deleteItem(dataItem)\" title=\"Delete Item\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\n }\n @else if (dataItem.IsLink) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"unlinkItem(dataItem)\" title=\"Remove Link\">\n <span class=\"fa-solid fa-link-slash\"></span>\n </button>\n }\n </div>\n </ng-template>\n </kendo-grid-column>\n </kendo-grid>\n }\n \n <!-- Card View -->\n @else{\n <!-- Empty State -->\n @if(items.length === 0){\n <div class=\"mj-empty-state\">\n <div class=\"mj-empty-icon\">\n <span class=\"fa-regular fa-folder-open\"></span>\n </div>\n <h3>No items found</h3>\n <p>This folder is empty or no items match your search criteria.</p>\n <button kendoButton themeColor=\"primary\" rounded=\"medium\" (click)=\"onDropdownItemClick({text: 'Folder'})\">\n <span class=\"button-content\">\n <i class=\"fas fa-plus\"></i>\n Create Your First Item\n </span>\n </button>\n </div>\n }\n \n <!-- Cards Grid -->\n @else{\n <div class=\"mj-grid-responsive\">\n @for(item of items; track item){\n <kendo-card class=\"mj-kendo-icon-card mj-kendo-icon-card-clickable\" (click)=\"itemClick(item)\">\n <!-- Card Actions -->\n <div class=\"mj-card-actions\">\n @if(item.Favorite !== undefined) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" \n (click)=\"SetFavoriteStatus(item); $event.stopPropagation()\" \n [title]=\"item.Favorite ? 'Remove from favorites' : 'Add to favorites'\">\n <span [ngClass]=\"item.Favorite ? 'fa-solid fa-star' : 'fa-regular fa-star'\"></span>\n </button>\n }\n @if(!disableEditButton && (!item.IsLink || item.LinkPermissionLevel === 'Owner' || item.LinkPermissionLevel === 'Edit')) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"editItem(item); $event.stopPropagation()\" title=\"Edit Item\">\n <span class=\"fa-regular fa-pen-to-square\"></span>\n </button>\n }\n @if(!item.IsLink || item.LinkPermissionLevel === 'Owner') {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"deleteItem(item); $event.stopPropagation()\" title=\"Delete Item\">\n <span class=\"fa-regular fa-trash-can\"></span>\n </button>\n }\n @else if (item.IsLink) {\n <button class=\"mj-btn-icon-only mj-btn-sm\" (click)=\"unlinkItem(item); $event.stopPropagation()\" title=\"Remove Link\">\n <span class=\"fa-solid fa-link-slash\"></span>\n </button>\n }\n </div>\n \n <!-- Card Body -->\n <kendo-card-body>\n @if(item.IsLink) {\n <div class=\"mj-icon-wrapper-linked\" [title]=\"item.Name + ' (Shared)'\">\n <span [ngClass]=\"getIconForResourceType(item)\" class=\"mj-card-icon-large\"></span>\n <span class=\"fa-solid fa-link mj-link-indicator\"></span>\n </div>\n }\n @else {\n <span [ngClass]=\"getIconForResourceType(item)\" class=\"mj-card-icon-large\" [title]=\"item.Name\"></span>\n }\n \n <h3>{{ item.Name }}</h3>\n <p>{{ item.Description || 'No description available' }}</p>\n \n <!-- Resource metadata -->\n @if(getItemProperty(item, 'LastOpened') || getItemProperty(item, 'ModifiedBy')) {\n <div class=\"mj-card-metadata\">\n @if(getItemProperty(item, 'LastOpened')) {\n <div class=\"mj-metadata-item\">\n <span class=\"fa-regular fa-clock\"></span>\n <span>{{ getFormattedDate(getItemProperty(item, 'LastOpened')) }}</span>\n </div>\n }\n @if(getItemProperty(item, 'ModifiedBy')) {\n <div class=\"mj-metadata-item\">\n <span class=\"fa-regular fa-user\"></span>\n <span>{{ getItemProperty(item, 'ModifiedBy') }}</span>\n </div>\n }\n </div>\n }\n \n <!-- Type chip -->\n @if(item.Type === 'Folder') {\n <kendo-chip \n label=\"Folder\" \n rounded=\"full\"\n themeColor=\"info\"\n size=\"small\">\n </kendo-chip>\n }\n @else if(item.Type === 'Resource') {\n <kendo-chip \n [label]=\"getResourceTypeLabel(item)\" \n rounded=\"full\"\n themeColor=\"base\"\n size=\"small\">\n </kendo-chip>\n }\n </kendo-card-body>\n </kendo-card>\n }\n </div>\n }\n }\n }\n </div>\n </div>\n\n <!-- Delete Confirmation Dialog -->\n <kendo-dialog \n [minWidth]=\"400\"\n [width]=\"500\"\n class=\"mj-dialog-confirm\" \n title=\"Confirm Action\" \n *ngIf=\"deleteDialogOpened\" \n (close)=\"onConfirmDeleteItem(false)\">\n \n <div class=\"mj-dialog-content\">\n <div class=\"mj-dialog-icon\">\n <span class=\"fa-solid fa-triangle-exclamation\"></span>\n </div>\n <p>\n Are you sure you want to \n <strong>{{(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'delete' : 'unlink'}}</strong> \n <strong>{{selectedItem?.Name}}</strong>?\n </p>\n @if((selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink){\n <p class=\"mj-dialog-warning\">This action cannot be undone.</p>\n }\n </div>\n \n <kendo-dialog-actions class=\"mj-dialog-actions\">\n <button kendoButton fillMode=\"outline\" rounded=\"medium\" (click)=\"onConfirmDeleteItem(false)\">\n Cancel\n </button>\n <button kendoButton themeColor=\"error\" rounded=\"medium\" (click)=\"onConfirmDeleteItem(true)\">\n <span class=\"button-content\">\n <i [ngClass]=\"(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'fas fa-trash' : 'fas fa-link-slash'\"></i>\n {{(selectedItem?.IsLink && selectedItem?.LinkPermissionLevel === 'Owner') || !selectedItem?.IsLink ? 'Delete' : 'Unlink'}}\n </span>\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Create Folder Dialog -->\n <kendo-dialog \n title=\"Create New Folder\" \n *ngIf=\"createFolderDialogOpened\" \n (close)=\"toggleCreateFolderView()\"\n [minWidth]=\"350\"\n [width]=\"450\"\n class=\"mj-dialog-form\">\n \n <div class=\"mj-dialog-content\">\n <kendo-formfield orientation=\"vertical\">\n <kendo-label text=\"Folder Name\"></kendo-label>\n <kendo-textbox \n placeholder=\"Enter folder name...\" \n (valueChange)=\"onCreateFolderKeyup($event)\"\n rounded=\"medium\"\n fillMode=\"outline\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fas fa-folder search-prefix-icon\"></i>\n </ng-template>\n </kendo-textbox>\n </kendo-formfield>\n </div>\n \n <kendo-dialog-actions class=\"mj-dialog-actions\">\n <button kendoButton fillMode=\"outline\" rounded=\"medium\" (click)=\"toggleCreateFolderView()\">\n Cancel\n </button>\n <button kendoButton themeColor=\"primary\" rounded=\"medium\" (click)=\"createFolder()\">\n <span class=\"button-content\">\n <i class=\"fas fa-folder-plus\"></i>\n Create Folder\n </span>\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Entity Form Dialog -->\n <mj-entity-form-dialog\n #entityFormDialog\n Mode=\"complete\">\n </mj-entity-form-dialog>\n</div>", styles: ["/* ===================================\n GENERIC BROWSER LIST SPECIFIC STYLES\n =================================== */\n\n/* Link indicator for shared items */\n.mj-icon-wrapper-linked {\n position: relative;\n display: inline-block;\n}\n\n.mj-link-indicator {\n position: absolute;\n bottom: -5px;\n right: -5px;\n font-size: 1.5rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n/* Grid specific cells for this component */\n.mj-grid-name-cell {\n display: flex;\n align-items: center;\n gap: 10px;\n \n .mj-grid-icon {\n font-size: 1.25rem;\n color: var(--mj-blue);\n flex-shrink: 0;\n }\n \n .mj-grid-name {\n font-weight: 500;\n color: var(--navy);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .mj-grid-link-indicator {\n position: absolute;\n bottom: -4px;\n right: -4px;\n font-size: 0.75rem;\n color: var(--mj-blue);\n background: var(--white-color);\n border-radius: 50%;\n padding: 1px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);\n }\n}\n\n.mj-grid-date {\n color: var(--gray-800);\n font-size: 0.875rem;\n}\n\n/* Card metadata section specific to this component */\n.mj-card-metadata {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n justify-content: center;\n margin: 12px 0;\n font-size: 0.875rem;\n color: var(--gray-800);\n \n .mj-metadata-item {\n display: flex;\n align-items: center;\n gap: 6px;\n \n span:first-child {\n font-size: 0.875rem;\n color: var(--mj-blue);\n }\n }\n}\n\n/* Favorite star specific styling */\n.mj-card-actions {\n .fa-star {\n transition: all 0.2s ease;\n \n &.fa-solid {\n color: #ffc107;\n }\n \n &.fa-regular {\n color: var(--gray-800);\n }\n }\n \n button:hover .fa-star.fa-regular {\n color: #ffc107;\n }\n}\n\n/* Action buttons in grid cells - specific sizing for this component */\n::ng-deep .mj-grid-table {\n .mj-toolbar-actions {\n .mj-btn-icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n font-size: 14px;\n }\n }\n}\n"] }]
1011
1014
  }], () => [{ type: i1.SharedService }], { entityFormDialogRef: [{
1012
1015
  type: ViewChild,
1013
1016
  args: ['entityFormDialog']