@memberjunction/ng-explorer-core 0.9.2
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/lib/ask-skip/ask-skip.component.d.ts +83 -0
- package/dist/lib/ask-skip/ask-skip.component.js +591 -0
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +12 -0
- package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +49 -0
- package/dist/lib/auth-button/auth-button.component.d.ts +12 -0
- package/dist/lib/auth-button/auth-button.component.js +43 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +14 -0
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +55 -0
- package/dist/lib/data-browser-component/data-browser.component.d.ts +14 -0
- package/dist/lib/data-browser-component/data-browser.component.js +91 -0
- package/dist/lib/favorites/favorites.component.d.ts +13 -0
- package/dist/lib/favorites/favorites.component.js +100 -0
- package/dist/lib/generic/base-form-component.d.ts +76 -0
- package/dist/lib/generic/base-form-component.js +436 -0
- package/dist/lib/generic/base-form-section-component.d.ts +6 -0
- package/dist/lib/generic/base-form-section-component.js +10 -0
- package/dist/lib/generic/base-record-component.d.ts +6 -0
- package/dist/lib/generic/base-record-component.js +13 -0
- package/dist/lib/generic/base-resource-component.d.ts +34 -0
- package/dist/lib/generic/base-resource-component.js +75 -0
- package/dist/lib/generic/dynamic-chart.d.ts +26 -0
- package/dist/lib/generic/dynamic-chart.js +180 -0
- package/dist/lib/generic/dynamic-grid.d.ts +24 -0
- package/dist/lib/generic/dynamic-grid.js +135 -0
- package/dist/lib/generic/dynamic-report.d.ts +38 -0
- package/dist/lib/generic/dynamic-report.js +399 -0
- package/dist/lib/generic/form-toolbar.d.ts +7 -0
- package/dist/lib/generic/form-toolbar.js +98 -0
- package/dist/lib/generic/resource-container-component.d.ts +25 -0
- package/dist/lib/generic/resource-container-component.js +103 -0
- package/dist/lib/generic/section-loader-component.d.ts +17 -0
- package/dist/lib/generic/section-loader-component.js +65 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +16 -0
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +91 -0
- package/dist/lib/guards/auth-guard.service.d.ts +11 -0
- package/dist/lib/guards/auth-guard.service.js +24 -0
- package/dist/lib/guards/entities.guard.d.ts +3 -0
- package/dist/lib/guards/entities.guard.js +38 -0
- package/dist/lib/header/MSFT_UserImageService.d.ts +11 -0
- package/dist/lib/header/MSFT_UserImageService.js +23 -0
- package/dist/lib/header/header.component.d.ts +51 -0
- package/dist/lib/header/header.component.js +208 -0
- package/dist/lib/home-component/home.component.d.ts +9 -0
- package/dist/lib/home-component/home.component.js +54 -0
- package/dist/lib/join-grid/join-grid.component.d.ts +30 -0
- package/dist/lib/join-grid/join-grid.component.js +225 -0
- package/dist/lib/navigation/navigation.component.d.ts +102 -0
- package/dist/lib/navigation/navigation.component.js +970 -0
- package/dist/lib/report-browser-component/report-browser.component.d.ts +14 -0
- package/dist/lib/report-browser-component/report-browser.component.js +55 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +49 -0
- package/dist/lib/resource-wrappers/record-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/record-resource.component.js +55 -0
- package/dist/lib/resource-wrappers/report-resource.component.d.ts +10 -0
- package/dist/lib/resource-wrappers/report-resource.component.js +53 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts +1 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js +12 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +10 -0
- package/dist/lib/resource-wrappers/search-results-resource.component.js +50 -0
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +8 -0
- package/dist/lib/resource-wrappers/view-resource.component.js +51 -0
- package/dist/lib/settings/settings.component.d.ts +5 -0
- package/dist/lib/settings/settings.component.js +14 -0
- package/dist/lib/shared/shared.service.d.ts +87 -0
- package/dist/lib/shared/shared.service.js +302 -0
- package/dist/lib/shared/urlPipe.d.ts +7 -0
- package/dist/lib/shared/urlPipe.js +16 -0
- package/dist/lib/single-application/single-application.component.d.ts +21 -0
- package/dist/lib/single-application/single-application.component.js +132 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +28 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +212 -0
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +26 -0
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +169 -0
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts +55 -0
- package/dist/lib/single-dashboard/single-dashboard.component.js +266 -0
- package/dist/lib/single-entity/single-entity.component.d.ts +33 -0
- package/dist/lib/single-entity/single-entity.component.js +252 -0
- package/dist/lib/single-record/single-record.component.d.ts +20 -0
- package/dist/lib/single-record/single-record.component.js +95 -0
- package/dist/lib/single-report/single-report.component.d.ts +22 -0
- package/dist/lib/single-report/single-report.component.js +87 -0
- package/dist/lib/single-search-result/single-search-result.component.d.ts +15 -0
- package/dist/lib/single-search-result/single-search-result.component.js +60 -0
- package/dist/lib/single-view/single-view.component.d.ts +34 -0
- package/dist/lib/single-view/single-view.component.js +154 -0
- package/dist/lib/user-notifications/user-notifications.component.d.ts +32 -0
- package/dist/lib/user-notifications/user-notifications.component.js +282 -0
- package/dist/lib/user-profile/user-profile.component.d.ts +10 -0
- package/dist/lib/user-profile/user-profile.component.js +41 -0
- package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts +70 -0
- package/dist/lib/user-view-properties/view-properties-dialog.component.js +568 -0
- package/dist/module.d.ts +64 -0
- package/dist/module.js +332 -0
- package/dist/public-api.d.ts +47 -0
- package/dist/public-api.js +50 -0
- package/package.json +39 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
11
|
+
import { Metadata, RunView } from '@memberjunction/core';
|
|
12
|
+
import { ViewInfo } from '@memberjunction/core-entities';
|
|
13
|
+
import { ResourceData } from '../../../generic/base-resource-component';
|
|
14
|
+
import { SharedService } from '../../../shared/shared.service';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/common";
|
|
17
|
+
import * as i2 from "@angular/forms";
|
|
18
|
+
import * as i3 from "@progress/kendo-angular-dialog";
|
|
19
|
+
import * as i4 from "@progress/kendo-angular-buttons";
|
|
20
|
+
import * as i5 from "@progress/kendo-angular-indicators";
|
|
21
|
+
import * as i6 from "@progress/kendo-angular-label";
|
|
22
|
+
import * as i7 from "@progress/kendo-angular-dropdowns";
|
|
23
|
+
function AddItemComponent_ng_container_7_kendo_label_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
25
|
+
i0.ɵɵelementStart(0, "kendo-label", 14);
|
|
26
|
+
i0.ɵɵelement(1, "br");
|
|
27
|
+
i0.ɵɵelementStart(2, "kendo-dropdownlist", 11);
|
|
28
|
+
i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r4.onViewChange($event)); })("ngModelChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r6.selectedView = $event); });
|
|
29
|
+
i0.ɵɵelementEnd()();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
32
|
+
i0.ɵɵadvance(2);
|
|
33
|
+
i0.ɵɵproperty("data", ctx_r2.Views)("textField", "Name")("valueField", "ID")("ngModel", ctx_r2.selectedView);
|
|
34
|
+
} }
|
|
35
|
+
function AddItemComponent_ng_container_7_kendo_loader_5_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelement(0, "kendo-loader", 15);
|
|
37
|
+
} }
|
|
38
|
+
function AddItemComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
40
|
+
i0.ɵɵelementContainerStart(0);
|
|
41
|
+
i0.ɵɵelementStart(1, "kendo-label", 10);
|
|
42
|
+
i0.ɵɵelement(2, "br");
|
|
43
|
+
i0.ɵɵelementStart(3, "kendo-dropdownlist", 11);
|
|
44
|
+
i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onEntityChange($event)); })("ngModelChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.selectedEntity = $event); });
|
|
45
|
+
i0.ɵɵelementEnd()();
|
|
46
|
+
i0.ɵɵtemplate(4, AddItemComponent_ng_container_7_kendo_label_4_Template, 3, 4, "kendo-label", 12);
|
|
47
|
+
i0.ɵɵtemplate(5, AddItemComponent_ng_container_7_kendo_loader_5_Template, 1, 0, "kendo-loader", 13);
|
|
48
|
+
i0.ɵɵelementContainerEnd();
|
|
49
|
+
} if (rf & 2) {
|
|
50
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
51
|
+
i0.ɵɵadvance(3);
|
|
52
|
+
i0.ɵɵproperty("data", ctx_r0.Entities)("textField", "Name")("valueField", "ID")("ngModel", ctx_r0.selectedEntity);
|
|
53
|
+
i0.ɵɵadvance(1);
|
|
54
|
+
i0.ɵɵproperty("ngIf", ctx_r0.selectedEntity && ctx_r0.Views.length);
|
|
55
|
+
i0.ɵɵadvance(1);
|
|
56
|
+
i0.ɵɵproperty("ngIf", ctx_r0.selectedEntity && !ctx_r0.Views.length);
|
|
57
|
+
} }
|
|
58
|
+
function AddItemComponent_ng_container_8_kendo_label_1_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
60
|
+
i0.ɵɵelementStart(0, "kendo-label", 17);
|
|
61
|
+
i0.ɵɵelement(1, "br");
|
|
62
|
+
i0.ɵɵelementStart(2, "kendo-dropdownlist", 11);
|
|
63
|
+
i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.onViewChange($event)); })("ngModelChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.selectedReport = $event); });
|
|
64
|
+
i0.ɵɵelementEnd()();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
67
|
+
i0.ɵɵadvance(2);
|
|
68
|
+
i0.ɵɵproperty("data", ctx_r10.Reports)("textField", "Name")("valueField", "ID")("ngModel", ctx_r10.selectedReport);
|
|
69
|
+
} }
|
|
70
|
+
function AddItemComponent_ng_container_8_kendo_loader_2_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelement(0, "kendo-loader", 15);
|
|
72
|
+
} }
|
|
73
|
+
function AddItemComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
i0.ɵɵelementContainerStart(0);
|
|
75
|
+
i0.ɵɵtemplate(1, AddItemComponent_ng_container_8_kendo_label_1_Template, 3, 4, "kendo-label", 16);
|
|
76
|
+
i0.ɵɵtemplate(2, AddItemComponent_ng_container_8_kendo_loader_2_Template, 1, 0, "kendo-loader", 13);
|
|
77
|
+
i0.ɵɵelementContainerEnd();
|
|
78
|
+
} if (rf & 2) {
|
|
79
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
80
|
+
i0.ɵɵadvance(1);
|
|
81
|
+
i0.ɵɵproperty("ngIf", ctx_r1.Reports.length);
|
|
82
|
+
i0.ɵɵadvance(1);
|
|
83
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.Reports.length);
|
|
84
|
+
} }
|
|
85
|
+
export class AddItemComponent {
|
|
86
|
+
get ResourceTypes() {
|
|
87
|
+
return SharedService.Instance.ResourceTypes.filter((rt) => rt.Name !== 'Dashboards' && rt.Name !== 'Records');
|
|
88
|
+
}
|
|
89
|
+
constructor() {
|
|
90
|
+
this.onClose = new EventEmitter();
|
|
91
|
+
this.showloader = false;
|
|
92
|
+
this.resourceType = null;
|
|
93
|
+
this.selectedEntity = null;
|
|
94
|
+
this.selectedView = null;
|
|
95
|
+
this.selectedReport = null;
|
|
96
|
+
this.Entities = [];
|
|
97
|
+
this.Views = [];
|
|
98
|
+
this.Reports = [];
|
|
99
|
+
this.md = new Metadata();
|
|
100
|
+
}
|
|
101
|
+
ngOnInit() {
|
|
102
|
+
this.resourceType = this.selectedResource || SharedService.Instance.ViewResourceType;
|
|
103
|
+
this.onResourceTypeChange(this.resourceType);
|
|
104
|
+
this.Entities = this.md.Entities;
|
|
105
|
+
}
|
|
106
|
+
onResourceTypeChange(event) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
this.resourceType = event;
|
|
109
|
+
this.selectedEntity = null;
|
|
110
|
+
if (this.resourceType.Name === 'Reports') {
|
|
111
|
+
this.getReports();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
getViews() {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
if (!this.selectedEntity)
|
|
118
|
+
return;
|
|
119
|
+
this.showloader = true;
|
|
120
|
+
this.Views = yield ViewInfo.GetViewsForUser(this.selectedEntity.ID);
|
|
121
|
+
this.showloader = false;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
getReports() {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
if (!this.resourceType)
|
|
127
|
+
return;
|
|
128
|
+
this.showloader = true;
|
|
129
|
+
this.selectedReport = null;
|
|
130
|
+
const rv = new RunView();
|
|
131
|
+
const reports = yield rv.RunView({ EntityName: this.resourceType.Entity, ExtraFilter: 'UserID=' + this.md.CurrentUser.ID });
|
|
132
|
+
if (reports.Success) {
|
|
133
|
+
this.Reports = reports.Results;
|
|
134
|
+
}
|
|
135
|
+
this.showloader = false;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
onEntityChange(event) {
|
|
139
|
+
this.selectedEntity = event;
|
|
140
|
+
this.selectedView = null;
|
|
141
|
+
this.selectedReport = null;
|
|
142
|
+
this.getViews();
|
|
143
|
+
}
|
|
144
|
+
onViewChange(event) {
|
|
145
|
+
this.selectedEntity = event.ID;
|
|
146
|
+
}
|
|
147
|
+
addItem() {
|
|
148
|
+
var _a, _b, _c, _d;
|
|
149
|
+
if (!this.selectedReport && !this.selectedView)
|
|
150
|
+
return;
|
|
151
|
+
const name = ((_a = this.selectedReport) === null || _a === void 0 ? void 0 : _a.Name) || ((_b = this.selectedView) === null || _b === void 0 ? void 0 : _b.Name);
|
|
152
|
+
const id = ((_c = this.selectedReport) === null || _c === void 0 ? void 0 : _c.ID) || ((_d = this.selectedView) === null || _d === void 0 ? void 0 : _d.ID);
|
|
153
|
+
const dashboardItem = {
|
|
154
|
+
title: name ? name : 'New Item - ' + id,
|
|
155
|
+
col: 1,
|
|
156
|
+
rowSpan: 3,
|
|
157
|
+
colSpan: 1,
|
|
158
|
+
ResourceData: new ResourceData({
|
|
159
|
+
Name: '',
|
|
160
|
+
ResourceTypeID: this.resourceType.ID,
|
|
161
|
+
ResourceRecordID: id,
|
|
162
|
+
Configuration: {}
|
|
163
|
+
}),
|
|
164
|
+
};
|
|
165
|
+
this.onClose.emit(dashboardItem);
|
|
166
|
+
}
|
|
167
|
+
closeDialog() {
|
|
168
|
+
this.onClose.emit();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
AddItemComponent.ɵfac = function AddItemComponent_Factory(t) { return new (t || AddItemComponent)(); };
|
|
172
|
+
AddItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddItemComponent, selectors: [["app-add-item-dialog"]], inputs: { selectedResource: "selectedResource" }, outputs: { onClose: "onClose" }, decls: 14, vars: 12, consts: [[1, "k-overlay"], ["title", "Add Item to Dashboard", 1, "modal-body-wrap", 3, "width", "minHeight", "minWidth", "resizable", "close"], [1, "k-d-flex", "k-flex-col", "resource-wrap"], ["text", "Resource Type"], [3, "data", "textField", "valueField", "subtitle", "ngModel", "valueChange", "ngModelChange"], [1, "user-view-wrap", 3, "ngSwitch"], [4, "ngSwitchCase"], [1, "k-actions", "k-actions-end", "popup-actions"], ["kendoButton", "", "icon", "save", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"], ["text", "Entity"], [3, "data", "textField", "valueField", "ngModel", "valueChange", "ngModelChange"], ["text", "Views", 4, "ngIf"], ["type", "converging-spinner", 4, "ngIf"], ["text", "Views"], ["type", "converging-spinner"], ["text", "Reports", 4, "ngIf"], ["text", "Reports"]], template: function AddItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
+
i0.ɵɵelement(0, "div", 0);
|
|
174
|
+
i0.ɵɵelementStart(1, "kendo-window", 1);
|
|
175
|
+
i0.ɵɵlistener("close", function AddItemComponent_Template_kendo_window_close_1_listener() { return ctx.closeDialog(); });
|
|
176
|
+
i0.ɵɵelementStart(2, "div", 2)(3, "kendo-label", 3);
|
|
177
|
+
i0.ɵɵelement(4, "br");
|
|
178
|
+
i0.ɵɵelementStart(5, "kendo-dropdownlist", 4);
|
|
179
|
+
i0.ɵɵlistener("valueChange", function AddItemComponent_Template_kendo_dropdownlist_valueChange_5_listener($event) { return ctx.onResourceTypeChange($event); })("ngModelChange", function AddItemComponent_Template_kendo_dropdownlist_ngModelChange_5_listener($event) { return ctx.resourceType = $event; });
|
|
180
|
+
i0.ɵɵelementEnd()();
|
|
181
|
+
i0.ɵɵelementStart(6, "div", 5);
|
|
182
|
+
i0.ɵɵtemplate(7, AddItemComponent_ng_container_7_Template, 6, 6, "ng-container", 6);
|
|
183
|
+
i0.ɵɵtemplate(8, AddItemComponent_ng_container_8_Template, 3, 2, "ng-container", 6);
|
|
184
|
+
i0.ɵɵelementEnd()();
|
|
185
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
|
|
186
|
+
i0.ɵɵlistener("click", function AddItemComponent_Template_button_click_10_listener() { return ctx.addItem(); });
|
|
187
|
+
i0.ɵɵtext(11, " Add ");
|
|
188
|
+
i0.ɵɵelementEnd();
|
|
189
|
+
i0.ɵɵelementStart(12, "button", 9);
|
|
190
|
+
i0.ɵɵlistener("click", function AddItemComponent_Template_button_click_12_listener() { return ctx.closeDialog(); });
|
|
191
|
+
i0.ɵɵtext(13, "Cancel");
|
|
192
|
+
i0.ɵɵelementEnd()()();
|
|
193
|
+
} if (rf & 2) {
|
|
194
|
+
i0.ɵɵadvance(1);
|
|
195
|
+
i0.ɵɵproperty("width", 500)("minHeight", 300)("minWidth", 400)("resizable", true);
|
|
196
|
+
i0.ɵɵadvance(4);
|
|
197
|
+
i0.ɵɵproperty("data", ctx.ResourceTypes)("textField", "DisplayName")("valueField", "ID")("subtitle", "sdfsdf")("ngModel", ctx.resourceType);
|
|
198
|
+
i0.ɵɵadvance(1);
|
|
199
|
+
i0.ɵɵproperty("ngSwitch", ctx.resourceType.Entity);
|
|
200
|
+
i0.ɵɵadvance(1);
|
|
201
|
+
i0.ɵɵproperty("ngSwitchCase", "User Views");
|
|
202
|
+
i0.ɵɵadvance(1);
|
|
203
|
+
i0.ɵɵproperty("ngSwitchCase", "Reports");
|
|
204
|
+
} }, dependencies: [i1.NgIf, i1.NgSwitch, i1.NgSwitchCase, i2.NgControlStatus, i2.NgModel, i3.WindowComponent, i4.Button, i5.LoaderComponent, i6.LabelComponent, i7.DropDownListComponent], styles: [".popup-actions[_ngcontent-%COMP%] {\r\n width: 100%;\r\n padding: 10px;\r\n border-top: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n .modal-body-wrap .k-window-content {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n flex: 1;\r\n padding: 0;\r\n }\r\n .resource-wrap[_ngcontent-%COMP%] {\r\n flex: 1;\r\n padding: 24px;\r\n margin: 16px;\r\n border-radius: 4px;\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n }\r\n .user-view-wrap[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n }\r\n .resource-wrap .k-label {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n .resource-wrap .k-dropdownlist {\r\n border-radius: 4px;\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n background: transparent;\r\n line-height: 32px;\r\n margin: 0;\r\n }"] });
|
|
205
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddItemComponent, [{
|
|
206
|
+
type: Component,
|
|
207
|
+
args: [{ selector: 'app-add-item-dialog', template: "<div class=\"k-overlay\"></div>\r\n<kendo-window class=\"modal-body-wrap\" [width]=\"500\" [minHeight]=\"300\" [minWidth]=\"400\" [resizable]=\"true\" (close)=\"closeDialog()\"\r\n title=\"Add Item to Dashboard\">\r\n <div class=\"k-d-flex k-flex-col resource-wrap\">\r\n <kendo-label text=\"Resource Type\">\r\n <br />\r\n <kendo-dropdownlist [data]=\"ResourceTypes\" [textField]=\"'DisplayName'\" [valueField]=\"'ID'\" [subtitle]=\"'sdfsdf'\"\r\n (valueChange)=\"onResourceTypeChange($event)\" [(ngModel)]=\"resourceType\">\r\n </kendo-dropdownlist>\r\n </kendo-label>\r\n <div [ngSwitch]=\"resourceType.Entity \" class=\"user-view-wrap\">\r\n <ng-container *ngSwitchCase=\"'User Views'\">\r\n <kendo-label text=\"Entity\">\r\n <br />\r\n <kendo-dropdownlist [data]=\"Entities\" [textField]=\"'Name'\" [valueField]=\"'ID'\"\r\n (valueChange)=\"onEntityChange($event)\" [(ngModel)]=\"selectedEntity\">\r\n </kendo-dropdownlist>\r\n </kendo-label>\r\n <kendo-label text=\"Views\" *ngIf=\"selectedEntity && Views.length\">\r\n <br />\r\n <kendo-dropdownlist [data]=\"Views\" [textField]=\"'Name'\" [valueField]=\"'ID'\"\r\n (valueChange)=\"onViewChange($event)\" [(ngModel)]=\"selectedView\">\r\n </kendo-dropdownlist>\r\n </kendo-label>\r\n <kendo-loader *ngIf=\"selectedEntity && !Views.length\" type=\"converging-spinner\"></kendo-loader>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Reports'\">\r\n <kendo-label text=\"Reports\" *ngIf=\"Reports.length\">\r\n <br />\r\n <kendo-dropdownlist [data]=\"Reports\" [textField]=\"'Name'\" [valueField]=\"'ID'\"\r\n (valueChange)=\"onViewChange($event)\" [(ngModel)]=\"selectedReport\">\r\n </kendo-dropdownlist>\r\n </kendo-label>\r\n <kendo-loader *ngIf=\"!Reports.length\" type=\"converging-spinner\"></kendo-loader>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"k-actions k-actions-end popup-actions\">\r\n <button kendoButton icon=\"save\" themeColor=\"primary\" (click)=\"addItem()\">\r\n Add\r\n </button>\r\n <button kendoButton (click)=\"closeDialog()\">Cancel</button>\r\n </div>\r\n</kendo-window>", styles: [".popup-actions {\r\n width: 100%;\r\n padding: 10px;\r\n border-top: 1px solid rgba(0, 0, 0, 0.08);\r\n }\r\n ::ng-deep .modal-body-wrap .k-window-content {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n flex: 1;\r\n padding: 0;\r\n }\r\n .resource-wrap {\r\n flex: 1;\r\n padding: 24px;\r\n margin: 16px;\r\n border-radius: 4px;\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n }\r\n .user-view-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n }\r\n ::ng-deep .resource-wrap .k-label {\r\n color: #424242;\r\n font-size: 14px;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 20px;\r\n }\r\n ::ng-deep .resource-wrap .k-dropdownlist {\r\n border-radius: 4px;\r\n border: 1px solid rgba(0, 0, 0, 0.08);\r\n background: transparent;\r\n line-height: 32px;\r\n margin: 0;\r\n }\r\n "] }]
|
|
208
|
+
}], function () { return []; }, { onClose: [{
|
|
209
|
+
type: Output
|
|
210
|
+
}], selectedResource: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}] }); })();
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { TileLayoutReorderEvent, TileLayoutResizeEvent } from '@progress/kendo-angular-layout';
|
|
3
|
+
import { DashboardConfigDetails, DashboardItem } from '../../single-dashboard.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class EditDashboardComponent {
|
|
6
|
+
onSave: EventEmitter<any>;
|
|
7
|
+
onClose: EventEmitter<any>;
|
|
8
|
+
triggerAddItem: EventEmitter<any>;
|
|
9
|
+
editMode: boolean;
|
|
10
|
+
config: DashboardConfigDetails;
|
|
11
|
+
items: DashboardItem[];
|
|
12
|
+
_items: DashboardItem[];
|
|
13
|
+
itemsChanged: boolean;
|
|
14
|
+
get ResourceTypes(): any[];
|
|
15
|
+
resourceType: any;
|
|
16
|
+
ngOnInit(): Promise<void>;
|
|
17
|
+
protected CreateDashboardItem(item: any): DashboardItem;
|
|
18
|
+
removeItem(e: any): void;
|
|
19
|
+
onReorder(e: TileLayoutReorderEvent): void;
|
|
20
|
+
onResize(e: TileLayoutResizeEvent): void;
|
|
21
|
+
closeDialog(event?: any): void;
|
|
22
|
+
saveChanges(): void;
|
|
23
|
+
onItemSelect(event: any): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EditDashboardComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EditDashboardComponent, "app-edit-dashboard", never, { "editMode": "editMode"; "config": "config"; "items": "items"; }, { "onSave": "onSave"; "onClose": "onClose"; "triggerAddItem": "triggerAddItem"; }, never, never, false, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
11
|
+
import { ResourceData } from '../../../generic/base-resource-component';
|
|
12
|
+
import { SharedService } from '../../../shared/shared.service';
|
|
13
|
+
import { DashboardConfigDetails, DashboardItem } from '../../single-dashboard.component';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@angular/common";
|
|
16
|
+
import * as i2 from "@progress/kendo-angular-dialog";
|
|
17
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
18
|
+
import * as i4 from "@progress/kendo-angular-layout";
|
|
19
|
+
function EditDashboardComponent_kendo_tilelayout_item_9_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
21
|
+
i0.ɵɵelementStart(0, "kendo-tilelayout-item", 15)(1, "kendo-tilelayout-item-header");
|
|
22
|
+
i0.ɵɵtext(2);
|
|
23
|
+
i0.ɵɵelementStart(3, "kendo-button", 16);
|
|
24
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_kendo_tilelayout_item_9_Template_kendo_button_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r3); const item_r1 = restoredCtx.$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeItem(item_r1)); });
|
|
25
|
+
i0.ɵɵtext(4, "X");
|
|
26
|
+
i0.ɵɵelementEnd()();
|
|
27
|
+
i0.ɵɵelement(5, "kendo-tilelayout-item-body");
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const item_r1 = ctx.$implicit;
|
|
31
|
+
i0.ɵɵproperty("col", item_r1.col)("colSpan", item_r1.colSpan)("rowSpan", item_r1.rowSpan)("id", item_r1.uniqueId);
|
|
32
|
+
i0.ɵɵadvance(2);
|
|
33
|
+
i0.ɵɵtextInterpolate1(" ", item_r1.title, " ");
|
|
34
|
+
} }
|
|
35
|
+
export class EditDashboardComponent {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.onSave = new EventEmitter();
|
|
38
|
+
this.onClose = new EventEmitter();
|
|
39
|
+
this.triggerAddItem = new EventEmitter();
|
|
40
|
+
this.editMode = false;
|
|
41
|
+
this.config = new DashboardConfigDetails();
|
|
42
|
+
this.items = [];
|
|
43
|
+
this._items = [];
|
|
44
|
+
this.itemsChanged = false;
|
|
45
|
+
this.resourceType = null;
|
|
46
|
+
}
|
|
47
|
+
get ResourceTypes() {
|
|
48
|
+
return SharedService.Instance.ResourceTypes.filter((rt) => rt.Name !== 'Dashboards' && rt.Name !== 'Records');
|
|
49
|
+
}
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
this._items = [];
|
|
53
|
+
for (const item of this.items) {
|
|
54
|
+
const dashboardItem = this.CreateDashboardItem(item);
|
|
55
|
+
this._items.push(dashboardItem);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
CreateDashboardItem(item) {
|
|
60
|
+
const dashboardItem = new DashboardItem();
|
|
61
|
+
if (item) {
|
|
62
|
+
dashboardItem.title = item.title;
|
|
63
|
+
dashboardItem.order = item.order ? item.order : 0;
|
|
64
|
+
dashboardItem.col = item.col;
|
|
65
|
+
dashboardItem.row = item.row;
|
|
66
|
+
dashboardItem.rowSpan = item.rowSpan;
|
|
67
|
+
dashboardItem.colSpan = item.colSpan;
|
|
68
|
+
dashboardItem.ResourceData = new ResourceData(item.ResourceData);
|
|
69
|
+
}
|
|
70
|
+
return dashboardItem;
|
|
71
|
+
}
|
|
72
|
+
removeItem(e) {
|
|
73
|
+
// remove the selected item from the dashboard
|
|
74
|
+
const index = this._items.indexOf(e);
|
|
75
|
+
if (index >= 0) {
|
|
76
|
+
this._items.splice(index, 1);
|
|
77
|
+
this.itemsChanged = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
onReorder(e) {
|
|
81
|
+
const item = this._items.find(i => i.uniqueId === parseInt(e.item.elem.nativeElement.id));
|
|
82
|
+
if (item) {
|
|
83
|
+
// move the item in our config state to the new index
|
|
84
|
+
if (e.oldIndex !== e.newIndex) {
|
|
85
|
+
this._items.splice(e.oldIndex, 1);
|
|
86
|
+
this._items.splice(e.newIndex, 0, item);
|
|
87
|
+
}
|
|
88
|
+
//item.order = e.item.order;
|
|
89
|
+
item.col = e.newCol ? e.newCol : item.col;
|
|
90
|
+
item.row = e.newRow ? e.newRow : item.row;
|
|
91
|
+
this.itemsChanged = true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
onResize(e) {
|
|
95
|
+
const item = this._items.find(i => i.uniqueId === parseInt(e.item.elem.nativeElement.id));
|
|
96
|
+
if (item) {
|
|
97
|
+
item.colSpan = e.newColSpan;
|
|
98
|
+
item.rowSpan = e.newRowSpan;
|
|
99
|
+
this.itemsChanged = true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
closeDialog(event = null) {
|
|
103
|
+
this.onClose.emit();
|
|
104
|
+
}
|
|
105
|
+
saveChanges() {
|
|
106
|
+
this.onSave.emit({
|
|
107
|
+
itemsChanged: this.itemsChanged,
|
|
108
|
+
items: this._items,
|
|
109
|
+
config: this.config,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
onItemSelect(event) {
|
|
113
|
+
if (event.ID) {
|
|
114
|
+
this.triggerAddItem.emit(event);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
EditDashboardComponent.ɵfac = function EditDashboardComponent_Factory(t) { return new (t || EditDashboardComponent)(); };
|
|
119
|
+
EditDashboardComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EditDashboardComponent, selectors: [["app-edit-dashboard"]], inputs: { editMode: "editMode", config: "config", items: "items" }, outputs: { onSave: "onSave", onClose: "onClose", triggerAddItem: "triggerAddItem" }, decls: 18, vars: 13, consts: [[1, "k-overlay"], ["title", "Customize Dashboard", 1, "kendo-window-hide-restore", 3, "width", "minHeight", "minWidth", "resizable", "state", "close"], [1, "k-d-flex", "k-flex-col", "k-justify-content-between", "k-h-full", "custom-dialog-body"], [1, "dialog-content"], [1, "dialog-actions"], ["themeColor", "primary", 1, "k-m-2", 3, "data", "textField", "itemClick"], [1, "k-icon", "k-i-plus"], [3, "columns", "rowHeight", "resizable", "reorderable", "resize", "reorder"], [3, "col", "colSpan", "rowSpan", "id", 4, "ngFor", "ngForOf"], [1, "dialog-footer"], [1, "k-card-footer", "!k-border-none"], [3, "click"], [1, "k-icon", "k-i-close"], [3, "primary", "click"], [1, "k-icon", "k-i-check"], [3, "col", "colSpan", "rowSpan", "id"], [1, "k-float-right", 3, "click"]], template: function EditDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
120
|
+
i0.ɵɵelement(0, "div", 0);
|
|
121
|
+
i0.ɵɵelementStart(1, "kendo-window", 1);
|
|
122
|
+
i0.ɵɵlistener("close", function EditDashboardComponent_Template_kendo_window_close_1_listener($event) { return ctx.closeDialog($event); });
|
|
123
|
+
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "kendo-dropdownbutton", 5);
|
|
124
|
+
i0.ɵɵlistener("itemClick", function EditDashboardComponent_Template_kendo_dropdownbutton_itemClick_5_listener($event) { return ctx.onItemSelect($event); });
|
|
125
|
+
i0.ɵɵelement(6, "span", 6);
|
|
126
|
+
i0.ɵɵtext(7, " Add item ");
|
|
127
|
+
i0.ɵɵelementEnd()();
|
|
128
|
+
i0.ɵɵelementStart(8, "kendo-tilelayout", 7);
|
|
129
|
+
i0.ɵɵlistener("resize", function EditDashboardComponent_Template_kendo_tilelayout_resize_8_listener($event) { return ctx.onResize($event); })("reorder", function EditDashboardComponent_Template_kendo_tilelayout_reorder_8_listener($event) { return ctx.onReorder($event); });
|
|
130
|
+
i0.ɵɵtemplate(9, EditDashboardComponent_kendo_tilelayout_item_9_Template, 6, 5, "kendo-tilelayout-item", 8);
|
|
131
|
+
i0.ɵɵelementEnd()();
|
|
132
|
+
i0.ɵɵelementStart(10, "div", 9)(11, "div", 10)(12, "kendo-button", 11);
|
|
133
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Template_kendo_button_click_12_listener($event) { return ctx.closeDialog($event); });
|
|
134
|
+
i0.ɵɵelement(13, "span", 12);
|
|
135
|
+
i0.ɵɵtext(14, " Cancel ");
|
|
136
|
+
i0.ɵɵelementEnd();
|
|
137
|
+
i0.ɵɵelementStart(15, "kendo-button", 13);
|
|
138
|
+
i0.ɵɵlistener("click", function EditDashboardComponent_Template_kendo_button_click_15_listener() { return ctx.saveChanges(); });
|
|
139
|
+
i0.ɵɵelement(16, "span", 14);
|
|
140
|
+
i0.ɵɵtext(17, " Save ");
|
|
141
|
+
i0.ɵɵelementEnd()()()()();
|
|
142
|
+
} if (rf & 2) {
|
|
143
|
+
i0.ɵɵadvance(1);
|
|
144
|
+
i0.ɵɵproperty("width", 500)("minHeight", 300)("minWidth", 400)("resizable", true)("state", "maximized");
|
|
145
|
+
i0.ɵɵadvance(4);
|
|
146
|
+
i0.ɵɵproperty("data", ctx.ResourceTypes)("textField", "DisplayName");
|
|
147
|
+
i0.ɵɵadvance(3);
|
|
148
|
+
i0.ɵɵproperty("columns", ctx.config.columns)("rowHeight", ctx.config.rowHeight)("resizable", true)("reorderable", true);
|
|
149
|
+
i0.ɵɵadvance(1);
|
|
150
|
+
i0.ɵɵproperty("ngForOf", ctx._items);
|
|
151
|
+
i0.ɵɵadvance(6);
|
|
152
|
+
i0.ɵɵproperty("primary", true);
|
|
153
|
+
} }, dependencies: [i1.NgForOf, i2.WindowComponent, i3.Button, i3.DropDownButtonComponent, i4.TileLayoutComponent, i4.TileLayoutItemComponent, i4.TileLayoutItemHeaderComponent, i4.TileLayoutItemBodyComponent], styles: [".dialog-content[_ngcontent-%COMP%] .dialog-actions[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n.dialog-footer[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n width: auto;\r\n height: 40px;\r\n border-top: 1px solid rgba(0, 0, 0, 0.08);\r\n background: #FFF;\r\n padding: 8px 16px;\r\n}\r\n.custom-dialog-body[_ngcontent-%COMP%] {\r\nflex: 1;\r\n}\r\n.custom-dialog-body[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\r\n flex: 1;\r\n overflow: auto;\r\n padding: 16px;\r\n box-sizing: border-box;\r\n}\r\n.dialog-footer[_ngcontent-%COMP%] .k-card-footer[_ngcontent-%COMP%] {\r\n display: flex;\r\n gap: 8px;\r\n padding: 0;\r\n}\r\n .kendo-window-hide-restore .k-window-content {\r\n padding: 0;\r\n}\r\n.custom-dialog-body[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .k-tilelayout[_ngcontent-%COMP%] {\r\n background: #fff;\r\n}"] });
|
|
154
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditDashboardComponent, [{
|
|
155
|
+
type: Component,
|
|
156
|
+
args: [{ selector: 'app-edit-dashboard', template: "<div class=\"k-overlay\"></div>\r\n<kendo-window \r\n class=\"kendo-window-hide-restore\"\r\n [width]=\"500\" \r\n [minHeight]=\"300\" \r\n [minWidth]=\"400\" \r\n [resizable]=\"true\" \r\n (close)=\"closeDialog($event)\"\r\n [state]=\"'maximized'\" \r\n title=\"Customize Dashboard\">\r\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full custom-dialog-body\">\r\n <div class=\"dialog-content \">\r\n <div class=\"dialog-actions\">\r\n <kendo-dropdownbutton class=\"k-m-2\" themeColor=\"primary\" [data]=\"ResourceTypes\" [textField]=\"'DisplayName'\" (itemClick)=\"onItemSelect($event)\">\r\n <span class=\"k-icon k-i-plus\"></span> Add item\r\n </kendo-dropdownbutton>\r\n </div>\r\n <kendo-tilelayout\r\n [columns]=\"config.columns\"\r\n [rowHeight]=\"config.rowHeight\"\r\n [resizable]=\"true\"\r\n [reorderable]=\"true\"\r\n (resize)=\"onResize($event)\"\r\n (reorder)=\"onReorder($event)\"\r\n >\r\n <kendo-tilelayout-item *ngFor=\"let item of _items\" [col]=\"item.col\" [colSpan]=\"item.colSpan\" [rowSpan]=\"item.rowSpan\" [id]=\"item.uniqueId\">\r\n <kendo-tilelayout-item-header>\r\n {{item.title}}\r\n <kendo-button class=\"k-float-right\" (click)=\"removeItem(item)\">X</kendo-button>\r\n </kendo-tilelayout-item-header>\r\n <kendo-tilelayout-item-body>\r\n <!-- <div class=\"overlay\"></div> -->\r\n <!-- <app-resource [Data]=\"item.ResourceData\" [isVisible]=\"false\"></app-resource> -->\r\n </kendo-tilelayout-item-body>\r\n </kendo-tilelayout-item>\r\n </kendo-tilelayout>\r\n \r\n </div>\r\n <div class=\"dialog-footer\">\r\n <div class=\"k-card-footer !k-border-none\">\r\n <kendo-button (click)=\"closeDialog($event)\" >\r\n <span class=\"k-icon k-i-close\"></span>\r\n Cancel\r\n </kendo-button>\r\n <kendo-button (click)=\"saveChanges()\" [primary]=\"true\" >\r\n <span class=\"k-icon k-i-check\"></span>\r\n Save\r\n </kendo-button>\r\n </div>\r\n </div>\r\n </div>\r\n</kendo-window>", styles: [".dialog-content .dialog-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n.dialog-footer {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n width: auto;\r\n height: 40px;\r\n border-top: 1px solid rgba(0, 0, 0, 0.08);\r\n background: #FFF;\r\n padding: 8px 16px;\r\n}\r\n.custom-dialog-body {\r\nflex: 1;\r\n}\r\n.custom-dialog-body .dialog-content {\r\n flex: 1;\r\n overflow: auto;\r\n padding: 16px;\r\n box-sizing: border-box;\r\n}\r\n.dialog-footer .k-card-footer {\r\n display: flex;\r\n gap: 8px;\r\n padding: 0;\r\n}\r\n::ng-deep .kendo-window-hide-restore .k-window-content {\r\n padding: 0;\r\n}\r\n.custom-dialog-body .dialog-content .k-tilelayout {\r\n background: #fff;\r\n}"] }]
|
|
157
|
+
}], null, { onSave: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], onClose: [{
|
|
160
|
+
type: Output
|
|
161
|
+
}], triggerAddItem: [{
|
|
162
|
+
type: Output
|
|
163
|
+
}], editMode: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], config: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], items: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}] }); })();
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { ResourceData } from '../generic/base-resource-component';
|
|
3
|
+
import { DashboardEntity, ResourceTypeEntity } from '@memberjunction/core-entities';
|
|
4
|
+
import { SharedService } from '../shared/shared.service';
|
|
5
|
+
import { ResourceContainerComponent } from '../generic/resource-container-component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class SingleDashboardComponent implements OnInit {
|
|
8
|
+
private sharedService;
|
|
9
|
+
ResourceData: ResourceData;
|
|
10
|
+
dashboardSaved: EventEmitter<DashboardEntity>;
|
|
11
|
+
loadComplete: EventEmitter<any>;
|
|
12
|
+
loadStarted: EventEmitter<any>;
|
|
13
|
+
items: DashboardItem[];
|
|
14
|
+
dashboardEntity: DashboardEntity;
|
|
15
|
+
config: DashboardConfigDetails;
|
|
16
|
+
isItemDialogOpened: boolean;
|
|
17
|
+
isEditDialogOpened: boolean;
|
|
18
|
+
selectedResource: ResourceTypeEntity | null;
|
|
19
|
+
private saveChangesSubject;
|
|
20
|
+
get contentLoading(): boolean;
|
|
21
|
+
constructor(sharedService: SharedService);
|
|
22
|
+
ngOnInit(): Promise<void>;
|
|
23
|
+
protected CreateDashboardItem(item: any): DashboardItem;
|
|
24
|
+
loadingStarted(resourceComponent: ResourceContainerComponent): void;
|
|
25
|
+
loadingComplete(resourceComponent: ResourceContainerComponent): void;
|
|
26
|
+
addItem(resourceType?: any): void;
|
|
27
|
+
closeDialog(data: any): void;
|
|
28
|
+
editDashboard(): void;
|
|
29
|
+
closeDashboardDialog(data?: any): void;
|
|
30
|
+
saveChanges(data: any): void;
|
|
31
|
+
SaveDashboard(): Promise<boolean>;
|
|
32
|
+
dashboardSaveComplete(entity: DashboardEntity): void;
|
|
33
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SingleDashboardComponent, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SingleDashboardComponent, "app-single-dashboard", never, { "ResourceData": "ResourceData"; }, { "dashboardSaved": "dashboardSaved"; "loadComplete": "loadComplete"; "loadStarted": "loadStarted"; }, never, never, false, never>;
|
|
35
|
+
}
|
|
36
|
+
export declare class DashboardConfigDetails {
|
|
37
|
+
columns: number;
|
|
38
|
+
rowHeight: number;
|
|
39
|
+
resizable: boolean;
|
|
40
|
+
reorderable: boolean;
|
|
41
|
+
}
|
|
42
|
+
export declare class DashboardItem {
|
|
43
|
+
private static nextUniqueId;
|
|
44
|
+
private getNextUniqueID;
|
|
45
|
+
constructor();
|
|
46
|
+
uniqueId: number;
|
|
47
|
+
title: string;
|
|
48
|
+
col: number;
|
|
49
|
+
row: number;
|
|
50
|
+
rowSpan: number;
|
|
51
|
+
colSpan: number;
|
|
52
|
+
order: number;
|
|
53
|
+
ResourceData: ResourceData;
|
|
54
|
+
contentLoading: boolean;
|
|
55
|
+
}
|