@memberjunction/ng-explorer-core 1.8.0 → 2.0.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 +4 -0
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +60 -3
- package/dist/generic/Item.types.d.ts +5 -5
- package/dist/lib/app-view/application-view.component.d.ts +1 -2
- package/dist/lib/app-view/application-view.component.d.ts.map +1 -1
- package/dist/lib/app-view/application-view.component.js +25 -30
- package/dist/lib/auth-button/auth-button.component.js +1 -1
- package/dist/lib/base-browser-component/base-browser-component.d.ts +2 -1
- package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -1
- package/dist/lib/base-browser-component/base-browser-component.js +7 -5
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -1
- package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +15 -3
- package/dist/lib/data-browser-component/data-browser.component.d.ts +2 -2
- package/dist/lib/data-browser-component/data-browser.component.d.ts.map +1 -1
- package/dist/lib/data-browser-component/data-browser.component.js +23 -9
- package/dist/lib/expansion-panel-component/expansion-panel-component.js +5 -5
- package/dist/lib/favorites/favorites.component.d.ts.map +1 -1
- package/dist/lib/favorites/favorites.component.js +11 -4
- package/dist/lib/files/files.component.d.ts +3 -1
- package/dist/lib/files/files.component.d.ts.map +1 -1
- package/dist/lib/files/files.component.js +20 -5
- package/dist/lib/generic/form-toolbar.js +1 -1
- package/dist/lib/generic/resource-container-component.js +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +2 -2
- package/dist/lib/header/header.component.js +1 -1
- package/dist/lib/home-component/home.component.d.ts +5 -2
- package/dist/lib/home-component/home.component.d.ts.map +1 -1
- package/dist/lib/home-component/home.component.js +49 -51
- package/dist/lib/join-grid/join-grid.component.d.ts +31 -0
- package/dist/lib/join-grid/join-grid.component.d.ts.map +1 -0
- package/dist/lib/join-grid/join-grid.component.js +222 -0
- package/dist/lib/list-view/list-view.component.d.ts.map +1 -1
- package/dist/lib/list-view/list-view.component.js +15 -3
- package/dist/lib/navigation/navigation.component.d.ts +2 -2
- package/dist/lib/navigation/navigation.component.d.ts.map +1 -1
- package/dist/lib/navigation/navigation.component.js +45 -19
- package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -1
- package/dist/lib/query-browser-component/query-browser.component.js +17 -5
- package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -1
- package/dist/lib/report-browser-component/report-browser.component.js +15 -3
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/report-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +5 -4
- package/dist/lib/single-application/single-application.component.js +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +2 -2
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +1 -1
- package/dist/lib/single-entity/single-entity.component.js +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +14 -4
- 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 +232 -120
- package/dist/lib/single-query/single-query.component.d.ts +1 -1
- package/dist/lib/single-query/single-query.component.js +1 -1
- package/dist/lib/single-record/single-record.component.js +1 -1
- package/dist/lib/single-report/single-report.component.d.ts +1 -1
- package/dist/lib/single-report/single-report.component.js +1 -1
- package/dist/lib/single-search-result/single-search-result.component.js +1 -1
- package/dist/lib/single-view/single-view.component.d.ts +1 -1
- package/dist/lib/single-view/single-view.component.js +2 -2
- package/dist/lib/user-notifications/user-notifications.component.js +4 -4
- package/dist/lib/user-profile/user-profile.component.js +1 -1
- package/package.json +18 -18
|
@@ -0,0 +1,222 @@
|
|
|
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, Input } from '@angular/core';
|
|
11
|
+
import { RunView } from '@memberjunction/core';
|
|
12
|
+
import { debounceTime, fromEvent } from 'rxjs';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@progress/kendo-angular-grid";
|
|
16
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
17
|
+
function JoinGridComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
19
|
+
i0.ɵɵtext(1);
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
23
|
+
i0.ɵɵadvance();
|
|
24
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.ErrorMessage, "\n");
|
|
25
|
+
} }
|
|
26
|
+
function JoinGridComponent_div_1_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "button", 9);
|
|
28
|
+
i0.ɵɵtext(1, "Save");
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} }
|
|
31
|
+
function JoinGridComponent_div_1_3_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_3_ng_template_0_Template, 2, 0, "ng-template", 8);
|
|
33
|
+
} }
|
|
34
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵtext(0);
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
const dataItem_r12 = ctx.$implicit;
|
|
38
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
39
|
+
i0.ɵɵtextInterpolate1(" ", dataItem_r12[item_r6.field], " ");
|
|
40
|
+
} }
|
|
41
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_kendo_grid_column_4_1_ng_template_0_Template, 1, 1, "ng-template", 11);
|
|
43
|
+
} }
|
|
44
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
i0.ɵɵelement(0, "input", 12);
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const dataItem_r14 = ctx.$implicit;
|
|
48
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
49
|
+
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
50
|
+
i0.ɵɵproperty("checked", dataItem_r14[item_r6.field])("disabled", !ctx_r9.EditMode);
|
|
51
|
+
} }
|
|
52
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵtext(0);
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const ctx_r16 = i0.ɵɵnextContext(4);
|
|
56
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r16.viewData.length, " records ");
|
|
57
|
+
} }
|
|
58
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_3_Template(rf, ctx) { if (rf & 1) {
|
|
59
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_1_kendo_grid_column_4_3_ng_template_0_Template, 1, 1, "ng-template", 13);
|
|
60
|
+
} }
|
|
61
|
+
const _c0 = () => ({ "font-weight": "bold", "background-color": "#a9c2af" });
|
|
62
|
+
function JoinGridComponent_div_1_kendo_grid_column_4_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "kendo-grid-column", 10);
|
|
64
|
+
i0.ɵɵtemplate(1, JoinGridComponent_div_1_kendo_grid_column_4_1_Template, 1, 0, null, 6)(2, JoinGridComponent_div_1_kendo_grid_column_4_ng_template_2_Template, 1, 2, "ng-template", 11)(3, JoinGridComponent_div_1_kendo_grid_column_4_3_Template, 1, 0, null, 6);
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
} if (rf & 2) {
|
|
67
|
+
const item_r6 = ctx.$implicit;
|
|
68
|
+
const i_r7 = ctx.index;
|
|
69
|
+
i0.ɵɵpropertyInterpolate("field", item_r6.field);
|
|
70
|
+
i0.ɵɵpropertyInterpolate("title", item_r6.title);
|
|
71
|
+
i0.ɵɵproperty("width", item_r6.width)("headerStyle", i0.ɵɵpureFunction0(6, _c0));
|
|
72
|
+
i0.ɵɵadvance();
|
|
73
|
+
i0.ɵɵproperty("ngIf", i_r7 === 0);
|
|
74
|
+
i0.ɵɵadvance(2);
|
|
75
|
+
i0.ɵɵproperty("ngIf", i_r7 === 0);
|
|
76
|
+
} }
|
|
77
|
+
function JoinGridComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "kendo-grid", 4, 5);
|
|
79
|
+
i0.ɵɵtemplate(3, JoinGridComponent_div_1_3_Template, 1, 0, null, 6)(4, JoinGridComponent_div_1_kendo_grid_column_4_Template, 4, 7, "kendo-grid-column", 7);
|
|
80
|
+
i0.ɵɵelementEnd()();
|
|
81
|
+
} if (rf & 2) {
|
|
82
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵproperty("resizable", true)("data", ctx_r1.viewData)("rowHeight", 36)("loading", ctx_r1.showloader)("height", ctx_r1.gridHeight)("sortable", true)("resizable", true)("reorderable", true)("selectable", true);
|
|
85
|
+
i0.ɵɵadvance(2);
|
|
86
|
+
i0.ɵɵproperty("ngIf", ctx_r1.EditMode);
|
|
87
|
+
i0.ɵɵadvance();
|
|
88
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.visibleColumns);
|
|
89
|
+
} }
|
|
90
|
+
export class JoinGridComponent {
|
|
91
|
+
constructor() {
|
|
92
|
+
this.RowsEntity = '';
|
|
93
|
+
this.ColumnsEntity = '';
|
|
94
|
+
this.JoinEntity = '';
|
|
95
|
+
this.JoinRowForeignKey = '';
|
|
96
|
+
this.JoinColumunForeignKey = '';
|
|
97
|
+
this.RowsFilter = '';
|
|
98
|
+
this.ColumnsFilter = '';
|
|
99
|
+
this.EditMode = false;
|
|
100
|
+
this.showloader = false;
|
|
101
|
+
this.viewData = [];
|
|
102
|
+
this.visibleColumns = [];
|
|
103
|
+
this.ShowError = false;
|
|
104
|
+
this.ErrorMessage = '';
|
|
105
|
+
this.gridHeight = 750;
|
|
106
|
+
this.resizeSub = null;
|
|
107
|
+
this._gridMargin = 150;
|
|
108
|
+
}
|
|
109
|
+
ngOnInit() {
|
|
110
|
+
if (!this.RowsEntity || !this.ColumnsEntity || !this.JoinEntity || !this.JoinRowForeignKey || !this.JoinColumunForeignKey) {
|
|
111
|
+
this.ShowError = true;
|
|
112
|
+
this.ErrorMessage = 'Missing required parameters';
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
this.LoadData();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
ngAfterViewInit() {
|
|
119
|
+
this.setGridHeight();
|
|
120
|
+
}
|
|
121
|
+
LoadData() {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
const rv = new RunView();
|
|
124
|
+
this.showloader = true;
|
|
125
|
+
const promises = [];
|
|
126
|
+
promises.push(rv.RunView({ EntityName: this.RowsEntity, ExtraFilter: this.RowsFilter }));
|
|
127
|
+
promises.push(rv.RunView({ EntityName: this.ColumnsEntity, ExtraFilter: this.ColumnsFilter }));
|
|
128
|
+
const responses = yield Promise.all(promises);
|
|
129
|
+
if (responses[0].Success && responses[1].Success) {
|
|
130
|
+
this.getJoinData(responses[0].Results, responses[1].Results);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.ShowError = true;
|
|
134
|
+
this.ErrorMessage = responses[0].ErrorMessage || responses[1].ErrorMessage;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
getJoinData(rows, columns) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const rv = new RunView();
|
|
141
|
+
// getting the relations between rows and columns
|
|
142
|
+
const res = yield rv.RunView({ EntityName: this.JoinEntity, ExtraFilter: `${this.JoinRowForeignKey} IN (${rows.map(obj => obj.ID).join(',')}) AND ${this.JoinColumunForeignKey} IN (${columns.map(obj => obj.ID).join(',')})` });
|
|
143
|
+
if (res.Success) {
|
|
144
|
+
this.prepareGridData(rows, columns, res.Results);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.showloader = false;
|
|
148
|
+
this.ShowError = true;
|
|
149
|
+
this.ErrorMessage = res.ErrorMessage;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
prepareGridData(rows, columns, joinEntities) {
|
|
154
|
+
const gridData = [];
|
|
155
|
+
this.visibleColumns = [{ field: 'first', title: '', width: 80 }];
|
|
156
|
+
columns.forEach(column => {
|
|
157
|
+
this.visibleColumns.push({ field: column.Name, title: column.Name, width: 80 });
|
|
158
|
+
});
|
|
159
|
+
rows.forEach(row => {
|
|
160
|
+
let rowData = {
|
|
161
|
+
first: row.Name
|
|
162
|
+
};
|
|
163
|
+
columns.forEach(column => {
|
|
164
|
+
const join = joinEntities.find(j => j[this.JoinColumunForeignKey] === column.ID && j[this.JoinRowForeignKey] === row.ID);
|
|
165
|
+
if (join) {
|
|
166
|
+
rowData = Object.assign(Object.assign({}, rowData), { [column.Name]: true, [this.JoinColumunForeignKey]: join[this.JoinColumunForeignKey], [this.JoinRowForeignKey]: join[this.JoinRowForeignKey], [this.JoinEntity]: join[this.JoinEntity] });
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
rowData[column.Name] = false;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
gridData.push(rowData);
|
|
173
|
+
});
|
|
174
|
+
this.showloader = false;
|
|
175
|
+
this.viewData = gridData;
|
|
176
|
+
}
|
|
177
|
+
setGridHeight() {
|
|
178
|
+
// Subscribe to the window resize event
|
|
179
|
+
this.resizeSub = fromEvent(window, 'resize').pipe(debounceTime(100) // Debounce the resize event to avoid frequent updates
|
|
180
|
+
).subscribe(() => {
|
|
181
|
+
// Update the grid height when the window is resized
|
|
182
|
+
this.ResizeGrid();
|
|
183
|
+
});
|
|
184
|
+
// Set the initial grid height with a slight delay to allow stuff to get set
|
|
185
|
+
setTimeout(() => {
|
|
186
|
+
this.ResizeGrid();
|
|
187
|
+
}, 100);
|
|
188
|
+
}
|
|
189
|
+
ResizeGrid() {
|
|
190
|
+
// this._gridMargin = this.getGridTopPosition();
|
|
191
|
+
this.gridHeight = window.innerHeight - this._gridMargin;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
JoinGridComponent.ɵfac = function JoinGridComponent_Factory(t) { return new (t || JoinGridComponent)(); };
|
|
195
|
+
JoinGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JoinGridComponent, selectors: [["app-join-grid"]], inputs: { RowsEntity: "RowsEntity", ColumnsEntity: "ColumnsEntity", JoinEntity: "JoinEntity", JoinRowForeignKey: "JoinRowForeignKey", JoinColumunForeignKey: "JoinColumunForeignKey", RowsFilter: "RowsFilter", ColumnsFilter: "ColumnsFilter", EditMode: "EditMode" }, decls: 2, vars: 2, consts: [["class", "card-container", 4, "ngIf"], ["class", "user-view-grid-wrap", 4, "ngIf"], [1, "card-container"], [1, "user-view-grid-wrap"], ["scrollable", "virtual", 3, "resizable", "data", "rowHeight", "loading", "height", "sortable", "reorderable", "selectable"], ["kendoGrid", ""], [4, "ngIf"], [3, "field", "title", "width", "headerStyle", 4, "ngFor", "ngForOf"], ["kendoGridToolbarTemplate", ""], ["kendoButton", ""], [3, "field", "title", "width", "headerStyle"], ["kendoGridCellTemplate", ""], ["type", "checkbox", 3, "checked", "disabled"], ["kendoGridFooterTemplate", ""]], template: function JoinGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
+
i0.ɵɵtemplate(0, JoinGridComponent_div_0_Template, 2, 1, "div", 0)(1, JoinGridComponent_div_1_Template, 5, 11, "div", 1);
|
|
197
|
+
} if (rf & 2) {
|
|
198
|
+
i0.ɵɵproperty("ngIf", ctx.ShowError);
|
|
199
|
+
i0.ɵɵadvance();
|
|
200
|
+
i0.ɵɵproperty("ngIf", !ctx.ShowError);
|
|
201
|
+
} }, dependencies: [i1.NgForOf, i1.NgIf, i2.GridComponent, i2.ToolbarTemplateDirective, i2.ColumnComponent, i2.FooterTemplateDirective, i2.CellTemplateDirective, i3.ButtonComponent] });
|
|
202
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JoinGridComponent, [{
|
|
203
|
+
type: Component,
|
|
204
|
+
args: [{ selector: 'app-join-grid', template: "<div class=\"card-container\" *ngIf=\"ShowError\">\n {{ErrorMessage}}\n</div>\n<div class=\"user-view-grid-wrap\" *ngIf=\"!ShowError\">\n <kendo-grid \n #kendoGrid \n [resizable]=\"true\" \n [data]=\"viewData\" \n scrollable=\"virtual\" \n [rowHeight]=\"36\"\n [loading]=\"showloader\"\n [height]=\"gridHeight\"\n [sortable]=\"true\"\n [resizable]=\"true\"\n [reorderable]=\"true\"\n [selectable]=\"true\">\n\n <ng-template kendoGridToolbarTemplate *ngIf=\"EditMode\">\n <button kendoButton>Save</button>\n </ng-template>\n\n <kendo-grid-column *ngFor=\"let item of visibleColumns; let i = index\" field=\"{{item.field}}\"\n title=\"{{item.title}}\" [width]=\"item.width\"\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': '#a9c2af' }\">\n <ng-template *ngIf=\"i === 0\" kendoGridCellTemplate let-dataItem>\n {{dataItem[item.field]}}\n </ng-template>\n <ng-template kendoGridCellTemplate let-dataItem>\n <input type=\"checkbox\" [checked]=\"dataItem[item.field]\" [disabled]=\"!EditMode\" />\n </ng-template>\n <ng-template *ngIf=\"i === 0\" kendoGridFooterTemplate>\n {{this.viewData.length}} records\n </ng-template>\n </kendo-grid-column>\n\n </kendo-grid>\n</div>" }]
|
|
205
|
+
}], () => [], { RowsEntity: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], ColumnsEntity: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], JoinEntity: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], JoinRowForeignKey: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], JoinColumunForeignKey: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], RowsFilter: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], ColumnsFilter: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], EditMode: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}] }); })();
|
|
222
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JoinGridComponent, { className: "JoinGridComponent" }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-view.component.d.ts","sourceRoot":"","sources":["../../../src/lib/list-view/list-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"list-view.component.d.ts","sourceRoot":"","sources":["../../../src/lib/list-view/list-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAA2B,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAc,UAAU,EAAY,MAAM,sBAAsB,CAAC;;AAGxE,qBAMa,iBAAkB,SAAQ,oBAAqB,YAAW,MAAM;IAe5D,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,KAAK;IAAkB,OAAO,CAAC,aAAa;IAdlF,UAAU,EAAE,OAAO,CAAS;IAC5B,gBAAgB,EAAE,OAAO,CAAS;IAClC,KAAK,EAAE,UAAU,EAAE,CAAM;IACzB,gBAAgB,EAAE,OAAO,CAAS;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAM;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,WAAW,EAAE,MAAM,EAAE,CAAM;IAI3B,QAAQ,EAAE,MAAM,CAAM;IACtB,eAAe,EAAE,MAAM,CAAM;IAC7B,cAAc,EAAE,UAAU,GAAG,IAAI,CAAQ;gBAE3B,MAAM,EAAE,MAAM,EAAU,KAAK,EAAE,cAAc,EAAU,aAAa,EAAE,aAAa;IAclG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAexB,SAAS,CAAC,IAAI,EAAE,IAAI;IAYpB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAE3D,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAMrD,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAUjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;yCAzGpC,iBAAiB;2CAAjB,iBAAiB;CA4G7B"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
1
7
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
8
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
9
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -9,7 +15,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
15
|
};
|
|
10
16
|
import { Component } from '@angular/core';
|
|
11
17
|
import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
|
|
18
|
+
import { BaseNavigationComponent } from '@memberjunction/ng-shared';
|
|
12
19
|
import { Metadata } from '@memberjunction/core';
|
|
20
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
13
21
|
import * as i0 from "@angular/core";
|
|
14
22
|
import * as i1 from "@angular/router";
|
|
15
23
|
import * as i2 from "@memberjunction/ng-shared";
|
|
@@ -69,7 +77,7 @@ function ListViewComponent_kendo_dialog_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
69
77
|
i0.ɵɵadvance(2);
|
|
70
78
|
i0.ɵɵproperty("disabled", ctx_r1.showCreateLoader);
|
|
71
79
|
} }
|
|
72
|
-
|
|
80
|
+
let ListViewComponent = class ListViewComponent extends BaseBrowserComponent {
|
|
73
81
|
constructor(router, route, sharedService) {
|
|
74
82
|
var _a;
|
|
75
83
|
super();
|
|
@@ -170,7 +178,7 @@ export class ListViewComponent extends BaseBrowserComponent {
|
|
|
170
178
|
onSelectionChange(value) {
|
|
171
179
|
this.selectedEntity = this.entities.find(e => `${e.SchemaName}.${e.Name}` === value) || null;
|
|
172
180
|
}
|
|
173
|
-
}
|
|
181
|
+
};
|
|
174
182
|
ListViewComponent.ɵfac = function ListViewComponent_Factory(t) { return new (t || ListViewComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
|
|
175
183
|
ListViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListViewComponent, selectors: [["mj-list-view"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 4, consts: [["title", "Lists", "itemType", "list", "iconName", "graph", "addText", "Create New List", "ItemEntityName", "Lists", "CategoryEntityName", "List Categories", "resourceName", "List", 3, "itemClickEvent", "AfterAddFolderEvent", "AfterAddItemEvent", "AfterDeleteItemEvent", "AfterDeleteFolderEvent", "viewModeChangeEvent", "BeforeUpdateItemEvent", "BeforeAddItemEvent", "items", "selectedFolderID", "showLoader"], ["title", "Create New List", 3, "minWidth", "width", "height", "close", 4, "ngIf"], ["title", "Create New List", 3, "close", "minWidth", "width", "height"], ["type", "converging-spinner"], [1, "col-xs-12", "col-sm-6", "example-col"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click", "disabled"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click", "disabled"], ["text", "Name"], ["placeholder", "Enter List Name", 1, "mt-10", 3, "ngModelChange", "ngModel"], [1, "mt-10"], ["text", "Description"], ["placeholder", "Enter Description", "resizable", "vertical", 1, "mt-10", 3, "ngModelChange", "rows", "ngModel"], ["text", "Select an Entity"], [1, "mt-10", 3, "filterChange", "selectionChange", "data", "filterable"]], template: function ListViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
176
184
|
i0.ɵɵelementStart(0, "app-generic-browser-list", 0);
|
|
@@ -182,8 +190,12 @@ ListViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListViewC
|
|
|
182
190
|
i0.ɵɵadvance();
|
|
183
191
|
i0.ɵɵproperty("ngIf", ctx.showCreateDialog);
|
|
184
192
|
} }, dependencies: [i3.NgIf, i4.NgControlStatus, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.LoaderComponent, i7.ButtonComponent, i8.TextAreaComponent, i8.TextBoxComponent, i9.LabelComponent, i10.DropDownListComponent, i11.GenericBrowserListComponent], styles: [".main-area[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view[_ngcontent-%COMP%] {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n .list-view .k-listview-header, \n .list-view .k-listview-footer {\n border: none;\n}\n .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header[_ngcontent-%COMP%], \n.footer[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header[_ngcontent-%COMP%] {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\n color: var(--sideNav);\n}\n.card-wrapper[_ngcontent-%COMP%] {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container[_ngcontent-%COMP%] {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}"] });
|
|
193
|
+
ListViewComponent = __decorate([
|
|
194
|
+
RegisterClass(BaseNavigationComponent, 'Lists')
|
|
195
|
+
], ListViewComponent);
|
|
196
|
+
export { ListViewComponent };
|
|
185
197
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListViewComponent, [{
|
|
186
198
|
type: Component,
|
|
187
199
|
args: [{ selector: 'mj-list-view', template: "<app-generic-browser-list \ntitle=\"Lists\"\nitemType=\"list\"\niconName=\"graph\" \n[items]=\"items\"\naddText=\"Create New List\"\nItemEntityName=\"Lists\"\nCategoryEntityName=\"List Categories\" \nresourceName = \"List\"\n(itemClickEvent)=\"itemClick($event)\"\n(AfterAddFolderEvent)=\"onEvent($event)\"\n(AfterAddItemEvent)=\"onEvent($event)\"\n(AfterDeleteItemEvent)=\"onEvent($event)\"\n(AfterDeleteFolderEvent)=\"onEvent($event)\"\n[selectedFolderID]=\"selectedFolderID\"\n[showLoader]=\"showLoader\"\n(viewModeChangeEvent)=\"onViewModeChange($event)\"\n(BeforeUpdateItemEvent)=\"onBeforeUpdateItemEvent($event)\"\n(BeforeAddItemEvent)=\"onBeforeAddItemEvent($event)\"\n/>\n<kendo-dialog\ntitle=\"Create New List\"\n*ngIf=\"showCreateDialog\"\n(close)=\"toggleCreateDialog(false)\"\n[minWidth]=\"250\"\n[width]=\"650\"\n[height]=\"550\"\n>\n @if(showCreateLoader){\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else {\n <div class=\"col-xs-12 col-sm-6 example-col\">\n <kendo-label text=\"Name\">\n <kendo-textbox \n class=\"mt-10\"\n placeholder=\"Enter List Name\" \n [(ngModel)]=\"listName\">\n </kendo-textbox>\n </kendo-label>\n <div class=\"mt-10\">\n <kendo-label text=\"Description\">\n <kendo-textarea\n class=\"mt-10\"\n placeholder=\"Enter Description\"\n [rows]=\"3\"\n resizable=\"vertical\"\n [(ngModel)]=\"listDescription\"\n ></kendo-textarea>\n </kendo-label>\n </div>\n <div class=\"mt-10\">\n <kendo-label text=\"Select an Entity\">\n <kendo-dropdownlist \n class=\"mt-10\"\n [data]=\"entityNames\"\n [filterable]=\"true\"\n (filterChange)=\"onFilterChange($event)\"\n (selectionChange)=\"onSelectionChange($event)\"\n />\n </kendo-label>\n </div>\n </div>\n }\n <kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"createList()\" [disabled]=\"!listName || !selectedEntity || showCreateLoader\" kendoButton themeColor=\"info\">\n Create\n </button>\n <button class=\"yes-btn\" (click)=\"toggleCreateDialog(false)\" [disabled]=\"showCreateLoader\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n Cancel\n </button>\n </kendo-dialog-actions>\n</kendo-dialog>", styles: ["\n.main-area {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n::ng-deep .list-view .k-listview-header, \n::ng-deep .list-view .k-listview-footer {\n border: none;\n}\n::ng-deep .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header,\n.footer {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header .head-tag {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header .count {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card .view-icon {\n color: var(--sideNav);\n}\n.card-wrapper {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper .k-card-body {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper .view-card {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card .btn-wrapper {\n display: flex;\n align-items: center;\n}\n\n.k-card-body .view-card-content h5 {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body .view-card-content p {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area .card-list {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}\n"] }]
|
|
188
200
|
}], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], null); })();
|
|
189
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListViewComponent, { className: "ListViewComponent"
|
|
201
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ListViewComponent, { className: "ListViewComponent" }); })();
|
|
@@ -12,7 +12,7 @@ import { TreeItem } from '../../generic/Item.types';
|
|
|
12
12
|
import { MJTabStripComponent, TabClosedEvent, TabContextMenuEvent, TabEvent } from '@memberjunction/ng-tabstrip';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export interface Tab {
|
|
15
|
-
id?:
|
|
15
|
+
id?: string;
|
|
16
16
|
label?: string;
|
|
17
17
|
icon?: string;
|
|
18
18
|
data?: any;
|
|
@@ -133,7 +133,7 @@ export declare class NavigationComponent implements OnInit, OnDestroy, AfterView
|
|
|
133
133
|
protected loadLists(): Promise<void>;
|
|
134
134
|
protected loadFiles(): Promise<void>;
|
|
135
135
|
protected loadApplications(md: Metadata): Promise<void>;
|
|
136
|
-
protected loadResourceType(key: string, resourceType: string, path: string, currentUserID:
|
|
136
|
+
protected loadResourceType(key: string, resourceType: string, path: string, currentUserID: string): Promise<void>;
|
|
137
137
|
setDrawerConfig(): void;
|
|
138
138
|
toggle(): void;
|
|
139
139
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavigationComponent, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.component.d.ts","sourceRoot":"","sources":["../../../src/lib/navigation/navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAa,MAAM,EAAE,SAAS,EAA6B,aAAa,EAAE,SAAS,EAAS,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnK,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAA2C,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"navigation.component.d.ts","sourceRoot":"","sources":["../../../src/lib/navigation/navigation.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -461,14 +461,14 @@ export class NavigationComponent {
|
|
|
461
461
|
const rv = new RunView();
|
|
462
462
|
const workspaceParams = {
|
|
463
463
|
EntityName: "Workspaces",
|
|
464
|
-
ExtraFilter: `UserID
|
|
465
|
-
OrderBy: "
|
|
464
|
+
ExtraFilter: `UserID='${md.CurrentUser.ID}'`,
|
|
465
|
+
OrderBy: "__mj_UpdatedAt DESC", // by default get the workspace that was most recently updated
|
|
466
466
|
ResultType: "entity_object" /*we want entity objects back so that we can modify them as needed*/
|
|
467
467
|
};
|
|
468
468
|
const workspaces = yield rv.RunView(workspaceParams);
|
|
469
469
|
if (workspaces.Success) {
|
|
470
470
|
if (workspaces.Results.length) {
|
|
471
|
-
this.workSpace = workspaces.Results[0]; // by default get the first one, and since we are sorting by
|
|
471
|
+
this.workSpace = workspaces.Results[0]; // by default get the first one, and since we are sorting by __mj_UpdatedAt DESC above, will be most recently modified one. Future feature for multi-workspace support we'll have to adjust this
|
|
472
472
|
}
|
|
473
473
|
else {
|
|
474
474
|
// no matching record found, so create a new one
|
|
@@ -603,10 +603,19 @@ export class NavigationComponent {
|
|
|
603
603
|
this.loader = true;
|
|
604
604
|
const existingTab = this.findExistingTab(data);
|
|
605
605
|
if (existingTab) {
|
|
606
|
+
// merge the data that we are provided with in terms of its raw query params with the existing tab
|
|
607
|
+
// override existing values in the data.Configuration.___rawQueryParams from keys in the data.Configuration.___rawQueryParams
|
|
608
|
+
existingTab.data.Configuration.___rawQueryParams = Object.assign(Object.assign({}, existingTab.data.Configuration.___rawQueryParams), data.Configuration.___rawQueryParams);
|
|
606
609
|
const index = this.tabs.indexOf(existingTab);
|
|
610
|
+
// next, before we set the active tab, we need to merge the query params that we have for this tab with the query params that we have for the tab that we're about to select
|
|
611
|
+
// when the app first loads there won't be any query params for the tabs, but as we navigate around and the tabs get selected, we'll cache the query params for each tab
|
|
612
|
+
const tqp = this.tabQueryParams['tab_' + (index + 1)];
|
|
613
|
+
if (tqp)
|
|
614
|
+
this.tabQueryParams['tab_' + (index + 1)] = Object.assign(Object.assign({}, tqp), existingTab.data.Configuration.___rawQueryParams);
|
|
615
|
+
else
|
|
616
|
+
this.tabQueryParams['tab_' + (index + 1)] = existingTab.data.Configuration.___rawQueryParams;
|
|
607
617
|
// add one because the HOME tab is not in the tabs array but it IS part of our tab structure
|
|
608
618
|
this.activeTabIndex = index + 1;
|
|
609
|
-
//this.tabstrip.selectTab(this.activeTabIndex);
|
|
610
619
|
this.scrollIntoView();
|
|
611
620
|
if (existingTab.label)
|
|
612
621
|
this.setAppTitle(existingTab.label);
|
|
@@ -616,7 +625,7 @@ export class NavigationComponent {
|
|
|
616
625
|
}
|
|
617
626
|
else {
|
|
618
627
|
const newTab = {
|
|
619
|
-
id:
|
|
628
|
+
id: "", // initially blank but will be changed to the WorkspaceItem ID once we save it
|
|
620
629
|
data: data,
|
|
621
630
|
labelLoading: true,
|
|
622
631
|
contentLoading: false,
|
|
@@ -665,7 +674,7 @@ export class NavigationComponent {
|
|
|
665
674
|
let url = '/resource';
|
|
666
675
|
switch (rt === null || rt === void 0 ? void 0 : rt.Name.toLowerCase().trim()) {
|
|
667
676
|
case 'user views':
|
|
668
|
-
if (data.ResourceRecordID
|
|
677
|
+
if (data.ResourceRecordID) {
|
|
669
678
|
url += `/view/${data.ResourceRecordID}`;
|
|
670
679
|
}
|
|
671
680
|
else if ((_a = data.Configuration) === null || _a === void 0 ? void 0 : _a.Entity) {
|
|
@@ -712,15 +721,18 @@ export class NavigationComponent {
|
|
|
712
721
|
const [path, existingQuery] = url.split('?');
|
|
713
722
|
// Create a URLSearchParams object from the existing query params
|
|
714
723
|
const queryParams = new URLSearchParams(existingQuery);
|
|
715
|
-
// Your cached query params, assuming it's an object like { key1: 'value1', key2: 'value2' }
|
|
716
724
|
const tabIndex = this.tabs.indexOf(tab) + 1; // we add 1 Because the HOME tab is not in the array so we have to offset by 1 here for our data structure
|
|
717
|
-
let cachedQueryParams = this.tabQueryParams['tab_' + tabIndex];
|
|
725
|
+
let cachedQueryParams = this.tabQueryParams['tab_' + tabIndex];
|
|
718
726
|
if (!cachedQueryParams) {
|
|
719
727
|
// there is a case when we are first loading and cached query params might have been stuffed into a 'tab_-1' key because at the time activeTabIndex wasn't yet known. So we need to check for that
|
|
720
728
|
cachedQueryParams = this.tabQueryParams['tab_-1'];
|
|
721
729
|
if (cachedQueryParams) {
|
|
722
730
|
delete this.tabQueryParams['tab_-1']; // remove it from the -1 key
|
|
723
|
-
this.tabQueryParams['tab_' + tabIndex]
|
|
731
|
+
const tqp = this.tabQueryParams['tab_' + tabIndex];
|
|
732
|
+
if (tqp)
|
|
733
|
+
this.tabQueryParams['tab_' + tabIndex] = Object.assign(Object.assign({}, tqp), cachedQueryParams); // merge it with the existing key if it exists
|
|
734
|
+
else
|
|
735
|
+
this.tabQueryParams['tab_' + tabIndex] = Object.assign({}, cachedQueryParams); // stuff it into the correct key
|
|
724
736
|
}
|
|
725
737
|
}
|
|
726
738
|
if (cachedQueryParams) {
|
|
@@ -754,8 +766,9 @@ export class NavigationComponent {
|
|
|
754
766
|
const resource = new resourceReg.SubClass();
|
|
755
767
|
return yield resource.GetResourceDisplayName(data);
|
|
756
768
|
}
|
|
757
|
-
else
|
|
769
|
+
else {
|
|
758
770
|
return `Workspace Item ${data.ID}`;
|
|
771
|
+
}
|
|
759
772
|
});
|
|
760
773
|
}
|
|
761
774
|
GetWorkspaceItemIconClass(data) {
|
|
@@ -765,8 +778,9 @@ export class NavigationComponent {
|
|
|
765
778
|
const resource = new resourceReg.SubClass();
|
|
766
779
|
return yield resource.GetResourceIconClass(data);
|
|
767
780
|
}
|
|
768
|
-
else
|
|
781
|
+
else {
|
|
769
782
|
return '';
|
|
783
|
+
}
|
|
770
784
|
});
|
|
771
785
|
}
|
|
772
786
|
/**
|
|
@@ -817,13 +831,13 @@ export class NavigationComponent {
|
|
|
817
831
|
const md = new Metadata();
|
|
818
832
|
let wsItem;
|
|
819
833
|
if (!tab.workspaceItem) {
|
|
820
|
-
wsItem =
|
|
834
|
+
wsItem = yield md.GetEntityObject('Workspace Items');
|
|
821
835
|
if (tab.data.ID && !isNaN(tab.data.ID) && tab.data.ID > 0)
|
|
822
836
|
yield wsItem.Load(tab.data.ID);
|
|
823
837
|
else {
|
|
824
838
|
wsItem.NewRecord();
|
|
825
839
|
wsItem.Name = tab.data.Name ? tab.data.Name : tab.data.ResourceType + ' Record:' + tab.data.ResourceRecordID;
|
|
826
|
-
wsItem.
|
|
840
|
+
wsItem.WorkspaceID = this.workSpace.ID;
|
|
827
841
|
wsItem.ResourceTypeID = (_a = tab.data) === null || _a === void 0 ? void 0 : _a.ResourceTypeID;
|
|
828
842
|
}
|
|
829
843
|
tab.workspaceItem = wsItem;
|
|
@@ -899,7 +913,7 @@ export class NavigationComponent {
|
|
|
899
913
|
const index = this.tabs.indexOf(tab);
|
|
900
914
|
if (index >= 0)
|
|
901
915
|
this.tabs.splice(index, 1);
|
|
902
|
-
if (!tab.workspaceItem && tab.id && tab.id > 0) {
|
|
916
|
+
if (!tab.workspaceItem && tab.id && tab.id.length > 0) {
|
|
903
917
|
// we lazy load the workspaceItem entity objects, so we load it here so we can delete it below, but only when it wasn't already loaded
|
|
904
918
|
const md = new Metadata();
|
|
905
919
|
tab.workspaceItem = (yield md.GetEntityObject('Workspace Items'));
|
|
@@ -1006,7 +1020,22 @@ export class NavigationComponent {
|
|
|
1006
1020
|
LoadDrawer() {
|
|
1007
1021
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1008
1022
|
const md = new Metadata();
|
|
1023
|
+
//make sure SharedService_resourceTypes is populated first
|
|
1024
|
+
yield SharedService.RefreshData();
|
|
1009
1025
|
this.drawerItems.length = 0; // clear the array
|
|
1026
|
+
const items = md.VisibleExplorerNavigationItems.filter(item => item.ShowInNavigationDrawer);
|
|
1027
|
+
items.forEach(item => {
|
|
1028
|
+
const drawerItem = {
|
|
1029
|
+
id: item.ID,
|
|
1030
|
+
selected: false,
|
|
1031
|
+
text: item.Name,
|
|
1032
|
+
path: item.Route,
|
|
1033
|
+
icon: item.IconCSSClass
|
|
1034
|
+
};
|
|
1035
|
+
this.drawerItems.push(drawerItem);
|
|
1036
|
+
});
|
|
1037
|
+
this.loading = false;
|
|
1038
|
+
return;
|
|
1010
1039
|
// the Drawer configuraion has the following sections:
|
|
1011
1040
|
/*
|
|
1012
1041
|
* Home - a simple view that shows all the other options - dashboards, reports, data, etc, and ALSO shows Favorites and Most Recently Used Records
|
|
@@ -1022,8 +1051,6 @@ export class NavigationComponent {
|
|
|
1022
1051
|
yield this.loadSkip(md);
|
|
1023
1052
|
// Data
|
|
1024
1053
|
yield this.loadApplications(md);
|
|
1025
|
-
//make sure SharedService_resourceTypes is populated first
|
|
1026
|
-
yield SharedService.RefreshData();
|
|
1027
1054
|
// Dashboards
|
|
1028
1055
|
yield this.loadResourceType('Dashboards', 'Dashboards', '/dashboards', md.CurrentUser.ID);
|
|
1029
1056
|
// Reports
|
|
@@ -1036,7 +1063,6 @@ export class NavigationComponent {
|
|
|
1036
1063
|
yield this.loadLists();
|
|
1037
1064
|
// Settings
|
|
1038
1065
|
yield this.loadSettings(md);
|
|
1039
|
-
this.loading = false;
|
|
1040
1066
|
});
|
|
1041
1067
|
}
|
|
1042
1068
|
loadSkip(md) {
|
|
@@ -1198,7 +1224,7 @@ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Navigat
|
|
|
1198
1224
|
args: [DrawerComponent, { static: false }]
|
|
1199
1225
|
}], mjTabStrip: [{
|
|
1200
1226
|
type: ViewChild,
|
|
1201
|
-
args: ['mjTabstrip']
|
|
1227
|
+
args: ['mjTabstrip', { static: false }]
|
|
1202
1228
|
}], drawerWrapper: [{
|
|
1203
1229
|
type: ViewChild,
|
|
1204
1230
|
args: ['drawerWrapper', { static: false }]
|
|
@@ -1212,4 +1238,4 @@ NavigationComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Navigat
|
|
|
1212
1238
|
type: HostListener,
|
|
1213
1239
|
args: ['document:click']
|
|
1214
1240
|
}] }); })();
|
|
1215
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NavigationComponent, { className: "NavigationComponent"
|
|
1241
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NavigationComponent, { className: "NavigationComponent" }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/query-browser-component/query-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"query-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/query-browser-component/query-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAA2B,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;;AAKnE,qBAMa,qBAAsB,SAAQ,oBAAoB;IAEjD,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,KAAK;IAAkB,OAAO,CAAC,aAAa;gBAApE,MAAM,EAAE,MAAM,EAAU,KAAK,EAAE,cAAc,EAAU,aAAa,EAAE,aAAa;IAajG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBxB,SAAS,CAAC,IAAI,EAAE,IAAI;IAWpB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;yCAlDvD,qBAAqB;2CAArB,qBAAqB;CA0DjC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
1
7
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
8
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
9
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,13 +14,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
14
|
});
|
|
9
15
|
};
|
|
10
16
|
import { Component } from '@angular/core';
|
|
17
|
+
import { BaseNavigationComponent } from '@memberjunction/ng-shared';
|
|
11
18
|
import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
|
|
12
19
|
import { LogStatus, Metadata } from '@memberjunction/core';
|
|
20
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
13
21
|
import * as i0 from "@angular/core";
|
|
14
22
|
import * as i1 from "@angular/router";
|
|
15
23
|
import * as i2 from "@memberjunction/ng-shared";
|
|
16
24
|
import * as i3 from "../generic-browser-list/generic-browser-list.component";
|
|
17
|
-
|
|
25
|
+
let QueryBrowserComponent = class QueryBrowserComponent extends BaseBrowserComponent {
|
|
18
26
|
constructor(router, route, sharedService) {
|
|
19
27
|
var _a;
|
|
20
28
|
super();
|
|
@@ -37,9 +45,9 @@ export class QueryBrowserComponent extends BaseBrowserComponent {
|
|
|
37
45
|
this.route.paramMap.subscribe((params) => __awaiter(this, void 0, void 0, function* () {
|
|
38
46
|
this.selectedFolderID = Number(params.get('folderID')) || null;
|
|
39
47
|
const md = new Metadata();
|
|
40
|
-
let categoryFilter = this.selectedFolderID ? `CategoryID = ${this.selectedFolderID}` : `CategoryID IS NULL`;
|
|
48
|
+
let categoryFilter = this.selectedFolderID ? `CategoryID = '${this.selectedFolderID}'` : `CategoryID IS NULL`;
|
|
41
49
|
let resourceFilter = `${categoryFilter}`;
|
|
42
|
-
let resourceCategoryFilter = this.selectedFolderID ? `ParentID = ${this.selectedFolderID}` : `ParentID IS NULL`;
|
|
50
|
+
let resourceCategoryFilter = this.selectedFolderID ? `ParentID = '${this.selectedFolderID}'` : `ParentID IS NULL`;
|
|
43
51
|
LogStatus("resourceFilter: " + resourceFilter + " category filter: " + resourceCategoryFilter);
|
|
44
52
|
yield this.LoadData({
|
|
45
53
|
sortItemsAfterLoad: true,
|
|
@@ -67,7 +75,7 @@ export class QueryBrowserComponent extends BaseBrowserComponent {
|
|
|
67
75
|
let query = item.Data;
|
|
68
76
|
this.router.navigate(['resource', this.routeNameSingular, query.ID], { queryParams: { edit: true } });
|
|
69
77
|
}
|
|
70
|
-
}
|
|
78
|
+
};
|
|
71
79
|
QueryBrowserComponent.ɵfac = function QueryBrowserComponent_Factory(t) { return new (t || QueryBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
|
|
72
80
|
QueryBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryBrowserComponent, selectors: [["mj-query-browser"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 5, consts: [["title", "Queries", "itemType", "query", "iconName", "data", "addText", "Create New Query", "ItemEntityName", "Queries", "CategoryEntityName", "Query Categories", 3, "itemClickEvent", "AfterAddFolderEvent", "AfterAddItemEvent", "AfterDeleteItemEvent", "AfterDeleteFolderEvent", "viewModeChangeEvent", "BeforeUpdateItemEvent", "items", "selectedFolderID", "showLoader", "disableAddButton", "disableEditButton"]], template: function QueryBrowserComponent_Template(rf, ctx) { if (rf & 1) {
|
|
73
81
|
i0.ɵɵelementStart(0, "app-generic-browser-list", 0);
|
|
@@ -76,8 +84,12 @@ QueryBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Query
|
|
|
76
84
|
} if (rf & 2) {
|
|
77
85
|
i0.ɵɵproperty("items", ctx.items)("selectedFolderID", ctx.selectedFolderID)("showLoader", ctx.showLoader)("disableAddButton", true)("disableEditButton", true);
|
|
78
86
|
} }, dependencies: [i3.GenericBrowserListComponent], styles: [".k-card-body[_ngcontent-%COMP%] {\n height: 80px;\n }", ".main-area[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view[_ngcontent-%COMP%] {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n .list-view .k-listview-header, \n .list-view .k-listview-footer {\n border: none;\n}\n .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header[_ngcontent-%COMP%], \n.footer[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header[_ngcontent-%COMP%] {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header[_ngcontent-%COMP%] .head-tag[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header[_ngcontent-%COMP%] .count[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card[_ngcontent-%COMP%] .view-icon[_ngcontent-%COMP%] {\n color: var(--sideNav);\n}\n.card-wrapper[_ngcontent-%COMP%] {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper[_ngcontent-%COMP%] .k-card-body[_ngcontent-%COMP%] {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper[_ngcontent-%COMP%] .view-card[_ngcontent-%COMP%] {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body[_ngcontent-%COMP%] .view-card-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container[_ngcontent-%COMP%] {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity[_ngcontent-%COMP%] .title-wrap[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area[_ngcontent-%COMP%] .card-list[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}"] });
|
|
87
|
+
QueryBrowserComponent = __decorate([
|
|
88
|
+
RegisterClass(BaseNavigationComponent, 'Queries')
|
|
89
|
+
], QueryBrowserComponent);
|
|
90
|
+
export { QueryBrowserComponent };
|
|
79
91
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryBrowserComponent, [{
|
|
80
92
|
type: Component,
|
|
81
93
|
args: [{ selector: 'mj-query-browser', template: "<app-generic-browser-list \ntitle=\"Queries\" \nitemType=\"query\"\niconName=\"data\" \n[items]=\"items\"\naddText=\"Create New Query\"\nItemEntityName=\"Queries\"\nCategoryEntityName=\"Query Categories\"\n(itemClickEvent)=\"itemClick($event)\"\n(AfterAddFolderEvent)=\"onEvent($event)\"\n(AfterAddItemEvent)=\"onEvent($event)\"\n(AfterDeleteItemEvent)=\"onEvent($event)\"\n(AfterDeleteFolderEvent)=\"onEvent($event)\"\n[selectedFolderID]=\"selectedFolderID\"\n[showLoader]=\"showLoader\"\n[disableAddButton]=\"true\"\n[disableEditButton]=\"true\"\n(viewModeChangeEvent)=\"onViewModeChange($event)\"\n(BeforeUpdateItemEvent)=\"onBeforeUpdateItemEvent($event)\"\n/>", styles: [".k-card-body {\n height: 80px;\n }", "\n.main-area {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n gap: 24px;\n padding: 24px 0;\n}\n.list-view {\n padding: 16px;\n min-width: 300px;\n border-radius: 4px;\n background: #FAFAFA;\n border: none;\n}\n::ng-deep .list-view .k-listview-header, \n::ng-deep .list-view .k-listview-footer {\n border: none;\n}\n::ng-deep .list-view .k-listview-content {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 4px;\n background: #fff;\n padding: 16px;\n}\n\n.header,\n.footer {\n color: #424242;\n font-size: 16px;\n height: auto;\n margin:0;\n}\n\n.header {\n color: #424242;\n margin-bottom: 16px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.header .head-tag {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\nfont-size: 16px;\nfont-style: normal;\nfont-weight: 400;\nline-height: 20px;\n}\n\n.header .count {\n width: 24px;\n height: 24px;\n min-width: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 50%;\n}\n.footer {\n font-size: 14px;\n margin-top: 16px;\n}\n\n.list-item {\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 30px;\n cursor: pointer;\n margin: 4px;\n}\n.card-container {\n margin: 0;\n padding: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n\n\n\n\n \n.view-card .view-icon {\n color: var(--sideNav);\n}\n.card-wrapper {\n border: 1px solid rgba(0, 0, 0, 0.08);\n border-radius: 6px;\n width: 100% !important;\n}\n.card-wrapper .k-card-body {\n background: #fff;\n padding: 12px 20px;\n}\n.card-wrapper .view-card {\n overflow: auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n padding: 4px 15px;\n}\n.view-card .btn-wrapper {\n display: flex;\n align-items: center;\n}\n\n.k-card-body .view-card-content h5 {\n color: #424242;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n letter-spacing: 0.18px;\n}\n.k-card-body .view-card-content p {\n color: #666;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n height: 48px;\n margin-bottom: 0;\n}\n.card-container {\n padding: 0;\n margin: 0;\n box-shadow: none;\n}\n.card-header-entity {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 20px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.card-header-entity .title-wrap h1 {\n color: #424242;\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin-bottom: 15px;\n}\n.card-header-entity .title-wrap {\n display: flex;\n flex-direction: column;\n}\n.card-header-entity .title-wrap p {\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n color: #424242;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n}\n.main-area .card-list {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 20px;\n}\n"] }]
|
|
82
94
|
}], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], null); })();
|
|
83
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryBrowserComponent, { className: "QueryBrowserComponent"
|
|
95
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryBrowserComponent, { className: "QueryBrowserComponent" }); })();
|