@memberjunction/ng-explorer-core 2.1.4 → 2.2.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/lib/files/files.component.d.ts +2 -2
- package/dist/lib/files/files.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +18 -2
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +170 -34
- package/package.json +18 -18
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseNavigationComponent } from '@memberjunction/ng-shared';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class FilesComponent extends BaseNavigationComponent {
|
|
4
|
-
CategoryID:
|
|
5
|
-
categorySelected(newCategoryID:
|
|
4
|
+
CategoryID: string | undefined;
|
|
5
|
+
categorySelected(newCategoryID: string | undefined): void;
|
|
6
6
|
constructor();
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<FilesComponent, never>;
|
|
8
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<FilesComponent, "app-files", never, {}, {}, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.component.d.ts","sourceRoot":"","sources":["../../../src/lib/files/files.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;;AAEpE,qBAMa,cAAe,SAAQ,uBAAuB;IAClD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,gBAAgB,CAAC,aAAa,EAAE,MAAM;;
|
|
1
|
+
{"version":3,"file":"files.component.d.ts","sourceRoot":"","sources":["../../../src/lib/files/files.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;;AAEpE,qBAMa,cAAe,SAAQ,uBAAuB;IAClD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS;;yCAH9C,cAAc;2CAAd,cAAc;CAU1B"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { BaseEntity } from '@memberjunction/core';
|
|
4
|
-
import { UserViewEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { BaseEntity, EntityFieldInfo } from '@memberjunction/core';
|
|
4
|
+
import { UserViewEntity, ViewColumnInfo } from '@memberjunction/core-entities';
|
|
5
5
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
6
|
+
import { PageChangeEvent } from '@progress/kendo-angular-grid';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class SingleListDetailComponent implements OnInit {
|
|
8
9
|
private router;
|
|
9
10
|
private route;
|
|
10
11
|
private sharedService;
|
|
11
12
|
private listRecord;
|
|
13
|
+
private listID;
|
|
12
14
|
showLoader: boolean;
|
|
13
15
|
sourceGridData: BaseEntity[];
|
|
14
16
|
filteredGridData: BaseEntity[];
|
|
@@ -20,9 +22,23 @@ export declare class SingleListDetailComponent implements OnInit {
|
|
|
20
22
|
private filterItemsSubject;
|
|
21
23
|
private filter;
|
|
22
24
|
userViewsToAdd: UserViewEntity[];
|
|
25
|
+
page: number;
|
|
26
|
+
pageSize: number;
|
|
27
|
+
gridHeight: number;
|
|
28
|
+
sortSettings: any[];
|
|
29
|
+
selectedKeys: any[];
|
|
30
|
+
selectModeEnabled: boolean;
|
|
31
|
+
viewColumns: Partial<ViewColumnInfo>[];
|
|
32
|
+
visibleColumns: Partial<ViewColumnInfo>[];
|
|
33
|
+
totalRowCount: number;
|
|
34
|
+
viewExecutionTime: number;
|
|
23
35
|
constructor(router: Router, route: ActivatedRoute, sharedService: SharedService);
|
|
24
36
|
ngOnInit(): Promise<void>;
|
|
25
37
|
private loadList;
|
|
38
|
+
pageChange(event: PageChangeEvent): void;
|
|
39
|
+
GetColumnTitle(col: Partial<ViewColumnInfo>): string;
|
|
40
|
+
getEditor(ef: EntityFieldInfo | undefined): "boolean" | "text" | "numeric" | "date";
|
|
41
|
+
GetColumnCellStyle(col: Partial<ViewColumnInfo>): Record<'text-align' | 'vertical-align', string>;
|
|
26
42
|
toggleAddDialog(show: boolean): Promise<void>;
|
|
27
43
|
private loadEntityViews;
|
|
28
44
|
addTolist(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-list-detail.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-list-detail/single-list-detail.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"single-list-detail.component.d.ts","sourceRoot":"","sources":["../../../src/lib/single-list-detail/single-list-detail.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAwF,MAAM,sBAAsB,CAAC;AACzJ,OAAO,EAAgC,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAG/D,qBAKa,yBAA0B,YAAW,MAAM;IA6BvC,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,KAAK;IAAkB,OAAO,CAAC,aAAa;IA5BzF,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,MAAM,CAAc;IAErB,UAAU,EAAE,OAAO,CAAS;IAC5B,cAAc,EAAE,UAAU,EAAE,CAAM;IAClC,gBAAgB,EAAE,UAAU,EAAE,CAAM;IACpC,QAAQ,EAAE,MAAM,CAAM;IACtB,aAAa,EAAE,OAAO,CAAS;IAC/B,aAAa,EAAE,OAAO,CAAS;IAC/B,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAQ;IAEjD,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,MAAM,CAAc;IAErB,cAAc,EAAE,cAAc,EAAE,CAAM;IAEtC,IAAI,EAAE,MAAM,CAAK;IACjB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,MAAM,CAAO;IACzB,YAAY,EAAE,GAAG,EAAE,CAAM;IACzB,YAAY,EAAE,GAAG,EAAE,CAAM;IACzB,iBAAiB,EAAE,OAAO,CAAS;IACnC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAM;IAC5C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAM;IAC/C,aAAa,EAAE,MAAM,CAAK;IAC1B,iBAAiB,EAAE,MAAM,CAAK;gBAEhB,MAAM,EAAE,MAAM,EAAU,KAAK,EAAE,cAAc,EAAU,aAAa,EAAE,aAAa;IAO3F,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YASxB,QAAQ;IAiGf,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAK/C,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM;IAe7C,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM;IAiB1F,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,gBAAgB,EAAE,MAAM,CAAC;IAoBpF,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAQ5C,eAAe;IA0BhB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDhC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,WAAW;IAiBZ,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIjD,0BAA0B,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;yCAzTpD,yBAAyB;2CAAzB,yBAAyB;CA4TrC"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { Component } from '@angular/core';
|
|
11
|
-
import { LogError, LogStatus, Metadata, RunView } from '@memberjunction/core';
|
|
11
|
+
import { EntityFieldTSType, LogError, LogStatus, Metadata, RunView } from '@memberjunction/core';
|
|
12
12
|
import { Subject, debounceTime } from 'rxjs';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/router";
|
|
@@ -19,55 +19,99 @@ import * as i5 from "@progress/kendo-angular-dialog";
|
|
|
19
19
|
import * as i6 from "@progress/kendo-angular-indicators";
|
|
20
20
|
import * as i7 from "@progress/kendo-angular-buttons";
|
|
21
21
|
import * as i8 from "@progress/kendo-angular-inputs";
|
|
22
|
-
const _c0 =
|
|
22
|
+
const _c0 = () => ({ "text-align": "center", "vertical-align": "center" });
|
|
23
|
+
const _c1 = () => ({ "font-weight": "bold", "background-color": "white" });
|
|
24
|
+
const _c2 = a0 => ({ "list-selected": a0 });
|
|
23
25
|
function SingleListDetailComponent_ng_template_12_Template(rf, ctx) { if (rf & 1) {
|
|
24
26
|
i0.ɵɵelement(0, "span", 12);
|
|
25
27
|
} }
|
|
26
28
|
function SingleListDetailComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
27
29
|
i0.ɵɵelement(0, "kendo-loader", 9);
|
|
28
30
|
} }
|
|
31
|
+
function SingleListDetailComponent_Conditional_14_kendo_grid_checkbox_column_1_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelement(0, "kendo-grid-checkbox-column", 15);
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(4, _c0));
|
|
35
|
+
i0.ɵɵproperty("width", 50)("headerStyle", i0.ɵɵpureFunction0(5, _c1));
|
|
36
|
+
} }
|
|
37
|
+
function SingleListDetailComponent_Conditional_14_kendo_grid_column_2_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵtext(0);
|
|
39
|
+
i0.ɵɵpipe(1, "number");
|
|
40
|
+
i0.ɵɵpipe(2, "number");
|
|
41
|
+
i0.ɵɵelement(3, "br");
|
|
42
|
+
i0.ɵɵelementStart(4, "span", 19);
|
|
43
|
+
i0.ɵɵtext(5);
|
|
44
|
+
i0.ɵɵpipe(6, "number");
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
48
|
+
i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(1, 3, ctx_r2.filteredGridData.length), "", ctx_r2.totalRowCount > ctx_r2.filteredGridData.length ? " of " + i0.ɵɵpipeBind1(2, 5, ctx_r2.totalRowCount) : " rows", "");
|
|
49
|
+
i0.ɵɵadvance(5);
|
|
50
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(6, 7, ctx_r2.viewExecutionTime, "1.2-2"), " seconds");
|
|
51
|
+
} }
|
|
52
|
+
function SingleListDetailComponent_Conditional_14_kendo_grid_column_2_1_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵtemplate(0, SingleListDetailComponent_Conditional_14_kendo_grid_column_2_1_ng_template_0_Template, 7, 10, "ng-template", 18);
|
|
54
|
+
} }
|
|
55
|
+
function SingleListDetailComponent_Conditional_14_kendo_grid_column_2_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
i0.ɵɵelementStart(0, "kendo-grid-column", 16);
|
|
57
|
+
i0.ɵɵtemplate(1, SingleListDetailComponent_Conditional_14_kendo_grid_column_2_1_Template, 1, 0, null, 17);
|
|
58
|
+
i0.ɵɵelementEnd();
|
|
59
|
+
} if (rf & 2) {
|
|
60
|
+
const item_r4 = ctx.$implicit;
|
|
61
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
62
|
+
i0.ɵɵstyleMap(ctx_r2.GetColumnCellStyle(item_r4));
|
|
63
|
+
i0.ɵɵproperty("field", item_r4.Name || "")("title", ctx_r2.GetColumnTitle(item_r4))("width", item_r4.width ? item_r4.width : 100)("editable", (item_r4.EntityField == null ? null : item_r4.EntityField.AllowUpdateAPI) || false)("editor", ctx_r2.getEditor(item_r4.EntityField))("headerStyle", i0.ɵɵpureFunction0(9, _c1));
|
|
64
|
+
i0.ɵɵadvance();
|
|
65
|
+
i0.ɵɵproperty("ngIf", item_r4 === ctx_r2.visibleColumns[0]);
|
|
66
|
+
} }
|
|
29
67
|
function SingleListDetailComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
i0.ɵɵ
|
|
68
|
+
i0.ɵɵelementStart(0, "kendo-grid", 10);
|
|
69
|
+
i0.ɵɵtemplate(1, SingleListDetailComponent_Conditional_14_kendo_grid_checkbox_column_1_Template, 1, 6, "kendo-grid-checkbox-column", 13)(2, SingleListDetailComponent_Conditional_14_kendo_grid_column_2_Template, 2, 10, "kendo-grid-column", 14);
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
31
71
|
} if (rf & 2) {
|
|
32
72
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
33
73
|
i0.ɵɵproperty("data", ctx_r2.filteredGridData);
|
|
74
|
+
i0.ɵɵadvance();
|
|
75
|
+
i0.ɵɵproperty("ngIf", ctx_r2.selectModeEnabled);
|
|
76
|
+
i0.ɵɵadvance();
|
|
77
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.visibleColumns);
|
|
34
78
|
} }
|
|
35
79
|
function SingleListDetailComponent_kendo_dialog_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
36
80
|
i0.ɵɵelement(0, "kendo-loader", 9);
|
|
37
81
|
} }
|
|
38
82
|
function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
-
const
|
|
40
|
-
i0.ɵɵelementStart(0, "button",
|
|
41
|
-
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
42
|
-
i0.ɵɵelement(1, "span",
|
|
83
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
84
|
+
i0.ɵɵelementStart(0, "button", 31);
|
|
85
|
+
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const userView_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.removeViewFromSelectedList(userView_r7)); });
|
|
86
|
+
i0.ɵɵelement(1, "span", 32);
|
|
43
87
|
i0.ɵɵtext(2, " Remove ");
|
|
44
88
|
i0.ɵɵelementEnd();
|
|
45
89
|
} }
|
|
46
90
|
function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
-
const
|
|
48
|
-
i0.ɵɵelementStart(0, "button",
|
|
49
|
-
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
50
|
-
i0.ɵɵelementStart(1, "div",
|
|
91
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
92
|
+
i0.ɵɵelementStart(0, "button", 33);
|
|
93
|
+
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const userView_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.addViewToSelectedList(userView_r7)); });
|
|
94
|
+
i0.ɵɵelementStart(1, "div", 34);
|
|
51
95
|
i0.ɵɵelement(2, "span", 4);
|
|
52
96
|
i0.ɵɵtext(3, " Add ");
|
|
53
97
|
i0.ɵɵelementEnd()();
|
|
54
98
|
} }
|
|
55
99
|
function SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
-
i0.ɵɵelementStart(0, "div",
|
|
100
|
+
i0.ɵɵelementStart(0, "div", 27)(1, "div", 28);
|
|
57
101
|
i0.ɵɵtext(2);
|
|
58
102
|
i0.ɵɵelementEnd();
|
|
59
|
-
i0.ɵɵtemplate(3, SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_3_Template, 3, 0, "button",
|
|
103
|
+
i0.ɵɵtemplate(3, SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_3_Template, 3, 0, "button", 29)(4, SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Conditional_4_Template, 4, 0, "button", 30);
|
|
60
104
|
i0.ɵɵelementEnd();
|
|
61
105
|
i0.ɵɵelement(5, "hr");
|
|
62
106
|
} if (rf & 2) {
|
|
63
|
-
const
|
|
107
|
+
const userView_r7 = ctx.$implicit;
|
|
64
108
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
65
109
|
i0.ɵɵadvance();
|
|
66
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3,
|
|
110
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.userViewsToAdd.includes(userView_r7)));
|
|
67
111
|
i0.ɵɵadvance();
|
|
68
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
112
|
+
i0.ɵɵtextInterpolate1(" ", userView_r7.Name, " ");
|
|
69
113
|
i0.ɵɵadvance();
|
|
70
|
-
i0.ɵɵconditional(ctx_r2.userViewsToAdd.includes(
|
|
114
|
+
i0.ɵɵconditional(ctx_r2.userViewsToAdd.includes(userView_r7) ? 3 : 4);
|
|
71
115
|
} }
|
|
72
116
|
function SingleListDetailComponent_kendo_dialog_15_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
73
117
|
i0.ɵɵrepeaterCreate(0, SingleListDetailComponent_kendo_dialog_15_Conditional_6_For_1_Template, 6, 5, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
@@ -76,22 +120,22 @@ function SingleListDetailComponent_kendo_dialog_15_Conditional_6_Template(rf, ct
|
|
|
76
120
|
i0.ɵɵrepeater(ctx_r2.userViews);
|
|
77
121
|
} }
|
|
78
122
|
function SingleListDetailComponent_kendo_dialog_15_Template(rf, ctx) { if (rf & 1) {
|
|
79
|
-
const
|
|
80
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
81
|
-
i0.ɵɵlistener("close", function SingleListDetailComponent_kendo_dialog_15_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(
|
|
82
|
-
i0.ɵɵelementStart(1, "div",
|
|
83
|
-
i0.ɵɵelement(2, "kendo-textbox",
|
|
123
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
124
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 20);
|
|
125
|
+
i0.ɵɵlistener("close", function SingleListDetailComponent_kendo_dialog_15_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleAddDialog(false)); });
|
|
126
|
+
i0.ɵɵelementStart(1, "div", 21);
|
|
127
|
+
i0.ɵɵelement(2, "kendo-textbox", 22);
|
|
84
128
|
i0.ɵɵelementEnd();
|
|
85
129
|
i0.ɵɵelement(3, "hr");
|
|
86
|
-
i0.ɵɵelementStart(4, "div",
|
|
130
|
+
i0.ɵɵelementStart(4, "div", 23);
|
|
87
131
|
i0.ɵɵtemplate(5, SingleListDetailComponent_kendo_dialog_15_Conditional_5_Template, 1, 0, "kendo-loader", 9)(6, SingleListDetailComponent_kendo_dialog_15_Conditional_6_Template, 2, 0);
|
|
88
132
|
i0.ɵɵelementEnd();
|
|
89
|
-
i0.ɵɵelementStart(7, "kendo-dialog-actions",
|
|
90
|
-
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Template_button_click_8_listener() { i0.ɵɵrestoreView(
|
|
133
|
+
i0.ɵɵelementStart(7, "kendo-dialog-actions", 24)(8, "button", 25);
|
|
134
|
+
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.addTolist()); });
|
|
91
135
|
i0.ɵɵtext(9, " Done ");
|
|
92
136
|
i0.ɵɵelementEnd();
|
|
93
|
-
i0.ɵɵelementStart(10, "button",
|
|
94
|
-
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Template_button_click_10_listener() { i0.ɵɵrestoreView(
|
|
137
|
+
i0.ɵɵelementStart(10, "button", 26);
|
|
138
|
+
i0.ɵɵlistener("click", function SingleListDetailComponent_kendo_dialog_15_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleAddDialog(false)); });
|
|
95
139
|
i0.ɵɵtext(11, " Cancel ");
|
|
96
140
|
i0.ɵɵelementEnd()()();
|
|
97
141
|
} if (rf & 2) {
|
|
@@ -112,6 +156,7 @@ export class SingleListDetailComponent {
|
|
|
112
156
|
this.route = route;
|
|
113
157
|
this.sharedService = sharedService;
|
|
114
158
|
this.listRecord = null;
|
|
159
|
+
this.listID = "";
|
|
115
160
|
this.showLoader = false;
|
|
116
161
|
this.sourceGridData = [];
|
|
117
162
|
this.filteredGridData = [];
|
|
@@ -123,6 +168,16 @@ export class SingleListDetailComponent {
|
|
|
123
168
|
this.filterItemsSubject = new Subject();
|
|
124
169
|
this.filter = '';
|
|
125
170
|
this.userViewsToAdd = [];
|
|
171
|
+
this.page = 0;
|
|
172
|
+
this.pageSize = 50;
|
|
173
|
+
this.gridHeight = 750;
|
|
174
|
+
this.sortSettings = [];
|
|
175
|
+
this.selectedKeys = [];
|
|
176
|
+
this.selectModeEnabled = false;
|
|
177
|
+
this.viewColumns = [];
|
|
178
|
+
this.visibleColumns = [];
|
|
179
|
+
this.totalRowCount = 0;
|
|
180
|
+
this.viewExecutionTime = 0;
|
|
126
181
|
this.filterItemsSubject
|
|
127
182
|
.pipe(debounceTime(this._resizeDebounceTime))
|
|
128
183
|
.subscribe(() => this.filterItems(this.filter));
|
|
@@ -139,7 +194,9 @@ export class SingleListDetailComponent {
|
|
|
139
194
|
}
|
|
140
195
|
loadList(listID) {
|
|
141
196
|
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
const startTime = new Date().getTime();
|
|
142
198
|
if (listID) {
|
|
199
|
+
this.listID = listID;
|
|
143
200
|
this.showLoader = true;
|
|
144
201
|
const md = new Metadata();
|
|
145
202
|
const rv = new RunView();
|
|
@@ -158,18 +215,44 @@ export class SingleListDetailComponent {
|
|
|
158
215
|
LogError("Error fetching EntityInfo with ID " + listEntity.EntityID);
|
|
159
216
|
return;
|
|
160
217
|
}
|
|
218
|
+
for (const field of entity.Fields) {
|
|
219
|
+
if (!field.DefaultInView) {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
let column = {
|
|
223
|
+
ID: field.ID,
|
|
224
|
+
Name: field.CodeName,
|
|
225
|
+
DisplayName: field.DisplayName,
|
|
226
|
+
EntityField: field,
|
|
227
|
+
hidden: false,
|
|
228
|
+
orderIndex: field.Sequence,
|
|
229
|
+
width: field.DefaultColumnWidth || 100
|
|
230
|
+
};
|
|
231
|
+
this.viewColumns.push(column);
|
|
232
|
+
}
|
|
233
|
+
/*make sure there is an entity field linked*/
|
|
234
|
+
this.visibleColumns = this.viewColumns.filter(x => x.hidden === false && x.EntityField).sort((a, b) => {
|
|
235
|
+
const aOrder = a.orderIndex != null ? a.orderIndex : 9999;
|
|
236
|
+
const bOrder = b.orderIndex != null ? b.orderIndex : 9999;
|
|
237
|
+
return aOrder - bOrder;
|
|
238
|
+
});
|
|
161
239
|
this.listName = listEntity.Name;
|
|
162
240
|
this.listRecord = listEntity;
|
|
163
241
|
const runViewResult = yield rv.RunView({
|
|
164
242
|
EntityName: 'List Details',
|
|
165
243
|
ResultType: 'entity_object',
|
|
166
|
-
ExtraFilter: `ListID = '${listID}'
|
|
244
|
+
ExtraFilter: `ListID = '${listID}'`,
|
|
245
|
+
MaxRows: this.pageSize,
|
|
246
|
+
IgnoreMaxRows: false,
|
|
247
|
+
StartRow: Math.max(0, (this.page - 1) * this.pageSize)
|
|
167
248
|
}, md.CurrentUser);
|
|
168
249
|
if (!runViewResult.Success) {
|
|
169
250
|
LogError("Error loading list details for list with ID " + listID);
|
|
170
251
|
return;
|
|
171
252
|
}
|
|
253
|
+
this.totalRowCount = runViewResult.TotalRowCount;
|
|
172
254
|
const listDetailRecords = runViewResult.Results;
|
|
255
|
+
LogStatus(`Found ${listDetailRecords.length} records in list ${listID}`);
|
|
173
256
|
if (listDetailRecords.length > 0) {
|
|
174
257
|
const recordIDs = listDetailRecords.map(ld => `'${ld.RecordID}'`).join(',');
|
|
175
258
|
let extraFilter = `ID IN (${recordIDs})`;
|
|
@@ -181,12 +264,65 @@ export class SingleListDetailComponent {
|
|
|
181
264
|
LogError(`Error loading ${entity.Name} records with extra filter ${extraFilter}`);
|
|
182
265
|
return;
|
|
183
266
|
}
|
|
267
|
+
LogStatus(`Found ${rvResult.Results.length} records in entity ${entity.Name}`);
|
|
184
268
|
this.sourceGridData = this.filteredGridData = rvResult.Results;
|
|
269
|
+
this.viewExecutionTime = (new Date().getTime() - startTime) / 1000; // in seconds
|
|
185
270
|
}
|
|
186
271
|
this.showLoader = false;
|
|
187
272
|
}
|
|
188
273
|
});
|
|
189
274
|
}
|
|
275
|
+
pageChange(event) {
|
|
276
|
+
this.page = event.skip;
|
|
277
|
+
this.loadList(this.listID);
|
|
278
|
+
}
|
|
279
|
+
GetColumnTitle(col) {
|
|
280
|
+
if (col.DisplayName) {
|
|
281
|
+
// use view's display name first if it exists
|
|
282
|
+
return col.DisplayName;
|
|
283
|
+
}
|
|
284
|
+
else if (col.EntityField && col.EntityField.DisplayName) {
|
|
285
|
+
// then use entity display name, if that exist
|
|
286
|
+
return col.EntityField.DisplayName;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
// otherwise just use the column name
|
|
290
|
+
return col.Name || '';
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
getEditor(ef) {
|
|
294
|
+
if (!ef) {
|
|
295
|
+
return "text";
|
|
296
|
+
}
|
|
297
|
+
switch (ef.TSType) {
|
|
298
|
+
case EntityFieldTSType.Boolean:
|
|
299
|
+
return "boolean";
|
|
300
|
+
case EntityFieldTSType.Date:
|
|
301
|
+
return "date";
|
|
302
|
+
case EntityFieldTSType.Number:
|
|
303
|
+
return "numeric";
|
|
304
|
+
default:
|
|
305
|
+
return "text";
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
GetColumnCellStyle(col) {
|
|
309
|
+
if (!col || !col.EntityField) {
|
|
310
|
+
return { 'text-align': 'left', 'vertical-align': 'top' };
|
|
311
|
+
}
|
|
312
|
+
const fieldType = col.EntityField.Type.trim().toLowerCase();
|
|
313
|
+
switch (fieldType) {
|
|
314
|
+
case "money":
|
|
315
|
+
case 'decimal':
|
|
316
|
+
case 'real':
|
|
317
|
+
case 'float':
|
|
318
|
+
case 'int':
|
|
319
|
+
// right align numbers,
|
|
320
|
+
return { 'text-align': 'right', 'vertical-align': 'top' };
|
|
321
|
+
default:
|
|
322
|
+
// left align everything else
|
|
323
|
+
return { 'text-align': 'left', 'vertical-align': 'top' };
|
|
324
|
+
}
|
|
325
|
+
}
|
|
190
326
|
toggleAddDialog(show) {
|
|
191
327
|
return __awaiter(this, void 0, void 0, function* () {
|
|
192
328
|
this.showAddDialog = show;
|
|
@@ -258,7 +394,7 @@ export class SingleListDetailComponent {
|
|
|
258
394
|
if (count === hashMap.size) {
|
|
259
395
|
this.showAddLoader = false;
|
|
260
396
|
this.toggleAddDialog(false);
|
|
261
|
-
this.loadList(this.listRecord.ID
|
|
397
|
+
this.loadList(this.listRecord.ID);
|
|
262
398
|
}
|
|
263
399
|
});
|
|
264
400
|
}
|
|
@@ -289,7 +425,7 @@ export class SingleListDetailComponent {
|
|
|
289
425
|
}
|
|
290
426
|
}
|
|
291
427
|
SingleListDetailComponent.ɵfac = function SingleListDetailComponent_Factory(t) { return new (t || SingleListDetailComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
|
|
292
|
-
SingleListDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleListDetailComponent, selectors: [["mj-list-detail"]], decls: 16, vars: 5, consts: [["searchInput", ""], [1, "app-container"], [1, "flex-display-row-header"], ["kendobutton", "", "themeColor", "info", 1, "add-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "title-wrapper"], [1, "search"], ["type", "text", "placeholder", "Search in List", "size", "large", "rounded", "large", "fillMode", "solid", 3, "keyup", "clearButton"], ["kendoTextBoxPrefixTemplate", "", 3, "showSeparator"], ["type", "converging-spinner"], [3, "data"], ["class", "dialog-wrapper", "title", "Select Views to Add", 3, "minWidth", "width", "height", "close", 4, "ngIf"], [1, "fa-solid", "fa-magnifying-glass", "margin-left-small"], ["title", "Select Views to Add", 1, "dialog-wrapper", 3, "close", "minWidth", "width", "height"], [1, "search-header"], ["id", "listSearch", "placeholder", "Search Views...", "kendoTextBox", "", 1, "search-bar", 3, "clearButton"], [1, "overflow-y-scroll"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click", "disabled"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click", "disabled"], [1, "list-item"], [1, "list-text", 3, "ngClass"], ["kendoButton", "", 1, "btn-no-border", "btn-selected"], ["kendoButton", "", 1, "btn-no-border"], ["kendoButton", "", 1, "btn-no-border", "btn-selected", 3, "click"], [1, "fa-solid", "fa-minus"], ["kendoButton", "", 1, "btn-no-border", 3, "click"], [1, "btn-margin-right"]], template: function SingleListDetailComponent_Template(rf, ctx) { if (rf & 1) {
|
|
428
|
+
SingleListDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleListDetailComponent, selectors: [["mj-list-detail"]], decls: 16, vars: 5, consts: [["searchInput", ""], [1, "app-container"], [1, "flex-display-row-header"], ["kendobutton", "", "themeColor", "info", 1, "add-btn", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "title-wrapper"], [1, "search"], ["type", "text", "placeholder", "Search in List", "size", "large", "rounded", "large", "fillMode", "solid", 3, "keyup", "clearButton"], ["kendoTextBoxPrefixTemplate", "", 3, "showSeparator"], ["type", "converging-spinner"], [3, "data"], ["class", "dialog-wrapper", "title", "Select Views to Add", 3, "minWidth", "width", "height", "close", 4, "ngIf"], [1, "fa-solid", "fa-magnifying-glass", "margin-left-small"], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "width", "headerStyle"], [3, "field", "title", "width", "editable", "editor", "headerStyle"], [4, "ngIf"], ["kendoGridFooterTemplate", ""], [2, "font-size", "smaller", "font-weight", "normal"], ["title", "Select Views to Add", 1, "dialog-wrapper", 3, "close", "minWidth", "width", "height"], [1, "search-header"], ["id", "listSearch", "placeholder", "Search Views...", "kendoTextBox", "", 1, "search-bar", 3, "clearButton"], [1, "overflow-y-scroll"], [1, "popup-actions-btn"], ["kendoButton", "", "themeColor", "info", 1, "cancel-btn", 3, "click", "disabled"], ["kendoButton", "", "fillMode", "outline", "themeColor", "info", 1, "yes-btn", 3, "click", "disabled"], [1, "list-item"], [1, "list-text", 3, "ngClass"], ["kendoButton", "", 1, "btn-no-border", "btn-selected"], ["kendoButton", "", 1, "btn-no-border"], ["kendoButton", "", 1, "btn-no-border", "btn-selected", 3, "click"], [1, "fa-solid", "fa-minus"], ["kendoButton", "", 1, "btn-no-border", 3, "click"], [1, "btn-margin-right"]], template: function SingleListDetailComponent_Template(rf, ctx) { if (rf & 1) {
|
|
293
429
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
294
430
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h1");
|
|
295
431
|
i0.ɵɵtext(3);
|
|
@@ -303,7 +439,7 @@ SingleListDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: S
|
|
|
303
439
|
i0.ɵɵlistener("keyup", function SingleListDetailComponent_Template_kendo_textbox_keyup_10_listener() { i0.ɵɵrestoreView(_r1); const searchInput_r2 = i0.ɵɵreference(11); return i0.ɵɵresetView(ctx.onKeyup(searchInput_r2.value)); });
|
|
304
440
|
i0.ɵɵtemplate(12, SingleListDetailComponent_ng_template_12_Template, 1, 0, "ng-template", 8);
|
|
305
441
|
i0.ɵɵelementEnd()()()();
|
|
306
|
-
i0.ɵɵtemplate(13, SingleListDetailComponent_Conditional_13_Template, 1, 0, "kendo-loader", 9)(14, SingleListDetailComponent_Conditional_14_Template,
|
|
442
|
+
i0.ɵɵtemplate(13, SingleListDetailComponent_Conditional_13_Template, 1, 0, "kendo-loader", 9)(14, SingleListDetailComponent_Conditional_14_Template, 3, 3, "kendo-grid", 10);
|
|
307
443
|
i0.ɵɵelementEnd();
|
|
308
444
|
i0.ɵɵtemplate(15, SingleListDetailComponent_kendo_dialog_15_Template, 12, 7, "kendo-dialog", 11);
|
|
309
445
|
} if (rf & 2) {
|
|
@@ -317,9 +453,9 @@ SingleListDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: S
|
|
|
317
453
|
i0.ɵɵconditional(ctx.showLoader ? 13 : 14);
|
|
318
454
|
i0.ɵɵadvance(2);
|
|
319
455
|
i0.ɵɵproperty("ngIf", ctx.showAddDialog);
|
|
320
|
-
} }, dependencies: [i3.NgClass, i3.NgIf, i4.GridComponent, i5.DialogComponent, i5.DialogActionsComponent, i6.LoaderComponent, i7.ButtonComponent, i8.TextBoxComponent, i8.TextBoxPrefixTemplateDirective], styles: [".app-container[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.flex-display-row-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 10px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n\n.title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n}\n\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n.add-btn[_ngcontent-%COMP%] {\n padding: 10px 30px;\n border-radius: 10px;\n color: white;\n background-color: var(--border-blue);\n font-size: initial;\n cursor: pointer;\n}\n\n.add-btn[_ngcontent-%COMP%]:hover {\n filter: brightness(85%);\n}\n\n.margin-left-small[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n\n.overflow-y-scroll[_ngcontent-%COMP%] {\n overflow-y: auto;\n max-height: 300px;\n}\n\n.padding-bottom-small[_ngcontent-%COMP%] {\n padding-bottom: 10px;\n}\n\n.list-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n.btn-no-border[_ngcontent-%COMP%] {\n border: none;\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}\n\n.btn-selected[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n\n.list-text[_ngcontent-%COMP%] {\n font-size: large;\n}\n.list-selected[_ngcontent-%COMP%] {\n font-weight: bold;\n color: var(--border-blue);\n}\n\n.btn-margin-right[_ngcontent-%COMP%] {\n margin-right: 35px;\n}\n\n.divider[_ngcontent-%COMP%] {\n color: lightgray\n}\n\n.search-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 0;\n}\n\n.search-bar[_ngcontent-%COMP%] {\n width: 65%;\n padding-bottom: 10px;\n}\n\n.dialog-wrapper[_ngcontent-%COMP%] {\n padding: 15px 25px;\n}\n\n.btn-outline[_ngcontent-%COMP%] {\n border: 2px solid var(--border-blue);\n border-radius: 8px;\n padding: 5px 30px;\n\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}"] });
|
|
456
|
+
} }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.GridComponent, i4.ColumnComponent, i4.FooterTemplateDirective, i4.CheckboxColumnComponent, i5.DialogComponent, i5.DialogActionsComponent, i6.LoaderComponent, i7.ButtonComponent, i8.TextBoxComponent, i8.TextBoxPrefixTemplateDirective, i3.DecimalPipe], styles: [".app-container[_ngcontent-%COMP%] {\n padding: 20px;\n}\n\n.flex-display-row-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 10px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n\n.title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n}\n\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n.add-btn[_ngcontent-%COMP%] {\n padding: 10px 30px;\n border-radius: 10px;\n color: white;\n background-color: var(--border-blue);\n font-size: initial;\n cursor: pointer;\n}\n\n.add-btn[_ngcontent-%COMP%]:hover {\n filter: brightness(85%);\n}\n\n.margin-left-small[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n\n.overflow-y-scroll[_ngcontent-%COMP%] {\n overflow-y: auto;\n max-height: 300px;\n}\n\n.padding-bottom-small[_ngcontent-%COMP%] {\n padding-bottom: 10px;\n}\n\n.list-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n.btn-no-border[_ngcontent-%COMP%] {\n border: none;\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}\n\n.btn-selected[_ngcontent-%COMP%] {\n font-weight: bold;\n}\n\n.list-text[_ngcontent-%COMP%] {\n font-size: large;\n}\n.list-selected[_ngcontent-%COMP%] {\n font-weight: bold;\n color: var(--border-blue);\n}\n\n.btn-margin-right[_ngcontent-%COMP%] {\n margin-right: 35px;\n}\n\n.divider[_ngcontent-%COMP%] {\n color: lightgray\n}\n\n.search-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 0;\n}\n\n.search-bar[_ngcontent-%COMP%] {\n width: 65%;\n padding-bottom: 10px;\n}\n\n.dialog-wrapper[_ngcontent-%COMP%] {\n padding: 15px 25px;\n}\n\n.btn-outline[_ngcontent-%COMP%] {\n border: 2px solid var(--border-blue);\n border-radius: 8px;\n padding: 5px 30px;\n\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}"] });
|
|
321
457
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleListDetailComponent, [{
|
|
322
458
|
type: Component,
|
|
323
|
-
args: [{ selector: 'mj-list-detail', template: "<div class=\"app-container\">\n <div class=\"flex-display-row-header\">\n <h1>{{listName}}</h1>\n <button kendobutton class=\"add-btn\" (click)=\"toggleAddDialog(true)\" themeColor=\"info\">\n <span class=\"fa-solid fa-plus\"></span>\n Add More Records\n </button>\n </div>\n <div>\n <div class=\"title-wrapper\">\n <div class=\"search\">\n <kendo-textbox \n type=\"text\" \n #searchInput \n placeholder=\"Search in List\" \n (keyup)=\"onKeyup(searchInput.value)\"\n [clearButton]=\"true\"\n size=\"large\"\n rounded=\"large\"\n fillMode=\"solid\"\n >\n <ng-template kendoTextBoxPrefixTemplate [showSeparator]=\"true\">\n <span class=\"fa-solid fa-magnifying-glass margin-left-small\"></span>\n </ng-template>\n </kendo-textbox>\n </div>\n </div>\n </div>\n @if(showLoader){\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else{\n <kendo-grid [data]=\"filteredGridData\"
|
|
459
|
+
args: [{ selector: 'mj-list-detail', template: "<div class=\"app-container\">\n <div class=\"flex-display-row-header\">\n <h1>{{listName}}</h1>\n <button kendobutton class=\"add-btn\" (click)=\"toggleAddDialog(true)\" themeColor=\"info\">\n <span class=\"fa-solid fa-plus\"></span>\n Add More Records\n </button>\n </div>\n <div>\n <div class=\"title-wrapper\">\n <div class=\"search\">\n <kendo-textbox \n type=\"text\" \n #searchInput \n placeholder=\"Search in List\" \n (keyup)=\"onKeyup(searchInput.value)\"\n [clearButton]=\"true\"\n size=\"large\"\n rounded=\"large\"\n fillMode=\"solid\"\n >\n <ng-template kendoTextBoxPrefixTemplate [showSeparator]=\"true\">\n <span class=\"fa-solid fa-magnifying-glass margin-left-small\"></span>\n </ng-template>\n </kendo-textbox>\n </div>\n </div>\n </div>\n @if(showLoader){\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else{\n\n <!--\n <kendo-grid #kendoGrid\n mjFillContainer\n [resizable]=\"true\"\n [data]=\"gridView\" \n [skip]=\"skip\"\n [pageSize]=\"pageSize\"\n scrollable=\"virtual\"\n [rowHeight]=\"36\"\n (pageChange)=\"pageChange($event)\"\n [loading]=\"isLoading\"\n [height]=\"gridHeight\"\n [sortable]=\"true\"\n [sort]=\"sortSettings\" \n [resizable]=\"true\"\n [reorderable]=\"true\"\n [selectable]=\"true\"\n kendoGridSelectBy\n [(selectedKeys)]=\"selectedKeys\"\n (cellClick)=\"cellClickHandler($event)\"\n (cellClose)=\"cellCloseHandler($event)\"\n (columnReorder)=\"columnReorder($event)\"\n (columnResize)=\"columnResize($event)\"\n (selectionChange)=\"selectionChange($event)\"\n (sortChange)=\"sortChanged($event)\"\n >\n -->\n\n <kendo-grid [data]=\"filteredGridData\">\n <kendo-grid-checkbox-column \n *ngIf=\"selectModeEnabled\" \n [width]=\"50\" \n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\" \n [style]=\"{'text-align': 'center', 'vertical-align': 'center'}\">\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column \n *ngFor=\"let item of visibleColumns\" \n [field]=\"item.Name || ''\" \n [title]=\"GetColumnTitle(item)\"\n [width]=\"item.width ? item.width : 100\"\n [editable]=\"item.EntityField?.AllowUpdateAPI || false\"\n [editor]=\"getEditor(item.EntityField)\"\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\"\n [style]=\"this.GetColumnCellStyle(item)\"\n >\n <ng-template *ngIf=\"item===visibleColumns[0]\" kendoGridFooterTemplate >\n {{this.filteredGridData.length | number}}{{this.totalRowCount > this.filteredGridData.length ? ' of ' + (this.totalRowCount | number) : ' rows'}}<br/><span style=\"font-size: smaller; font-weight: normal;\">{{viewExecutionTime | number:'1.2-2'}} seconds</span>\n </ng-template>\n </kendo-grid-column>\n\n <!--\n <kendo-excelexport #excelExport [data]=\"exportData\" [fileName]=\"(_viewEntity ? _viewEntity.Get('Name') : _entityInfo?.Name) + '.xlsx'\">\n <kendo-excelexport-column *ngFor=\"let exportCol of exportColumns\" [field]=\"exportCol.Name\" [title]=\"exportCol.Name\">\n </kendo-excelexport-column>\n </kendo-excelexport>\n -->\n </kendo-grid>\n }\n</div>\n\n<kendo-dialog\nclass=\"dialog-wrapper\"\ntitle=\"Select Views to Add\"\n*ngIf=\"showAddDialog\"\n(close)=\"toggleAddDialog(false)\"\n[minWidth]=\"250\"\n[width]=\"650\"\n[height]=\"550\"\n>\n<div class=\"search-header\">\n <kendo-textbox\n id=\"listSearch\"\n placeholder=\"Search Views...\"\n kendoTextBox\n [clearButton]=\"true\"\n class=\"search-bar\"\n></kendo-textbox>\n<!--\n<button kendoButton class=\"btn-no-border btn-outline\">\n <span class=\"fa-solid fa-plus\"></span>\n New View\n</button>\n-->\n</div>\n<hr>\n<div class=\"overflow-y-scroll\">\n @if(showAddLoader){\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else {\n @for(userView of userViews; track userView){\n <div class=\"list-item\">\n <div class=\"list-text\" [ngClass]=\"{'list-selected': userViewsToAdd.includes(userView)}\">\n {{userView.Name}}\n </div>\n @if(userViewsToAdd.includes(userView)){\n <button kendoButton class=\"btn-no-border btn-selected\" (click)=\"removeViewFromSelectedList(userView)\">\n <span class=\"fa-solid fa-minus\"></span>\n Remove\n </button>\n }\n @else {\n <button kendoButton class=\"btn-no-border\" (click)=\"addViewToSelectedList(userView)\">\n <div class=\"btn-margin-right\">\n <span class=\"fa-solid fa-plus\"></span>\n Add\n </div>\n </button>\n }\n </div>\n <hr>\n }\n }\n</div>\n<kendo-dialog-actions class=\"popup-actions-btn\">\n <button class=\"cancel-btn\" (click)=\"addTolist()\" [disabled]=\"showAddLoader\" kendoButton themeColor=\"info\">\n Done\n </button>\n <button class=\"yes-btn\" (click)=\"toggleAddDialog(false)\" [disabled]=\"showAddLoader\" kendoButton fillMode=\"outline\" themeColor=\"info\">\n Cancel\n </button>\n</kendo-dialog-actions>\n</kendo-dialog>", styles: [".app-container {\n padding: 20px;\n}\n\n.flex-display-row-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-bottom: 10px;\n}\n\n.title-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n\n.title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.title-wrapper .search input {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n}\n\n .title-wrapper .search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n.add-btn {\n padding: 10px 30px;\n border-radius: 10px;\n color: white;\n background-color: var(--border-blue);\n font-size: initial;\n cursor: pointer;\n}\n\n.add-btn:hover {\n filter: brightness(85%);\n}\n\n.margin-left-small {\n margin-left: 10px;\n}\n\n\n.overflow-y-scroll {\n overflow-y: auto;\n max-height: 300px;\n}\n\n.padding-bottom-small {\n padding-bottom: 10px;\n}\n\n.list-item {\n display: flex;\n justify-content: space-between;\n padding-bottom: 5px;\n align-items: center;\n}\n\n.btn-no-border {\n border: none;\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}\n\n.btn-selected {\n font-weight: bold;\n}\n\n.list-text {\n font-size: large;\n}\n.list-selected {\n font-weight: bold;\n color: var(--border-blue);\n}\n\n.btn-margin-right {\n margin-right: 35px;\n}\n\n.divider {\n color: lightgray\n}\n\n.search-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 0;\n}\n\n.search-bar {\n width: 65%;\n padding-bottom: 10px;\n}\n\n.dialog-wrapper {\n padding: 15px 25px;\n}\n\n.btn-outline {\n border: 2px solid var(--border-blue);\n border-radius: 8px;\n padding: 5px 30px;\n\n background: none;\n color: var(--border-blue);\n font-size: 16px;\n font-weight: 500;\n cursor: pointer;\n}"] }]
|
|
324
460
|
}], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], null); })();
|
|
325
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SingleListDetailComponent, { className: "SingleListDetailComponent", filePath: "src/lib/single-list-detail/single-list-detail.component.ts", lineNumber:
|
|
461
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SingleListDetailComponent, { className: "SingleListDetailComponent", filePath: "src/lib/single-list-detail/single-list-detail.component.ts", lineNumber: 14 }); })();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-explorer-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "MemberJunction Explorer: Core Angular Components",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -26,23 +26,23 @@
|
|
|
26
26
|
"@angular/router": "18.0.2"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@memberjunction/global": "2.
|
|
30
|
-
"@memberjunction/core": "2.
|
|
31
|
-
"@memberjunction/ng-compare-records": "2.
|
|
32
|
-
"@memberjunction/ng-file-storage": "2.
|
|
33
|
-
"@memberjunction/ng-record-changes": "2.
|
|
34
|
-
"@memberjunction/ng-container-directives": "2.
|
|
35
|
-
"@memberjunction/ng-user-view-grid": "2.
|
|
36
|
-
"@memberjunction/ng-query-grid": "2.
|
|
37
|
-
"@memberjunction/ng-user-view-properties": "2.
|
|
38
|
-
"@memberjunction/ng-shared": "2.
|
|
39
|
-
"@memberjunction/ng-tabstrip": "2.
|
|
40
|
-
"@memberjunction/ng-ask-skip": "2.
|
|
41
|
-
"@memberjunction/ng-auth-services": "2.
|
|
42
|
-
"@memberjunction/ng-explorer-settings": "2.
|
|
43
|
-
"@memberjunction/ng-base-forms": "2.
|
|
44
|
-
"@memberjunction/ng-entity-form-dialog": "2.
|
|
45
|
-
"@memberjunction/ng-record-selector": "2.
|
|
29
|
+
"@memberjunction/global": "2.2.0",
|
|
30
|
+
"@memberjunction/core": "2.2.0",
|
|
31
|
+
"@memberjunction/ng-compare-records": "2.2.0",
|
|
32
|
+
"@memberjunction/ng-file-storage": "2.2.0",
|
|
33
|
+
"@memberjunction/ng-record-changes": "2.2.0",
|
|
34
|
+
"@memberjunction/ng-container-directives": "2.2.0",
|
|
35
|
+
"@memberjunction/ng-user-view-grid": "2.2.0",
|
|
36
|
+
"@memberjunction/ng-query-grid": "2.2.0",
|
|
37
|
+
"@memberjunction/ng-user-view-properties": "2.2.0",
|
|
38
|
+
"@memberjunction/ng-shared": "2.2.0",
|
|
39
|
+
"@memberjunction/ng-tabstrip": "2.2.0",
|
|
40
|
+
"@memberjunction/ng-ask-skip": "2.2.0",
|
|
41
|
+
"@memberjunction/ng-auth-services": "2.2.0",
|
|
42
|
+
"@memberjunction/ng-explorer-settings": "2.2.0",
|
|
43
|
+
"@memberjunction/ng-base-forms": "2.2.0",
|
|
44
|
+
"@memberjunction/ng-entity-form-dialog": "2.2.0",
|
|
45
|
+
"@memberjunction/ng-record-selector": "2.2.0",
|
|
46
46
|
"@progress/kendo-angular-grid": "16.2.0",
|
|
47
47
|
"@progress/kendo-angular-buttons": "16.2.0",
|
|
48
48
|
"@progress/kendo-angular-listview": "16.2.0",
|