@memberjunction/ng-explorer-core 5.22.0 → 5.23.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/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +3 -2
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +49 -49
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
- package/dist/lib/generic/form-toolbar.js +10 -10
- package/dist/lib/generic/form-toolbar.js.map +1 -1
- package/dist/lib/oauth/oauth-callback.component.js +6 -6
- package/dist/lib/oauth/oauth-callback.component.js.map +1 -1
- package/dist/lib/oauth/oauth.module.d.ts +2 -3
- package/dist/lib/oauth/oauth.module.d.ts.map +1 -1
- package/dist/lib/oauth/oauth.module.js +0 -4
- package/dist/lib/oauth/oauth.module.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +6 -25
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +30 -124
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +7 -23
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +50 -142
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +3 -19
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +16 -98
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +13 -11
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +80 -89
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.js +18 -3
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +38 -16
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.js +57 -35
- package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +33 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +99 -16
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/services/settings-dialog.service.d.ts +8 -8
- package/dist/lib/shell/services/settings-dialog.service.d.ts.map +1 -1
- package/dist/lib/shell/services/settings-dialog.service.js +20 -26
- package/dist/lib/shell/services/settings-dialog.service.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +17 -16
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/shell/shell.module.d.ts +4 -5
- package/dist/lib/shell/shell.module.d.ts.map +1 -1
- package/dist/lib/shell/shell.module.js +4 -8
- package/dist/lib/shell/shell.module.js.map +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +72 -71
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +11 -11
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +36 -12
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +78 -50
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts +12 -5
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +44 -55
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +10 -2
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +313 -243
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/module.d.ts +23 -34
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +33 -74
- package/dist/module.js.map +1 -1
- package/package.json +37 -47
|
@@ -3,24 +3,47 @@ import { ResourceData } from '@memberjunction/core-entities';
|
|
|
3
3
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
4
4
|
import { DashboardConfigDetails, DashboardItem } from '../../single-dashboard.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function
|
|
6
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
7
|
+
const _forTrack0 = ($index, $item) => $item.uniqueId;
|
|
8
|
+
const _forTrack1 = ($index, $item) => $item.Name;
|
|
9
|
+
function EditDashboardComponent_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
10
10
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
11
|
-
i0.ɵɵelementStart(0, "
|
|
11
|
+
i0.ɵɵelementStart(0, "div", 18);
|
|
12
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Conditional_10_For_2_Template_div_click_0_listener() { const rt_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onItemSelect(rt_r2)); });
|
|
13
|
+
i0.ɵɵelementStart(1, "span", 19);
|
|
12
14
|
i0.ɵɵtext(2);
|
|
13
|
-
i0.ɵɵelementStart(3, "button", 14);
|
|
14
|
-
i0.ɵɵlistener("click", function EditDashboardComponent_For_10_Template_button_click_3_listener() { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeItem(item_r2)); });
|
|
15
|
-
i0.ɵɵtext(4, "X");
|
|
16
15
|
i0.ɵɵelementEnd()();
|
|
17
|
-
i0.ɵɵelement(5, "kendo-tilelayout-item-body");
|
|
18
|
-
i0.ɵɵelementEnd();
|
|
19
16
|
} if (rf & 2) {
|
|
20
|
-
const
|
|
21
|
-
i0.ɵɵproperty("col", item_r2.col)("colSpan", item_r2.colSpan)("rowSpan", item_r2.rowSpan)("id", item_r2.uniqueId);
|
|
17
|
+
const rt_r2 = ctx.$implicit;
|
|
22
18
|
i0.ɵɵadvance(2);
|
|
23
|
-
i0.ɵɵ
|
|
19
|
+
i0.ɵɵtextInterpolate(rt_r2.DisplayName);
|
|
20
|
+
} }
|
|
21
|
+
function EditDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
23
|
+
i0.ɵɵrepeaterCreate(1, EditDashboardComponent_Conditional_10_For_2_Template, 3, 1, "div", 17, _forTrack1);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
27
|
+
i0.ɵɵadvance();
|
|
28
|
+
i0.ɵɵrepeater(ctx_r2.ResourceTypes);
|
|
29
|
+
} }
|
|
30
|
+
function EditDashboardComponent_For_13_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "span", 22);
|
|
33
|
+
i0.ɵɵtext(3);
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
i0.ɵɵelementStart(4, "button", 23);
|
|
36
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_For_13_Template_button_click_4_listener() { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeItem(item_r5)); });
|
|
37
|
+
i0.ɵɵelement(5, "span", 15);
|
|
38
|
+
i0.ɵɵelementEnd()();
|
|
39
|
+
i0.ɵɵelement(6, "div", 24);
|
|
40
|
+
i0.ɵɵelementEnd();
|
|
41
|
+
} if (rf & 2) {
|
|
42
|
+
const item_r5 = ctx.$implicit;
|
|
43
|
+
i0.ɵɵstyleProp("grid-column", item_r5.col + " / span " + item_r5.colSpan)("grid-row", "span " + item_r5.rowSpan);
|
|
44
|
+
i0.ɵɵproperty("id", item_r5.uniqueId);
|
|
45
|
+
i0.ɵɵadvance(3);
|
|
46
|
+
i0.ɵɵtextInterpolate(item_r5.title);
|
|
24
47
|
} }
|
|
25
48
|
export class EditDashboardComponent {
|
|
26
49
|
onSave = new EventEmitter();
|
|
@@ -31,10 +54,10 @@ export class EditDashboardComponent {
|
|
|
31
54
|
items = [];
|
|
32
55
|
_items = [];
|
|
33
56
|
itemsChanged = false;
|
|
57
|
+
showAddMenu = false;
|
|
34
58
|
get ResourceTypes() {
|
|
35
59
|
return SharedService.Instance.ResourceTypes.filter((rt) => rt.Name !== 'Dashboards' && rt.Name !== 'Records');
|
|
36
60
|
}
|
|
37
|
-
resourceType = null;
|
|
38
61
|
async ngOnInit() {
|
|
39
62
|
this._items = [];
|
|
40
63
|
for (const item of this.items) {
|
|
@@ -55,40 +78,42 @@ export class EditDashboardComponent {
|
|
|
55
78
|
}
|
|
56
79
|
return dashboardItem;
|
|
57
80
|
}
|
|
58
|
-
removeItem(
|
|
59
|
-
|
|
60
|
-
const index = this._items.indexOf(e);
|
|
81
|
+
removeItem(item) {
|
|
82
|
+
const index = this._items.indexOf(item);
|
|
61
83
|
if (index >= 0) {
|
|
62
84
|
this._items.splice(index, 1);
|
|
63
85
|
this.itemsChanged = true;
|
|
64
86
|
}
|
|
65
87
|
}
|
|
88
|
+
toggleAddMenu() {
|
|
89
|
+
this.showAddMenu = !this.showAddMenu;
|
|
90
|
+
}
|
|
66
91
|
onReorder(e) {
|
|
67
|
-
const item = this._items.find(i => i.uniqueId ===
|
|
92
|
+
const item = e.uniqueId != null ? this._items.find(i => i.uniqueId === e.uniqueId) : this._items[e.oldIndex];
|
|
68
93
|
if (item) {
|
|
69
|
-
// move the item in our config state to the new index
|
|
70
94
|
if (e.oldIndex !== e.newIndex) {
|
|
71
95
|
this._items.splice(e.oldIndex, 1);
|
|
72
96
|
this._items.splice(e.newIndex, 0, item);
|
|
73
97
|
}
|
|
74
|
-
|
|
75
|
-
item.
|
|
76
|
-
item.row = e.newRow ? e.newRow : item.row;
|
|
98
|
+
item.col = e.newCol ?? item.col;
|
|
99
|
+
item.row = e.newRow ?? item.row;
|
|
77
100
|
this.itemsChanged = true;
|
|
78
101
|
}
|
|
79
102
|
}
|
|
80
103
|
onResize(e) {
|
|
81
|
-
const item = this._items.find(i => i.uniqueId ===
|
|
104
|
+
const item = e.uniqueId != null ? this._items.find(i => i.uniqueId === e.uniqueId) : undefined;
|
|
82
105
|
if (item) {
|
|
83
106
|
item.colSpan = e.newColSpan;
|
|
84
107
|
item.rowSpan = e.newRowSpan;
|
|
85
108
|
this.itemsChanged = true;
|
|
86
109
|
}
|
|
87
110
|
}
|
|
88
|
-
closeDialog(
|
|
111
|
+
closeDialog() {
|
|
112
|
+
this.showAddMenu = false;
|
|
89
113
|
this.onClose.emit();
|
|
90
114
|
}
|
|
91
115
|
saveChanges() {
|
|
116
|
+
this.showAddMenu = false;
|
|
92
117
|
this.onSave.emit({
|
|
93
118
|
itemsChanged: this.itemsChanged,
|
|
94
119
|
items: this._items,
|
|
@@ -96,48 +121,51 @@ export class EditDashboardComponent {
|
|
|
96
121
|
});
|
|
97
122
|
}
|
|
98
123
|
onItemSelect(event) {
|
|
124
|
+
this.showAddMenu = false;
|
|
99
125
|
if (event.ID) {
|
|
100
126
|
this.triggerAddItem.emit(event);
|
|
101
127
|
}
|
|
102
128
|
}
|
|
103
129
|
static ɵfac = function EditDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EditDashboardComponent)(); };
|
|
104
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EditDashboardComponent, selectors: [["app-edit-dashboard"]], inputs: { editMode: "editMode", config: "config", items: "items" }, outputs: { onSave: "onSave", onClose: "onClose", triggerAddItem: "triggerAddItem" }, standalone: false, decls:
|
|
130
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EditDashboardComponent, selectors: [["app-edit-dashboard"]], inputs: { editMode: "editMode", config: "config", items: "items" }, outputs: { onSave: "onSave", onClose: "onClose", triggerAddItem: "triggerAddItem" }, standalone: false, decls: 22, vars: 11, consts: [[1, "edit-dashboard-overlay"], ["Title", "Customize Dashboard", 3, "Close", "Visible", "Width", "MinHeight", "MinWidth", "Resizable", "State"], [1, "custom-dialog-body"], [1, "dialog-content"], [1, "dialog-actions"], [1, "add-dropdown-wrapper"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-chevron-down", "add-dropdown-arrow"], [1, "add-dropdown-panel"], [1, "mj-tile-layout"], [1, "mj-tile-item", 3, "grid-column", "grid-row", "id"], [1, "dialog-footer"], [1, "dialog-footer-actions"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "fa-solid", "fa-check"], [1, "add-dropdown-item"], [1, "add-dropdown-item", 3, "click"], [1, "add-dropdown-item-text"], [1, "mj-tile-item", 3, "id"], [1, "mj-tile-header"], [1, "mj-tile-header-title"], ["mjButton", "", 1, "remove-item-btn", 3, "click"], [1, "mj-tile-body"]], template: function EditDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
105
131
|
i0.ɵɵelement(0, "div", 0);
|
|
106
|
-
i0.ɵɵelementStart(1, "
|
|
107
|
-
i0.ɵɵlistener("
|
|
108
|
-
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "
|
|
109
|
-
i0.ɵɵlistener("
|
|
110
|
-
i0.ɵɵelement(
|
|
111
|
-
i0.ɵɵtext(
|
|
132
|
+
i0.ɵɵelementStart(1, "mj-window", 1);
|
|
133
|
+
i0.ɵɵlistener("Close", function EditDashboardComponent_Template_mj_window_Close_1_listener() { return ctx.closeDialog(); });
|
|
134
|
+
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5)(6, "button", 6);
|
|
135
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Template_button_click_6_listener() { return ctx.toggleAddMenu(); });
|
|
136
|
+
i0.ɵɵelement(7, "span", 7);
|
|
137
|
+
i0.ɵɵtext(8, " Add item ");
|
|
138
|
+
i0.ɵɵelement(9, "span", 8);
|
|
139
|
+
i0.ɵɵelementEnd();
|
|
140
|
+
i0.ɵɵconditionalCreate(10, EditDashboardComponent_Conditional_10_Template, 3, 0, "div", 9);
|
|
112
141
|
i0.ɵɵelementEnd()();
|
|
113
|
-
i0.ɵɵelementStart(
|
|
114
|
-
i0.ɵɵ
|
|
115
|
-
i0.ɵɵrepeaterCreate(9, EditDashboardComponent_For_10_Template, 6, 5, "kendo-tilelayout-item", 8, i0.ɵɵrepeaterTrackByIdentity);
|
|
142
|
+
i0.ɵɵelementStart(11, "div", 10);
|
|
143
|
+
i0.ɵɵrepeaterCreate(12, EditDashboardComponent_For_13_Template, 7, 6, "div", 11, _forTrack0);
|
|
116
144
|
i0.ɵɵelementEnd()();
|
|
117
|
-
i0.ɵɵelementStart(
|
|
118
|
-
i0.ɵɵlistener("click", function
|
|
119
|
-
i0.ɵɵelement(
|
|
120
|
-
i0.ɵɵtext(
|
|
145
|
+
i0.ɵɵelementStart(14, "div", 12)(15, "div", 13)(16, "button", 14);
|
|
146
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Template_button_click_16_listener() { return ctx.closeDialog(); });
|
|
147
|
+
i0.ɵɵelement(17, "span", 15);
|
|
148
|
+
i0.ɵɵtext(18, " Cancel ");
|
|
121
149
|
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵelementStart(
|
|
123
|
-
i0.ɵɵlistener("click", function
|
|
124
|
-
i0.ɵɵelement(
|
|
125
|
-
i0.ɵɵtext(
|
|
150
|
+
i0.ɵɵelementStart(19, "button", 14);
|
|
151
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Template_button_click_19_listener() { return ctx.saveChanges(); });
|
|
152
|
+
i0.ɵɵelement(20, "span", 16);
|
|
153
|
+
i0.ɵɵtext(21, " Save ");
|
|
126
154
|
i0.ɵɵelementEnd()()()()();
|
|
127
155
|
} if (rf & 2) {
|
|
128
156
|
i0.ɵɵadvance();
|
|
129
|
-
i0.ɵɵproperty("
|
|
130
|
-
i0.ɵɵadvance(
|
|
131
|
-
i0.ɵɵ
|
|
132
|
-
i0.ɵɵadvance(
|
|
133
|
-
i0.ɵɵ
|
|
157
|
+
i0.ɵɵproperty("Visible", true)("Width", 500)("MinHeight", 300)("MinWidth", 400)("Resizable", true)("State", "maximized");
|
|
158
|
+
i0.ɵɵadvance(9);
|
|
159
|
+
i0.ɵɵconditional(ctx.showAddMenu ? 10 : -1);
|
|
160
|
+
i0.ɵɵadvance();
|
|
161
|
+
i0.ɵɵstyleProp("grid-template-columns", "repeat(" + ctx.config.columns + ", 1fr)")("grid-auto-rows", ctx.config.rowHeight + "px");
|
|
134
162
|
i0.ɵɵadvance();
|
|
135
163
|
i0.ɵɵrepeater(ctx._items);
|
|
136
|
-
} }, dependencies: [i1.
|
|
164
|
+
} }, dependencies: [i1.MJButtonDirective, i1.MJWindowComponent], styles: [".edit-dashboard-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.5));\n z-index: 999;\n}\n\n.custom-dialog-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n flex: 1;\n}\n\n.custom-dialog-body[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.dialog-content[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 12px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: auto;\n height: 40px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n padding: 8px 16px;\n}\n\n.dialog-footer-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 0;\n}\n\n\n\n.mj-tile-layout[_ngcontent-%COMP%] {\n display: grid;\n gap: 12px;\n background: var(--mj-bg-surface);\n}\n\n.mj-tile-item[_ngcontent-%COMP%] {\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n}\n\n.mj-tile-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n font-weight: 500;\n font-size: 14px;\n}\n\n.mj-tile-header-title[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.remove-item-btn[_ngcontent-%COMP%] {\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.mj-tile-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n background: var(--mj-bg-surface-sunken);\n}\n\n\n\n.add-dropdown-wrapper[_ngcontent-%COMP%] {\n position: relative;\n}\n\n.add-dropdown-arrow[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-left: 4px;\n}\n\n.add-dropdown-panel[_ngcontent-%COMP%] {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 200px;\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n z-index: 100;\n overflow: hidden;\n}\n\n.add-dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n padding: 10px 16px;\n cursor: pointer;\n transition: background-color 0.15s;\n}\n\n.add-dropdown-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.add-dropdown-item-text[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}"] });
|
|
137
165
|
}
|
|
138
166
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditDashboardComponent, [{
|
|
139
167
|
type: Component,
|
|
140
|
-
args: [{ standalone: false, selector: 'app-edit-dashboard', template: "<div class=\"
|
|
168
|
+
args: [{ standalone: false, selector: 'app-edit-dashboard', template: "<div class=\"edit-dashboard-overlay\"></div>\n<mj-window\n [Visible]=\"true\"\n [Width]=\"500\"\n [MinHeight]=\"300\"\n [MinWidth]=\"400\"\n [Resizable]=\"true\"\n (Close)=\"closeDialog()\"\n [State]=\"'maximized'\"\n Title=\"Customize Dashboard\">\n <div class=\"custom-dialog-body\">\n <div class=\"dialog-content\">\n <div class=\"dialog-actions\">\n <div class=\"add-dropdown-wrapper\">\n <button mjButton variant=\"primary\" (click)=\"toggleAddMenu()\">\n <span class=\"fa-solid fa-plus\"></span>\n Add item\n <span class=\"fa-solid fa-chevron-down add-dropdown-arrow\"></span>\n </button>\n @if (showAddMenu) {\n <div class=\"add-dropdown-panel\">\n @for (rt of ResourceTypes; track rt.Name) {\n <div class=\"add-dropdown-item\" (click)=\"onItemSelect(rt)\">\n <span class=\"add-dropdown-item-text\">{{ rt.DisplayName }}</span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <div class=\"mj-tile-layout\"\n [style.grid-template-columns]=\"'repeat(' + config.columns + ', 1fr)'\"\n [style.grid-auto-rows]=\"config.rowHeight + 'px'\">\n @for (item of _items; track item.uniqueId) {\n <div class=\"mj-tile-item\"\n [style.grid-column]=\"item.col + ' / span ' + item.colSpan\"\n [style.grid-row]=\"'span ' + item.rowSpan\"\n [id]=\"item.uniqueId\">\n <div class=\"mj-tile-header\">\n <span class=\"mj-tile-header-title\">{{item.title}}</span>\n <button mjButton class=\"remove-item-btn\" (click)=\"removeItem(item)\">\n <span class=\"fa-solid fa-xmark\"></span>\n </button>\n </div>\n <div class=\"mj-tile-body\">\n <!-- placeholder for resource preview -->\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"dialog-footer\">\n <div class=\"dialog-footer-actions\">\n <button mjButton (click)=\"closeDialog()\" >\n <span class=\"fa-solid fa-xmark\"></span>\n Cancel\n </button>\n <button mjButton (click)=\"saveChanges()\">\n <span class=\"fa-solid fa-check\"></span>\n Save\n </button>\n </div>\n </div>\n </div>\n</mj-window>\n", styles: [".edit-dashboard-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--mj-bg-overlay, rgba(0, 0, 0, 0.5));\n z-index: 999;\n}\n\n.custom-dialog-body {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n flex: 1;\n}\n\n.custom-dialog-body .dialog-content {\n flex: 1;\n overflow: auto;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.dialog-content .dialog-actions {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 12px;\n}\n\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: auto;\n height: 40px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface);\n padding: 8px 16px;\n}\n\n.dialog-footer-actions {\n display: flex;\n gap: 8px;\n padding: 0;\n}\n\n/* CSS Grid tile layout */\n.mj-tile-layout {\n display: grid;\n gap: 12px;\n background: var(--mj-bg-surface);\n}\n\n.mj-tile-item {\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n}\n\n.mj-tile-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 12px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n font-weight: 500;\n font-size: 14px;\n}\n\n.mj-tile-header-title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.remove-item-btn {\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.mj-tile-body {\n flex: 1;\n overflow: auto;\n background: var(--mj-bg-surface-sunken);\n}\n\n/* Dropdown menu for Add Item */\n.add-dropdown-wrapper {\n position: relative;\n}\n\n.add-dropdown-arrow {\n font-size: 12px;\n margin-left: 4px;\n}\n\n.add-dropdown-panel {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 200px;\n background: var(--mj-bg-surface-elevated);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n z-index: 100;\n overflow: hidden;\n}\n\n.add-dropdown-item {\n display: flex;\n flex-direction: column;\n padding: 10px 16px;\n cursor: pointer;\n transition: background-color 0.15s;\n}\n\n.add-dropdown-item:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.add-dropdown-item-text {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n"] }]
|
|
141
169
|
}], null, { onSave: [{
|
|
142
170
|
type: Output
|
|
143
171
|
}], onClose: [{
|
|
@@ -151,5 +179,5 @@ export class EditDashboardComponent {
|
|
|
151
179
|
}], items: [{
|
|
152
180
|
type: Input
|
|
153
181
|
}] }); })();
|
|
154
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditDashboardComponent, { className: "EditDashboardComponent", filePath: "src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.ts", lineNumber:
|
|
182
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditDashboardComponent, { className: "EditDashboardComponent", filePath: "src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.ts", lineNumber: 12 }); })();
|
|
155
183
|
//# sourceMappingURL=edit-dashboard.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-dashboard.component.js","sourceRoot":"","sources":["../../../../../src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.ts","../../../../../src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { TileLayoutReorderEvent, TileLayoutResizeEvent } from '@progress/kendo-angular-layout';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { DashboardConfigDetails, DashboardItem } from '../../single-dashboard.component';\n\n@Component({\n standalone: false,\n selector: 'app-edit-dashboard',\n templateUrl: './edit-dashboard.component.html',\n styleUrls: ['./edit-dashboard.component.css']\n})\nexport class EditDashboardComponent {\n @Output() onSave = new EventEmitter<any>();\n @Output() onClose = new EventEmitter<any>();\n @Output() triggerAddItem = new EventEmitter<any>();\n @Input() public editMode: boolean = false;\n @Input() public config: DashboardConfigDetails = new DashboardConfigDetails();\n @Input() public items: DashboardItem[] = [];\n public _items: DashboardItem[] = [];\n public itemsChanged: boolean = false;\n\n public get ResourceTypes(): any[] {\n return SharedService.Instance.ResourceTypes.filter((rt: any) => rt.Name !== 'Dashboards' && rt.Name !== 'Records');\n }\n public resourceType: any = null;\n\n async ngOnInit(): Promise<void> {\n this._items = [];\n for (const item of this.items) {\n const dashboardItem = this.CreateDashboardItem(item);\n this._items.push(dashboardItem);\n }\n }\n\n protected CreateDashboardItem(item: any): DashboardItem {\n const dashboardItem = new DashboardItem();\n if (item) {\n dashboardItem.title = item.title;\n dashboardItem.order = item.order ? item.order : 0;\n dashboardItem.col = item.col;\n dashboardItem.row = item.row;\n dashboardItem.rowSpan = item.rowSpan;\n dashboardItem.colSpan = item.colSpan;\n dashboardItem.ResourceData = new ResourceData(item.ResourceData); \n }\n return dashboardItem;\n }\n\n removeItem(e: any): void {\n // remove the selected item from the dashboard\n const index = this._items.indexOf(e);\n if (index >= 0) {\n this._items.splice(index, 1);\n this.itemsChanged = true;\n }\n }\n\n onReorder(e: TileLayoutReorderEvent): void {\n const item = this._items.find(i => i.uniqueId === parseInt(e.item.elem.nativeElement.id));\n if (item) {\n // move the item in our config state to the new index\n if (e.oldIndex !== e.newIndex) {\n this._items.splice(e.oldIndex, 1);\n this._items.splice(e.newIndex, 0, item); \n }\n //item.order = e.item.order;\n item.col = e.newCol ? e.newCol : item.col;\n item.row = e.newRow ? e.newRow : item.row;\n this.itemsChanged = true;\n }\n }\n \n onResize(e: TileLayoutResizeEvent): void {\n const item = this._items.find(i => i.uniqueId === parseInt(e.item.elem.nativeElement.id));\n if (item) {\n item.colSpan = e.newColSpan;\n item.rowSpan = e.newRowSpan;\n this.itemsChanged = true;\n }\n }\n\n closeDialog(event: any = null): void {\n this.onClose.emit();\n }\n\n saveChanges() {\n this.onSave.emit({\n itemsChanged: this.itemsChanged,\n items: this._items,\n config: this.config,\n });\n }\n\n onItemSelect(event: any) {\n if(event.ID){\n this.triggerAddItem.emit(event);\n }\n }\n}","<div class=\"k-overlay\"></div>\n<kendo-window\n class=\"kendo-window-hide-restore\"\n [width]=\"500\"\n [minHeight]=\"300\"\n [minWidth]=\"400\"\n [resizable]=\"true\"\n (close)=\"closeDialog($event)\"\n [state]=\"'maximized'\"\n title=\"Customize Dashboard\">\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full custom-dialog-body\">\n <div class=\"dialog-content \">\n <div class=\"dialog-actions\">\n <kendo-dropdownbutton class=\"k-m-2\" themeColor=\"primary\" [data]=\"ResourceTypes\" [textField]=\"'DisplayName'\" (itemClick)=\"onItemSelect($event)\">\n <span class=\"fa-solid fa-plus\"></span> Add item\n </kendo-dropdownbutton>\n </div>\n <kendo-tilelayout\n [columns]=\"config.columns\"\n [rowHeight]=\"config.rowHeight\"\n [resizable]=\"true\"\n [reorderable]=\"true\"\n (resize)=\"onResize($event)\"\n (reorder)=\"onReorder($event)\"\n >\n @for (item of _items; track item) {\n <kendo-tilelayout-item [col]=\"item.col\" [colSpan]=\"item.colSpan\" [rowSpan]=\"item.rowSpan\" [id]=\"item.uniqueId\">\n <kendo-tilelayout-item-header>\n {{item.title}}\n <button kendoButton class=\"k-float-right\" (click)=\"removeItem(item)\">X</button>\n </kendo-tilelayout-item-header>\n <kendo-tilelayout-item-body>\n <!-- <div class=\"overlay\"></div> -->\n <!-- <app-resource [Data]=\"item.ResourceData\" [isVisible]=\"false\"></app-resource> -->\n </kendo-tilelayout-item-body>\n </kendo-tilelayout-item>\n }\n </kendo-tilelayout>\n\n </div>\n <div class=\"dialog-footer\">\n <div class=\"k-card-footer !k-border-none\">\n <button kendoButton (click)=\"closeDialog($event)\" >\n <span class=\"fa-solid fa-xmark\"></span>\n Cancel\n </button>\n <button kendoButton (click)=\"saveChanges()\">\n <span class=\"fa-solid fa-check\"></span>\n Save\n </button>\n </div>\n </div>\n </div>\n</kendo-window>"]}
|
|
1
|
+
{"version":3,"file":"edit-dashboard.component.js","sourceRoot":"","sources":["../../../../../src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.ts","../../../../../src/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { SharedService } from '@memberjunction/ng-shared';\nimport { DashboardConfigDetails, DashboardItem } from '../../single-dashboard.component';\n\n@Component({\n standalone: false,\n selector: 'app-edit-dashboard',\n templateUrl: './edit-dashboard.component.html',\n styleUrls: ['./edit-dashboard.component.css']\n})\nexport class EditDashboardComponent {\n @Output() onSave = new EventEmitter<{ itemsChanged: boolean; items: DashboardItem[]; config: DashboardConfigDetails }>();\n @Output() onClose = new EventEmitter<void>();\n @Output() triggerAddItem = new EventEmitter<{ ID: string; DisplayName: string }>();\n @Input() public editMode: boolean = false;\n @Input() public config: DashboardConfigDetails = new DashboardConfigDetails();\n @Input() public items: DashboardItem[] = [];\n public _items: DashboardItem[] = [];\n public itemsChanged: boolean = false;\n public showAddMenu: boolean = false;\n\n public get ResourceTypes(): { ID: string; Name: string; DisplayName: string }[] {\n return SharedService.Instance.ResourceTypes.filter((rt: { Name: string }) => rt.Name !== 'Dashboards' && rt.Name !== 'Records');\n }\n\n async ngOnInit(): Promise<void> {\n this._items = [];\n for (const item of this.items) {\n const dashboardItem = this.CreateDashboardItem(item);\n this._items.push(dashboardItem);\n }\n }\n\n protected CreateDashboardItem(item: DashboardItem): DashboardItem {\n const dashboardItem = new DashboardItem();\n if (item) {\n dashboardItem.title = item.title;\n dashboardItem.order = item.order ? item.order : 0;\n dashboardItem.col = item.col;\n dashboardItem.row = item.row;\n dashboardItem.rowSpan = item.rowSpan;\n dashboardItem.colSpan = item.colSpan;\n dashboardItem.ResourceData = new ResourceData(item.ResourceData);\n }\n return dashboardItem;\n }\n\n removeItem(item: DashboardItem): void {\n const index = this._items.indexOf(item);\n if (index >= 0) {\n this._items.splice(index, 1);\n this.itemsChanged = true;\n }\n }\n\n toggleAddMenu(): void {\n this.showAddMenu = !this.showAddMenu;\n }\n\n onReorder(e: { oldIndex: number; newIndex: number; newCol?: number; newRow?: number; uniqueId?: number }): void {\n const item = e.uniqueId != null ? this._items.find(i => i.uniqueId === e.uniqueId) : this._items[e.oldIndex];\n if (item) {\n if (e.oldIndex !== e.newIndex) {\n this._items.splice(e.oldIndex, 1);\n this._items.splice(e.newIndex, 0, item);\n }\n item.col = e.newCol ?? item.col;\n item.row = e.newRow ?? item.row;\n this.itemsChanged = true;\n }\n }\n\n onResize(e: { newColSpan: number; newRowSpan: number; uniqueId?: number }): void {\n const item = e.uniqueId != null ? this._items.find(i => i.uniqueId === e.uniqueId) : undefined;\n if (item) {\n item.colSpan = e.newColSpan;\n item.rowSpan = e.newRowSpan;\n this.itemsChanged = true;\n }\n }\n\n closeDialog(): void {\n this.showAddMenu = false;\n this.onClose.emit();\n }\n\n saveChanges(): void {\n this.showAddMenu = false;\n this.onSave.emit({\n itemsChanged: this.itemsChanged,\n items: this._items,\n config: this.config,\n });\n }\n\n onItemSelect(event: { ID: string; DisplayName: string }): void {\n this.showAddMenu = false;\n if (event.ID) {\n this.triggerAddItem.emit(event);\n }\n }\n}","<div class=\"edit-dashboard-overlay\"></div>\n<mj-window\n [Visible]=\"true\"\n [Width]=\"500\"\n [MinHeight]=\"300\"\n [MinWidth]=\"400\"\n [Resizable]=\"true\"\n (Close)=\"closeDialog()\"\n [State]=\"'maximized'\"\n Title=\"Customize Dashboard\">\n <div class=\"custom-dialog-body\">\n <div class=\"dialog-content\">\n <div class=\"dialog-actions\">\n <div class=\"add-dropdown-wrapper\">\n <button mjButton variant=\"primary\" (click)=\"toggleAddMenu()\">\n <span class=\"fa-solid fa-plus\"></span>\n Add item\n <span class=\"fa-solid fa-chevron-down add-dropdown-arrow\"></span>\n </button>\n @if (showAddMenu) {\n <div class=\"add-dropdown-panel\">\n @for (rt of ResourceTypes; track rt.Name) {\n <div class=\"add-dropdown-item\" (click)=\"onItemSelect(rt)\">\n <span class=\"add-dropdown-item-text\">{{ rt.DisplayName }}</span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n <div class=\"mj-tile-layout\"\n [style.grid-template-columns]=\"'repeat(' + config.columns + ', 1fr)'\"\n [style.grid-auto-rows]=\"config.rowHeight + 'px'\">\n @for (item of _items; track item.uniqueId) {\n <div class=\"mj-tile-item\"\n [style.grid-column]=\"item.col + ' / span ' + item.colSpan\"\n [style.grid-row]=\"'span ' + item.rowSpan\"\n [id]=\"item.uniqueId\">\n <div class=\"mj-tile-header\">\n <span class=\"mj-tile-header-title\">{{item.title}}</span>\n <button mjButton class=\"remove-item-btn\" (click)=\"removeItem(item)\">\n <span class=\"fa-solid fa-xmark\"></span>\n </button>\n </div>\n <div class=\"mj-tile-body\">\n <!-- placeholder for resource preview -->\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"dialog-footer\">\n <div class=\"dialog-footer-actions\">\n <button mjButton (click)=\"closeDialog()\" >\n <span class=\"fa-solid fa-xmark\"></span>\n Cancel\n </button>\n <button mjButton (click)=\"saveChanges()\">\n <span class=\"fa-solid fa-check\"></span>\n Save\n </button>\n </div>\n </div>\n </div>\n</mj-window>\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { TileLayoutReorderEvent, TileLayoutResizeEvent } from "@progress/kendo-angular-layout";
|
|
3
2
|
import { ResourceData } from '@memberjunction/core-entities';
|
|
4
3
|
import { MJDashboardEntityExtended, MJResourceTypeEntity } from '@memberjunction/core-entities';
|
|
5
4
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
@@ -28,7 +27,6 @@ export declare class SingleDashboardComponent extends BaseDashboard implements O
|
|
|
28
27
|
selectedResource: MJResourceTypeEntity | null;
|
|
29
28
|
selectedDashboardItem: DashboardItem | null;
|
|
30
29
|
private saveChangesSubject;
|
|
31
|
-
private selectedComponent;
|
|
32
30
|
private editOnLoad;
|
|
33
31
|
private recentAccessService;
|
|
34
32
|
get contentLoading(): boolean;
|
|
@@ -57,11 +55,20 @@ export declare class SingleDashboardComponent extends BaseDashboard implements O
|
|
|
57
55
|
deleteDashboardItem(item: DashboardItem): Promise<void>;
|
|
58
56
|
getIsEditingItemBodyStyle(): string;
|
|
59
57
|
getIsEditingItemHeaderStyle(): string;
|
|
60
|
-
onReorder(e:
|
|
61
|
-
|
|
58
|
+
onReorder(e: {
|
|
59
|
+
oldIndex: number;
|
|
60
|
+
newIndex: number;
|
|
61
|
+
newCol?: number;
|
|
62
|
+
newRow?: number;
|
|
63
|
+
uniqueId?: number;
|
|
64
|
+
}): void;
|
|
65
|
+
onResize(e: {
|
|
66
|
+
newColSpan: number;
|
|
67
|
+
newRowSpan: number;
|
|
68
|
+
uniqueId?: number;
|
|
69
|
+
}): void;
|
|
62
70
|
onMouseEnter(e: MouseEvent): void;
|
|
63
71
|
onMouseOut(e: MouseEvent): void;
|
|
64
|
-
getSelectedComponentStyle(component: SingleDashboardComponent): string;
|
|
65
72
|
/**
|
|
66
73
|
* Get the appropriate icon for a resource type
|
|
67
74
|
* @param resourceType The type of resource
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-dashboard.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-dashboard/single-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAS,MAAM,EAAqB,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"single-dashboard.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-dashboard/single-dashboard.component.ts"],"names":[],"mappings":"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"}
|