@memberjunction/ng-explorer-core 2.52.0 → 2.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +2 -0
- package/dist/app-routing.module.js.map +1 -1
- package/dist/lib/app-view/application-view.component.js +108 -76
- package/dist/lib/app-view/application-view.component.js.map +1 -1
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +38 -37
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +2 -2
- package/dist/lib/data-browser-component/data-browser.component.js +99 -60
- package/dist/lib/data-browser-component/data-browser.component.js.map +1 -1
- package/dist/lib/favorites/favorites.component.js +2 -2
- package/dist/lib/generic/resource-container-component.js +5 -5
- package/dist/lib/generic/resource-container-component.js.map +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +57 -58
- package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +7 -0
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +475 -143
- package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -1
- package/dist/lib/header/header.component.d.ts +6 -0
- package/dist/lib/header/header.component.d.ts.map +1 -1
- package/dist/lib/header/header.component.js +98 -41
- package/dist/lib/header/header.component.js.map +1 -1
- package/dist/lib/home-component/home.component.d.ts +5 -0
- package/dist/lib/home-component/home.component.d.ts.map +1 -1
- package/dist/lib/home-component/home.component.js +137 -33
- package/dist/lib/home-component/home.component.js.map +1 -1
- package/dist/lib/list-view/list-view.component.js +55 -28
- package/dist/lib/list-view/list-view.component.js.map +1 -1
- package/dist/lib/navigation/navigation.component.js +33 -42
- package/dist/lib/navigation/navigation.component.js.map +1 -1
- package/dist/lib/query-browser-component/query-browser.component.js +2 -2
- package/dist/lib/report-browser-component/report-browser.component.js +2 -2
- package/dist/lib/resource-browser/resource-browser.component.js +297 -177
- package/dist/lib/resource-browser/resource-browser.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +4 -5
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.js +4 -5
- package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
- package/dist/lib/services/startup-validation.service.d.ts +25 -0
- package/dist/lib/services/startup-validation.service.d.ts.map +1 -0
- package/dist/lib/services/startup-validation.service.js +85 -0
- package/dist/lib/services/startup-validation.service.js.map +1 -0
- package/dist/lib/services/system-validation.service.d.ts +40 -0
- package/dist/lib/services/system-validation.service.d.ts.map +1 -0
- package/dist/lib/services/system-validation.service.js +68 -0
- package/dist/lib/services/system-validation.service.js.map +1 -0
- package/dist/lib/single-application/single-application.component.js +2 -2
- package/dist/lib/single-entity/single-entity.component.js +2 -2
- package/dist/lib/single-list-detail/single-list-detail.component.js +2 -2
- package/dist/lib/single-query/single-query.component.js +4 -5
- package/dist/lib/single-query/single-query.component.js.map +1 -1
- package/dist/lib/single-report/single-report.component.js +4 -5
- package/dist/lib/single-report/single-report.component.js.map +1 -1
- package/dist/lib/single-view/single-view.component.js +7 -8
- package/dist/lib/single-view/single-view.component.js.map +1 -1
- package/dist/lib/style-guide-test/style-guide-test.component.d.ts +70 -0
- package/dist/lib/style-guide-test/style-guide-test.component.d.ts.map +1 -0
- package/dist/lib/style-guide-test/style-guide-test.component.js +1017 -0
- package/dist/lib/style-guide-test/style-guide-test.component.js.map +1 -0
- package/dist/lib/system-validation/system-validation-banner.component.d.ts +16 -0
- package/dist/lib/system-validation/system-validation-banner.component.d.ts.map +1 -0
- package/dist/lib/system-validation/system-validation-banner.component.js +156 -0
- package/dist/lib/system-validation/system-validation-banner.component.js.map +1 -0
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +24 -26
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +141 -91
- package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
- package/dist/module.d.ts +42 -40
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +38 -10
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +25 -25
|
@@ -20,46 +20,47 @@ import * as i6 from "@progress/kendo-angular-inputs";
|
|
|
20
20
|
import * as i7 from "@progress/kendo-angular-label";
|
|
21
21
|
import * as i8 from "../resource-browser/resource-browser.component";
|
|
22
22
|
const _c0 = ["resourceBrowserDashboard"];
|
|
23
|
-
function DashboardBrowserComponent_kendo_dialog_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
25
|
-
i0.ɵɵelementStart(0, "button", 12);
|
|
26
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.updateDashboard()); });
|
|
27
|
-
i0.ɵɵtext(1, " Update ");
|
|
28
|
-
i0.ɵɵelementEnd();
|
|
29
|
-
} }
|
|
30
|
-
function DashboardBrowserComponent_kendo_dialog_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
32
|
-
i0.ɵɵelementStart(0, "button", 12);
|
|
33
|
-
i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Conditional_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.createDashboard()); });
|
|
34
|
-
i0.ɵɵtext(1, " Create ");
|
|
35
|
-
i0.ɵɵelementEnd();
|
|
36
|
-
} }
|
|
37
23
|
function DashboardBrowserComponent_kendo_dialog_3_Template(rf, ctx) { if (rf & 1) {
|
|
38
24
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
25
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 6);
|
|
40
26
|
i0.ɵɵlistener("close", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleUpsertDashboardDialog(false)); });
|
|
41
|
-
i0.ɵɵelementStart(1, "
|
|
27
|
+
i0.ɵɵelementStart(1, "kendo-formfield", 7);
|
|
28
|
+
i0.ɵɵelement(2, "kendo-label", 8);
|
|
29
|
+
i0.ɵɵelementStart(3, "kendo-textbox", 9, 1);
|
|
42
30
|
i0.ɵɵlistener("valueChange", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_textbox_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpsertDashboardNameKeyup($event)); });
|
|
43
|
-
i0.ɵɵelementEnd()()
|
|
44
|
-
i0.ɵɵ
|
|
45
|
-
i0.ɵɵ
|
|
31
|
+
i0.ɵɵelementEnd()();
|
|
32
|
+
i0.ɵɵelementStart(5, "kendo-formfield", 10);
|
|
33
|
+
i0.ɵɵelement(6, "kendo-label", 11);
|
|
34
|
+
i0.ɵɵelementStart(7, "kendo-textbox", 12, 2);
|
|
46
35
|
i0.ɵɵlistener("valueChange", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_textbox_valueChange_7_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpsertDashboardDescriptionKeyup($event)); });
|
|
47
|
-
i0.ɵɵelementEnd()()
|
|
48
|
-
i0.ɵɵelementStart(
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵelementStart(11, "
|
|
51
|
-
i0.ɵɵ
|
|
52
|
-
i0.ɵɵtext(
|
|
53
|
-
i0.ɵɵelementEnd()()
|
|
36
|
+
i0.ɵɵelementEnd()();
|
|
37
|
+
i0.ɵɵelementStart(9, "kendo-dialog-actions")(10, "kendo-button", 13);
|
|
38
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_button_click_10_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectedDashboard ? ctx_r2.updateDashboard() : ctx_r2.createDashboard()); });
|
|
39
|
+
i0.ɵɵelementStart(11, "span", 14);
|
|
40
|
+
i0.ɵɵelement(12, "i", 15);
|
|
41
|
+
i0.ɵɵtext(13);
|
|
42
|
+
i0.ɵɵelementEnd()();
|
|
43
|
+
i0.ɵɵelementStart(14, "kendo-button", 16);
|
|
44
|
+
i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_button_click_14_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleUpsertDashboardDialog(false)); });
|
|
45
|
+
i0.ɵɵelementStart(15, "span", 14);
|
|
46
|
+
i0.ɵɵelement(16, "i", 17);
|
|
47
|
+
i0.ɵɵtext(17, " Cancel ");
|
|
48
|
+
i0.ɵɵelementEnd()()()();
|
|
54
49
|
} if (rf & 2) {
|
|
50
|
+
const dashboardNameInput_r4 = i0.ɵɵreference(4);
|
|
51
|
+
const dashboardDescInput_r5 = i0.ɵɵreference(8);
|
|
55
52
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
56
|
-
i0.ɵɵproperty("title", ctx_r2.selectedDashboard ? "Update Dashboard" : "Create New Dashboard")("minWidth",
|
|
57
|
-
i0.ɵɵadvance(3);
|
|
58
|
-
i0.ɵɵproperty("value", ctx_r2.upsertDashboardName);
|
|
59
|
-
i0.ɵɵadvance(4);
|
|
60
|
-
i0.ɵɵproperty("value", ctx_r2.upsertDashboardDescription);
|
|
53
|
+
i0.ɵɵproperty("title", ctx_r2.selectedDashboard ? "Update Dashboard" : "Create New Dashboard")("minWidth", 400)("width", 500);
|
|
61
54
|
i0.ɵɵadvance(2);
|
|
62
|
-
i0.ɵɵ
|
|
55
|
+
i0.ɵɵproperty("for", dashboardNameInput_r4);
|
|
56
|
+
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵproperty("value", ctx_r2.upsertDashboardName)("clearButton", true);
|
|
58
|
+
i0.ɵɵadvance(3);
|
|
59
|
+
i0.ɵɵproperty("for", dashboardDescInput_r5);
|
|
60
|
+
i0.ɵɵadvance();
|
|
61
|
+
i0.ɵɵproperty("value", ctx_r2.upsertDashboardDescription)("clearButton", true);
|
|
62
|
+
i0.ɵɵadvance(6);
|
|
63
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.selectedDashboard ? "Update" : "Create", " ");
|
|
63
64
|
} }
|
|
64
65
|
let DashboardBrowserComponent = class DashboardBrowserComponent extends BaseBrowserComponent {
|
|
65
66
|
router;
|
|
@@ -214,19 +215,19 @@ let DashboardBrowserComponent = class DashboardBrowserComponent extends BaseBrow
|
|
|
214
215
|
} if (rf & 2) {
|
|
215
216
|
let _t;
|
|
216
217
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resourceBrowser = _t.first);
|
|
217
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [["resourceBrowserDashboard", ""], ["ResourceTypeName", "Dashboards", "Title", "Dashboards", "DisplayMode", "Tile", 3, "ResourceSelected", "NavigateToParentEvent", "EditItemEvent", "EnableCategories", "CurrentCategoryID", "NewItemOptions"], [
|
|
218
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [["resourceBrowserDashboard", ""], ["dashboardNameInput", ""], ["dashboardDescInput", ""], [1, "mj-page-container"], ["ResourceTypeName", "Dashboards", "Title", "Dashboards", "DisplayMode", "Tile", 3, "ResourceSelected", "NavigateToParentEvent", "EditItemEvent", "EnableCategories", "CurrentCategoryID", "NewItemOptions"], [3, "title", "minWidth", "width", "close", 4, "ngIf"], [3, "close", "title", "minWidth", "width"], ["orientation", "vertical", 1, "mb-3"], ["text", "Name", 3, "for"], ["placeholder", "Enter dashboard name", "rounded", "medium", 3, "valueChange", "value", "clearButton"], ["orientation", "vertical"], ["text", "Description", 3, "for"], ["placeholder", "Enter description", "rounded", "medium", 3, "valueChange", "value", "clearButton"], ["themeColor", "primary", "rounded", "medium", 3, "click"], [1, "button-content"], [1, "fas", "fa-check"], ["fillMode", "outline", "rounded", "medium", 3, "click"], [1, "fas", "fa-times"]], template: function DashboardBrowserComponent_Template(rf, ctx) { if (rf & 1) {
|
|
218
219
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
219
|
-
i0.ɵɵelementStart(0, "div")(1, "mj-resource-browser",
|
|
220
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "mj-resource-browser", 4, 0);
|
|
220
221
|
i0.ɵɵlistener("ResourceSelected", function DashboardBrowserComponent_Template_mj_resource_browser_ResourceSelected_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemClick($event)); })("NavigateToParentEvent", function DashboardBrowserComponent_Template_mj_resource_browser_NavigateToParentEvent_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.navigateToParentFolder()); })("EditItemEvent", function DashboardBrowserComponent_Template_mj_resource_browser_EditItemEvent_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBeforeUpdateItemEvent($event)); });
|
|
221
222
|
i0.ɵɵelementEnd();
|
|
222
|
-
i0.ɵɵtemplate(3, DashboardBrowserComponent_kendo_dialog_3_Template,
|
|
223
|
+
i0.ɵɵtemplate(3, DashboardBrowserComponent_kendo_dialog_3_Template, 18, 10, "kendo-dialog", 5);
|
|
223
224
|
i0.ɵɵelementEnd();
|
|
224
225
|
} if (rf & 2) {
|
|
225
226
|
i0.ɵɵadvance();
|
|
226
227
|
i0.ɵɵproperty("EnableCategories", true)("CurrentCategoryID", ctx.selectedFolderID)("NewItemOptions", ctx.NewItemOptions);
|
|
227
228
|
i0.ɵɵadvance(2);
|
|
228
229
|
i0.ɵɵproperty("ngIf", ctx.upsertDashboardDialogVisible);
|
|
229
|
-
} }, dependencies: [i3.NgIf, i4.DialogComponent, i4.DialogActionsComponent, i5.ButtonComponent, i6.TextBoxComponent, i7.LabelComponent, i8.ResourceBrowserComponent], styles: ["
|
|
230
|
+
} }, dependencies: [i3.NgIf, i4.DialogComponent, i4.DialogActionsComponent, i5.ButtonComponent, i6.TextBoxComponent, i6.FormFieldComponent, i7.LabelComponent, i8.ResourceBrowserComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n}\n\n\n\n.mb-3[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n\n\n.button-content[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}"] });
|
|
230
231
|
};
|
|
231
232
|
DashboardBrowserComponent = __decorate([
|
|
232
233
|
RegisterClass(BaseNavigationComponent, 'Dashboards')
|
|
@@ -234,7 +235,7 @@ DashboardBrowserComponent = __decorate([
|
|
|
234
235
|
export { DashboardBrowserComponent };
|
|
235
236
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardBrowserComponent, [{
|
|
236
237
|
type: Component,
|
|
237
|
-
args: [{ selector: 'app-dashboard-browser', template: "<div>\n <mj-resource-browser\n
|
|
238
|
+
args: [{ selector: 'app-dashboard-browser', template: "<!-- dashboard-browser.component.html -->\n<div class=\"mj-page-container\">\n <mj-resource-browser\n #resourceBrowserDashboard\n ResourceTypeName=\"Dashboards\"\n [EnableCategories]=\"true\"\n [CurrentCategoryID]=\"selectedFolderID\"\n Title=\"Dashboards\"\n DisplayMode=\"Tile\"\n [NewItemOptions]=\"NewItemOptions\"\n (ResourceSelected)=\"onItemClick($event)\"\n (NavigateToParentEvent)=\"navigateToParentFolder()\"\n (EditItemEvent)=\"onBeforeUpdateItemEvent($event)\"\n />\n\n <!-- Dashboard Creation/Edit Dialog -->\n <kendo-dialog \n [title]=\"selectedDashboard ? 'Update Dashboard' : 'Create New Dashboard'\" \n *ngIf=\"upsertDashboardDialogVisible\" \n (close)=\"toggleUpsertDashboardDialog(false)\"\n [minWidth]=\"400\"\n [width]=\"500\"\n >\n <kendo-formfield orientation=\"vertical\" class=\"mb-3\">\n <kendo-label text=\"Name\" [for]=\"dashboardNameInput\"></kendo-label>\n <kendo-textbox \n #dashboardNameInput\n [value]=\"upsertDashboardName\" \n placeholder=\"Enter dashboard name\" \n [clearButton]=\"true\"\n rounded=\"medium\"\n (valueChange)=\"onUpsertDashboardNameKeyup($event)\"\n />\n </kendo-formfield>\n \n <kendo-formfield orientation=\"vertical\">\n <kendo-label text=\"Description\" [for]=\"dashboardDescInput\"></kendo-label>\n <kendo-textbox \n #dashboardDescInput\n [value]=\"upsertDashboardDescription\" \n placeholder=\"Enter description\" \n [clearButton]=\"true\"\n rounded=\"medium\"\n (valueChange)=\"onUpsertDashboardDescriptionKeyup($event)\"\n />\n </kendo-formfield>\n \n <kendo-dialog-actions>\n <kendo-button \n themeColor=\"primary\"\n rounded=\"medium\"\n (click)=\"selectedDashboard ? updateDashboard() : createDashboard()\">\n <span class=\"button-content\">\n <i class=\"fas fa-check\"></i>\n {{ selectedDashboard ? 'Update' : 'Create' }}\n </span>\n </kendo-button>\n <kendo-button \n fillMode=\"outline\"\n rounded=\"medium\"\n (click)=\"toggleUpsertDashboardDialog(false)\"> \n <span class=\"button-content\">\n <i class=\"fas fa-times\"></i>\n Cancel\n </span>\n </kendo-button>\n </kendo-dialog-actions>\n </kendo-dialog>\n</div>", styles: [":host {\n display: block;\n}\n\n/* Utility margin class */\n.mb-3 {\n margin-bottom: 1rem;\n}\n\n/* Button content wrapper for icons */\n.button-content {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}"] }]
|
|
238
239
|
}], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], { resourceBrowser: [{
|
|
239
240
|
type: ViewChild,
|
|
240
241
|
args: ['resourceBrowserDashboard']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-browser.component.js","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts","../../../src/lib/dashboard-browser-component/dashboard-browser.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAiB,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAQ,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"dashboard-browser.component.js","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts","../../../src/lib/dashboard-browser-component/dashboard-browser.component.html"],"names":[],"mappings":"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"}
|
|
@@ -552,11 +552,11 @@ export class DashboardPreferencesDialogComponent {
|
|
|
552
552
|
i0.ɵɵproperty("disabled", !ctx.hasChanges || ctx.saving);
|
|
553
553
|
i0.ɵɵadvance();
|
|
554
554
|
i0.ɵɵconditional(ctx.saving ? 19 : 20);
|
|
555
|
-
} }, dependencies: [i1.DefaultValueAccessor, i1.RadioControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.DialogComponent, i3.LoaderComponent, i4.CdkDropList, i4.CdkDrag], styles: [".dashboard-preferences-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dialog-header[_ngcontent-%COMP%] {\n padding: 20px 24px 16px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: #666;\n}\n\n.scope-indicator[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: #666;\n}\n\n.scope-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] {\n margin-top: 12px;\n display: flex;\n gap: 20px;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 14px;\n color: #495057;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n margin: 0;\n}\n\n.dialog-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n padding: 20px 24px;\n}\n\n.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 200px;\n flex-direction: column;\n gap: 12px;\n}\n\n.error-container[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.error-container[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n}\n\n.preferences-panels[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n height: 100%;\n}\n\n.panel[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n padding: 12px 16px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: #6c757d;\n}\n\n.dashboard-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n
|
|
555
|
+
} }, dependencies: [i1.DefaultValueAccessor, i1.RadioControlValueAccessor, i1.NgControlStatus, i1.NgModel, i2.DialogComponent, i3.LoaderComponent, i4.CdkDropList, i4.CdkDrag], styles: [".dashboard-preferences-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dialog-header[_ngcontent-%COMP%] {\n padding: 20px 24px 16px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n}\n\n.dialog-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: #666;\n}\n\n.scope-indicator[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: #666;\n}\n\n.scope-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] {\n margin-top: 12px;\n display: flex;\n gap: 20px;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 14px;\n color: #495057;\n}\n\n.preference-mode-selector[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n margin: 0;\n}\n\n.dialog-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n padding: 20px 24px;\n}\n\n.loading-container[_ngcontent-%COMP%], .error-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 200px;\n flex-direction: column;\n gap: 12px;\n}\n\n.error-container[_ngcontent-%COMP%] {\n color: #dc3545;\n}\n\n.error-container[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n margin-bottom: 8px;\n}\n\n.preferences-panels[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n height: 100%;\n}\n\n.panel[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n padding: 12px 16px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 8px;\n color: #6c757d;\n}\n\n.dashboard-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100px;\n color: #6c757d;\n font-style: italic;\n flex-direction: column;\n gap: 8px;\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n opacity: 0.5;\n}\n\n.dashboard-item[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n background: white;\n transition: all 0.2s ease;\n cursor: move;\n}\n\n.dashboard-item[_ngcontent-%COMP%]:hover {\n border-color: #007bff;\n box-shadow: 0 2px 4px rgba(0, 123, 255, 0.1);\n}\n\n.dashboard-item.cdk-drag-preview[_ngcontent-%COMP%] {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transform: rotate(2deg);\n}\n\n.dashboard-item.cdk-drag-placeholder[_ngcontent-%COMP%] {\n opacity: 0.3;\n border-style: dashed;\n}\n\n.dashboard-item-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px;\n gap: 12px;\n}\n\n.drag-handle[_ngcontent-%COMP%] {\n color: #adb5bd;\n cursor: move;\n font-size: 14px;\n}\n\n.order-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #007bff;\n color: white;\n border-radius: 50%;\n font-size: 12px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.dashboard-info[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.dashboard-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n font-size: 14px;\n}\n\n.dashboard-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n line-height: 1.3;\n}\n\n.add-button[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #28a745;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n opacity: 0.7;\n}\n\n.add-button[_ngcontent-%COMP%]:hover {\n background-color: rgba(40, 167, 69, 0.1);\n opacity: 1;\n}\n\n.remove-button[_ngcontent-%COMP%] {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #dc3545;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n}\n\n.remove-button[_ngcontent-%COMP%]:hover {\n background-color: rgba(220, 53, 69, 0.1);\n}\n\n.cdk-drop-list-dragging[_ngcontent-%COMP%] .dashboard-item[_ngcontent-%COMP%]:not(.cdk-drag-placeholder) {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.dialog-footer[_ngcontent-%COMP%] {\n padding: 16px 24px;\n border-top: 1px solid #e0e0e0;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n background: #f8f9fa;\n}\n\n.btn[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n border: 1px solid transparent;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: white;\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #6c757d;\n color: white;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: #007bff;\n color: white;\n border-color: #007bff;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #0056b3;\n border-color: #0056b3;\n}\n\n\n\n@media (max-width: 768px) {\n .dashboard-preferences-dialog[_ngcontent-%COMP%] {\n width: 95vw;\n max-height: 90vh;\n }\n \n .preferences-panels[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n \n .panel[_ngcontent-%COMP%] {\n min-height: 200px;\n }\n \n .dashboard-list[_ngcontent-%COMP%] {\n min-height: 150px;\n }\n}"] });
|
|
556
556
|
}
|
|
557
557
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardPreferencesDialogComponent, [{
|
|
558
558
|
type: Component,
|
|
559
|
-
args: [{ selector: 'mj-dashboard-preferences-dialog', template: "<kendo-dialog title=\"Dashboard Preferences\" \n [width]=\"800\" \n [height]=\"600\"\n [minWidth]=\"600\"\n [minHeight]=\"400\"\n (close)=\"onCancel()\">\n<div class=\"dashboard-preferences-dialog\">\n <div class=\"dialog-header\">\n <h3><i class=\"fa-solid fa-sliders\"></i> Dashboard Preferences</h3>\n <p class=\"scope-indicator\">\n @if (scope === 'Global') {\n <i class=\"fa-solid fa-globe\"></i> Global Scope\n } @else {\n <i class=\"fa-solid fa-layer-group\"></i> Application: {{ applicationName }}\n }\n </p>\n @if (isSysAdmin && scope === 'Global') {\n <div class=\"preference-mode-selector\">\n <label>\n <input type=\"radio\" \n name=\"preferenceMode\" \n value=\"personal\" \n [(ngModel)]=\"preferenceMode\"\n (change)=\"onPreferenceModeChange()\">\n Personal Preferences\n </label>\n <label>\n <input type=\"radio\" \n name=\"preferenceMode\" \n value=\"system\" \n [(ngModel)]=\"preferenceMode\"\n (change)=\"onPreferenceModeChange()\">\n System Defaults\n </label>\n </div>\n }\n </div>\n\n <div class=\"dialog-content\">\n @if (loading) {\n <div class=\"loading-container\">\n <kendo-loader></kendo-loader>\n Loading dashboards...\n </div>\n }\n\n @if (error) {\n <div class=\"error-container\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n </div>\n }\n\n @if (!loading && !error) {\n <div class=\"preferences-panels\">\n <!-- Available Dashboards Panel -->\n <div class=\"panel available-panel\">\n <h4><i class=\"fa-solid fa-list\"></i> Available Dashboards</h4>\n <div class=\"dashboard-list\" \n cdkDropList \n #availableList=\"cdkDropList\"\n [cdkDropListData]=\"availableDashboards\"\n [cdkDropListConnectedTo]=\"[configuredList]\"\n (cdkDropListDropped)=\"onDrop($event)\">\n \n @if (availableDashboards.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n All dashboards are configured\n </div>\n }\n\n @for (dashboard of availableDashboards; track dashboard.ID) {\n <div class=\"dashboard-item available-item\" \n cdkDrag\n [cdkDragData]=\"dashboard\">\n <div class=\"dashboard-item-content\">\n <i class=\"fa-solid fa-grip-vertical drag-handle\"></i>\n <div class=\"dashboard-info\">\n <span class=\"dashboard-name\">{{ dashboard.Name }}</span>\n @if (dashboard.Description) {\n <span class=\"dashboard-description\">{{ dashboard.Description }}</span>\n }\n </div>\n <button type=\"button\" \n class=\"add-button\"\n (click)=\"addDashboard(dashboard)\"\n title=\"Add to configured dashboards\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Configured Dashboards Panel -->\n <div class=\"panel configured-panel\">\n <h4><i class=\"fa-solid fa-list-ol\"></i> Configured Dashboards</h4>\n <div class=\"dashboard-list\" \n cdkDropList \n #configuredList=\"cdkDropList\"\n [cdkDropListData]=\"configuredDashboards\"\n [cdkDropListConnectedTo]=\"[availableList]\"\n (cdkDropListDropped)=\"onDrop($event)\">\n \n @if (configuredDashboards.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n No dashboards configured\n </div>\n }\n\n @for (dashboard of configuredDashboards; track dashboard.ID; let i = $index) {\n <div class=\"dashboard-item configured-item\" \n cdkDrag\n [cdkDragData]=\"dashboard\">\n <div class=\"dashboard-item-content\">\n <i class=\"fa-solid fa-grip-vertical drag-handle\"></i>\n <span class=\"order-number\">{{ i + 1 }}</span>\n <div class=\"dashboard-info\">\n <span class=\"dashboard-name\">{{ dashboard.Name }}</span>\n @if (dashboard.Description) {\n <span class=\"dashboard-description\">{{ dashboard.Description }}</span>\n }\n </div>\n <button type=\"button\" \n class=\"remove-button\"\n (click)=\"removeDashboard(dashboard)\"\n title=\"Remove from configured dashboards\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n\n <div class=\"dialog-footer\">\n <button type=\"button\" \n class=\"btn btn-secondary\" \n (click)=\"onCancel()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button type=\"button\" \n class=\"btn btn-primary\" \n [disabled]=\"!hasChanges || saving\"\n (click)=\"onSave()\">\n @if (saving) {\n <kendo-loader size=\"small\"></kendo-loader>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i> Save Changes\n }\n </button>\n </div>\n</div>\n</kendo-dialog>", styles: [".dashboard-preferences-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dialog-header {\n padding: 20px 24px 16px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header h3 {\n margin: 0 0 8px 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n}\n\n.dialog-header h3 i {\n margin-right: 8px;\n color: #666;\n}\n\n.scope-indicator {\n margin: 0;\n font-size: 14px;\n color: #666;\n}\n\n.scope-indicator i {\n margin-right: 6px;\n}\n\n.preference-mode-selector {\n margin-top: 12px;\n display: flex;\n gap: 20px;\n}\n\n.preference-mode-selector label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 14px;\n color: #495057;\n}\n\n.preference-mode-selector input[type=\"radio\"] {\n margin: 0;\n}\n\n.dialog-content {\n flex: 1;\n overflow: hidden;\n padding: 20px 24px;\n}\n\n.loading-container, .error-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 200px;\n flex-direction: column;\n gap: 12px;\n}\n\n.error-container {\n color: #dc3545;\n}\n\n.error-container i {\n font-size: 24px;\n margin-bottom: 8px;\n}\n\n.preferences-panels {\n display: flex;\n gap: 20px;\n height: 100%;\n}\n\n.panel {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.panel h4 {\n margin: 0;\n padding: 12px 16px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.panel h4 i {\n margin-right: 8px;\n color: #6c757d;\n}\n\n.dashboard-list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n min-height: 300px;\n}\n\n.empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100px;\n color: #6c757d;\n font-style: italic;\n flex-direction: column;\n gap: 8px;\n}\n\n.empty-state i {\n font-size: 24px;\n opacity: 0.5;\n}\n\n.dashboard-item {\n margin-bottom: 8px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n background: white;\n transition: all 0.2s ease;\n cursor: move;\n}\n\n.dashboard-item:hover {\n border-color: #007bff;\n box-shadow: 0 2px 4px rgba(0, 123, 255, 0.1);\n}\n\n.dashboard-item.cdk-drag-preview {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transform: rotate(2deg);\n}\n\n.dashboard-item.cdk-drag-placeholder {\n opacity: 0.3;\n border-style: dashed;\n}\n\n.dashboard-item-content {\n display: flex;\n align-items: center;\n padding: 12px;\n gap: 12px;\n}\n\n.drag-handle {\n color: #adb5bd;\n cursor: move;\n font-size: 14px;\n}\n\n.order-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #007bff;\n color: white;\n border-radius: 50%;\n font-size: 12px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.dashboard-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.dashboard-name {\n font-weight: 500;\n color: #333;\n font-size: 14px;\n}\n\n.dashboard-description {\n font-size: 12px;\n color: #6c757d;\n line-height: 1.3;\n}\n\n.add-button {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #28a745;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n opacity: 0.7;\n}\n\n.add-button:hover {\n background-color: rgba(40, 167, 69, 0.1);\n opacity: 1;\n}\n\n.remove-button {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #dc3545;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n}\n\n.remove-button:hover {\n background-color: rgba(220, 53, 69, 0.1);\n}\n\n.cdk-drop-list-dragging .dashboard-item:not(.cdk-drag-placeholder) {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.dialog-footer {\n padding: 16px 24px;\n border-top: 1px solid #e0e0e0;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n background: #f8f9fa;\n}\n\n.btn {\n padding: 8px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n border: 1px solid transparent;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n background: white;\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #6c757d;\n color: white;\n}\n\n.btn-primary {\n background: #007bff;\n color: white;\n border-color: #007bff;\n}\n\n.btn-primary:hover:not(:disabled) {\n background: #0056b3;\n border-color: #0056b3;\n}\n\n/* Responsive design */\n@media (max-width: 768px) {\n .dashboard-preferences-dialog {\n width: 95vw;\n max-height: 90vh;\n }\n \n .preferences-panels {\n flex-direction: column;\n gap: 16px;\n }\n \n .panel {\n min-height: 200px;\n }\n \n .dashboard-list {\n min-height: 150px;\n }\n}"] }]
|
|
559
|
+
args: [{ selector: 'mj-dashboard-preferences-dialog', template: "<kendo-dialog title=\"Dashboard Preferences\" \n [width]=\"800\" \n [height]=\"600\"\n [minWidth]=\"600\"\n [minHeight]=\"400\"\n (close)=\"onCancel()\">\n<div class=\"dashboard-preferences-dialog\">\n <div class=\"dialog-header\">\n <h3><i class=\"fa-solid fa-sliders\"></i> Dashboard Preferences</h3>\n <p class=\"scope-indicator\">\n @if (scope === 'Global') {\n <i class=\"fa-solid fa-globe\"></i> Global Scope\n } @else {\n <i class=\"fa-solid fa-layer-group\"></i> Application: {{ applicationName }}\n }\n </p>\n @if (isSysAdmin && scope === 'Global') {\n <div class=\"preference-mode-selector\">\n <label>\n <input type=\"radio\" \n name=\"preferenceMode\" \n value=\"personal\" \n [(ngModel)]=\"preferenceMode\"\n (change)=\"onPreferenceModeChange()\">\n Personal Preferences\n </label>\n <label>\n <input type=\"radio\" \n name=\"preferenceMode\" \n value=\"system\" \n [(ngModel)]=\"preferenceMode\"\n (change)=\"onPreferenceModeChange()\">\n System Defaults\n </label>\n </div>\n }\n </div>\n\n <div class=\"dialog-content\">\n @if (loading) {\n <div class=\"loading-container\">\n <kendo-loader></kendo-loader>\n Loading dashboards...\n </div>\n }\n\n @if (error) {\n <div class=\"error-container\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n </div>\n }\n\n @if (!loading && !error) {\n <div class=\"preferences-panels\">\n <!-- Available Dashboards Panel -->\n <div class=\"panel available-panel\">\n <h4><i class=\"fa-solid fa-list\"></i> Available Dashboards</h4>\n <div class=\"dashboard-list\" \n cdkDropList \n #availableList=\"cdkDropList\"\n [cdkDropListData]=\"availableDashboards\"\n [cdkDropListConnectedTo]=\"[configuredList]\"\n (cdkDropListDropped)=\"onDrop($event)\">\n \n @if (availableDashboards.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n All dashboards are configured\n </div>\n }\n\n @for (dashboard of availableDashboards; track dashboard.ID) {\n <div class=\"dashboard-item available-item\" \n cdkDrag\n [cdkDragData]=\"dashboard\">\n <div class=\"dashboard-item-content\">\n <i class=\"fa-solid fa-grip-vertical drag-handle\"></i>\n <div class=\"dashboard-info\">\n <span class=\"dashboard-name\">{{ dashboard.Name }}</span>\n @if (dashboard.Description) {\n <span class=\"dashboard-description\">{{ dashboard.Description }}</span>\n }\n </div>\n <button type=\"button\" \n class=\"add-button\"\n (click)=\"addDashboard(dashboard)\"\n title=\"Add to configured dashboards\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Configured Dashboards Panel -->\n <div class=\"panel configured-panel\">\n <h4><i class=\"fa-solid fa-list-ol\"></i> Configured Dashboards</h4>\n <div class=\"dashboard-list\" \n cdkDropList \n #configuredList=\"cdkDropList\"\n [cdkDropListData]=\"configuredDashboards\"\n [cdkDropListConnectedTo]=\"[availableList]\"\n (cdkDropListDropped)=\"onDrop($event)\">\n \n @if (configuredDashboards.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-info-circle\"></i>\n No dashboards configured\n </div>\n }\n\n @for (dashboard of configuredDashboards; track dashboard.ID; let i = $index) {\n <div class=\"dashboard-item configured-item\" \n cdkDrag\n [cdkDragData]=\"dashboard\">\n <div class=\"dashboard-item-content\">\n <i class=\"fa-solid fa-grip-vertical drag-handle\"></i>\n <span class=\"order-number\">{{ i + 1 }}</span>\n <div class=\"dashboard-info\">\n <span class=\"dashboard-name\">{{ dashboard.Name }}</span>\n @if (dashboard.Description) {\n <span class=\"dashboard-description\">{{ dashboard.Description }}</span>\n }\n </div>\n <button type=\"button\" \n class=\"remove-button\"\n (click)=\"removeDashboard(dashboard)\"\n title=\"Remove from configured dashboards\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n\n <div class=\"dialog-footer\">\n <button type=\"button\" \n class=\"btn btn-secondary\" \n (click)=\"onCancel()\">\n <i class=\"fa-solid fa-times\"></i> Cancel\n </button>\n <button type=\"button\" \n class=\"btn btn-primary\" \n [disabled]=\"!hasChanges || saving\"\n (click)=\"onSave()\">\n @if (saving) {\n <kendo-loader size=\"small\"></kendo-loader>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i> Save Changes\n }\n </button>\n </div>\n</div>\n</kendo-dialog>", styles: [".dashboard-preferences-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.dialog-header {\n padding: 20px 24px 16px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.dialog-header h3 {\n margin: 0 0 8px 0;\n font-size: 20px;\n font-weight: 600;\n color: #333;\n}\n\n.dialog-header h3 i {\n margin-right: 8px;\n color: #666;\n}\n\n.scope-indicator {\n margin: 0;\n font-size: 14px;\n color: #666;\n}\n\n.scope-indicator i {\n margin-right: 6px;\n}\n\n.preference-mode-selector {\n margin-top: 12px;\n display: flex;\n gap: 20px;\n}\n\n.preference-mode-selector label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 14px;\n color: #495057;\n}\n\n.preference-mode-selector input[type=\"radio\"] {\n margin: 0;\n}\n\n.dialog-content {\n flex: 1;\n overflow: hidden;\n padding: 20px 24px;\n}\n\n.loading-container, .error-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 200px;\n flex-direction: column;\n gap: 12px;\n}\n\n.error-container {\n color: #dc3545;\n}\n\n.error-container i {\n font-size: 24px;\n margin-bottom: 8px;\n}\n\n.preferences-panels {\n display: flex;\n gap: 20px;\n height: 100%;\n}\n\n.panel {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.panel h4 {\n margin: 0;\n padding: 12px 16px;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n font-size: 14px;\n font-weight: 600;\n color: #495057;\n}\n\n.panel h4 i {\n margin-right: 8px;\n color: #6c757d;\n}\n\n.dashboard-list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100px;\n color: #6c757d;\n font-style: italic;\n flex-direction: column;\n gap: 8px;\n}\n\n.empty-state i {\n font-size: 24px;\n opacity: 0.5;\n}\n\n.dashboard-item {\n margin-bottom: 8px;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n background: white;\n transition: all 0.2s ease;\n cursor: move;\n}\n\n.dashboard-item:hover {\n border-color: #007bff;\n box-shadow: 0 2px 4px rgba(0, 123, 255, 0.1);\n}\n\n.dashboard-item.cdk-drag-preview {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transform: rotate(2deg);\n}\n\n.dashboard-item.cdk-drag-placeholder {\n opacity: 0.3;\n border-style: dashed;\n}\n\n.dashboard-item-content {\n display: flex;\n align-items: center;\n padding: 12px;\n gap: 12px;\n}\n\n.drag-handle {\n color: #adb5bd;\n cursor: move;\n font-size: 14px;\n}\n\n.order-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #007bff;\n color: white;\n border-radius: 50%;\n font-size: 12px;\n font-weight: 600;\n flex-shrink: 0;\n}\n\n.dashboard-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.dashboard-name {\n font-weight: 500;\n color: #333;\n font-size: 14px;\n}\n\n.dashboard-description {\n font-size: 12px;\n color: #6c757d;\n line-height: 1.3;\n}\n\n.add-button {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #28a745;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n opacity: 0.7;\n}\n\n.add-button:hover {\n background-color: rgba(40, 167, 69, 0.1);\n opacity: 1;\n}\n\n.remove-button {\n background: none;\n border: none;\n padding: 4px;\n cursor: pointer;\n color: #dc3545;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n}\n\n.remove-button:hover {\n background-color: rgba(220, 53, 69, 0.1);\n}\n\n.cdk-drop-list-dragging .dashboard-item:not(.cdk-drag-placeholder) {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.dialog-footer {\n padding: 16px 24px;\n border-top: 1px solid #e0e0e0;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n background: #f8f9fa;\n}\n\n.btn {\n padding: 8px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n border: 1px solid transparent;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n background: white;\n border-color: #6c757d;\n color: #6c757d;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #6c757d;\n color: white;\n}\n\n.btn-primary {\n background: #007bff;\n color: white;\n border-color: #007bff;\n}\n\n.btn-primary:hover:not(:disabled) {\n background: #0056b3;\n border-color: #0056b3;\n}\n\n/* Responsive design */\n@media (max-width: 768px) {\n .dashboard-preferences-dialog {\n width: 95vw;\n max-height: 90vh;\n }\n \n .preferences-panels {\n flex-direction: column;\n gap: 16px;\n }\n \n .panel {\n min-height: 200px;\n }\n \n .dashboard-list {\n min-height: 150px;\n }\n}"] }]
|
|
560
560
|
}], null, { applicationId: [{
|
|
561
561
|
type: Input
|
|
562
562
|
}], scope: [{
|