@memberjunction/ng-user-view-grid 1.1.3 → 1.2.1
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.
|
@@ -64,6 +64,7 @@ export declare class UserViewGridComponent implements OnInit, AfterViewInit {
|
|
|
64
64
|
recordsToCompare: any[];
|
|
65
65
|
compareMode: boolean;
|
|
66
66
|
mergeMode: boolean;
|
|
67
|
+
duplicateMode: boolean;
|
|
67
68
|
selectableSettings: SelectableSettings;
|
|
68
69
|
selectedKeys: any[];
|
|
69
70
|
isCompareDialogOpened: boolean;
|
|
@@ -113,8 +114,10 @@ export declare class UserViewGridComponent implements OnInit, AfterViewInit {
|
|
|
113
114
|
};
|
|
114
115
|
selectionChange(args: SelectionEvent): void;
|
|
115
116
|
enableMergeOrCompare(cancel: boolean | undefined, type: 'merge' | 'compare'): void;
|
|
117
|
+
enableCheckbox(cancel: boolean | undefined, type: 'merge' | 'compare' | 'duplicate' | ''): void;
|
|
116
118
|
closeConfirmMergeDialog(event: 'cancel' | 'yes' | 'no'): Promise<void>;
|
|
117
|
-
closeCompareDialog(event: 'close' | 'cancel' | 'merge'): Promise<void>;
|
|
119
|
+
closeCompareDialog(event: 'close' | 'cancel' | 'merge' | 'duplicate'): Promise<void>;
|
|
120
|
+
fimdDuplicateRecords(): Promise<void>;
|
|
118
121
|
exportColumns: ViewColumnInfo[];
|
|
119
122
|
exportData: any[];
|
|
120
123
|
doExcelExport(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-user-view-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-user-view-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAU,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAC/H,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAY,UAAU,EAAW,aAAa,EAAE,eAAe,EAAqB,UAAU,EAAY,eAAe,
|
|
1
|
+
{"version":3,"file":"ng-user-view-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-user-view-grid.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { Component, ViewChild, ElementRef, Output, EventEmitter, Input } from '@angular/core';
|
|
11
|
-
import { Metadata, RunView, EntityFieldTSType, LogError, ComparePrimaryKeys } from '@memberjunction/core';
|
|
11
|
+
import { Metadata, RunView, EntityFieldTSType, LogError, ComparePrimaryKeys, PotentialDuplicateRequest } from '@memberjunction/core';
|
|
12
12
|
import { ViewInfo } from '@memberjunction/core-entities';
|
|
13
13
|
import { GridComponent } from "@progress/kendo-angular-grid";
|
|
14
14
|
import { Keys } from '@progress/kendo-angular-common';
|
|
@@ -26,219 +26,206 @@ import * as i6 from "@progress/kendo-angular-excel-export";
|
|
|
26
26
|
import * as i7 from "@progress/kendo-angular-buttons";
|
|
27
27
|
import * as i8 from "@memberjunction/ng-compare-records";
|
|
28
28
|
import * as i9 from "@memberjunction/ng-container-directives";
|
|
29
|
+
import * as i10 from "@progress/kendo-angular-inputs";
|
|
29
30
|
const _c0 = ["kendoGrid"];
|
|
30
31
|
const _c1 = ["excelExport"];
|
|
31
32
|
const _c2 = ["recordCompareRef"];
|
|
32
33
|
const _c3 = ["analysisQuestion"];
|
|
33
34
|
const _c4 = ["analysisResults"];
|
|
34
35
|
const _c5 = ["compareDialogContainer"];
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
i0.ɵɵelementStart(0, "button", 15);
|
|
38
|
-
i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.doExcelExport()); });
|
|
39
|
-
i0.ɵɵelement(1, "span", 16);
|
|
40
|
-
i0.ɵɵtext(2, " Export to Excel ");
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
36
|
+
function UserViewGridComponent_ng_template_13_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelement(0, "span", 23);
|
|
42
38
|
} }
|
|
43
|
-
function
|
|
39
|
+
function UserViewGridComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
44
40
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
45
|
-
i0.ɵɵelementStart(0, "button",
|
|
46
|
-
i0.ɵɵlistener("click", function
|
|
47
|
-
i0.ɵɵ
|
|
41
|
+
i0.ɵɵelementStart(0, "button", 24);
|
|
42
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.doExcelExport()); });
|
|
43
|
+
i0.ɵɵelement(1, "span", 25);
|
|
44
|
+
i0.ɵɵtext(2, " Export to Excel ");
|
|
48
45
|
i0.ɵɵelementEnd();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
51
|
-
i0.ɵɵproperty("disabled", ctx_r9.compareMode && ctx_r9.recordsToCompare.length < 2);
|
|
52
46
|
} }
|
|
53
|
-
function
|
|
47
|
+
function UserViewGridComponent_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
54
48
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
55
|
-
i0.ɵɵelementStart(0, "button",
|
|
56
|
-
i0.ɵɵlistener("click", function
|
|
57
|
-
i0.ɵɵtext(1, "
|
|
49
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
50
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.enableCheckbox(false, "duplicate")); });
|
|
51
|
+
i0.ɵɵtext(1, " Search For Duplicates ");
|
|
58
52
|
i0.ɵɵelementEnd();
|
|
59
53
|
} if (rf & 2) {
|
|
60
|
-
const
|
|
61
|
-
i0.ɵɵproperty("disabled",
|
|
54
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
55
|
+
i0.ɵɵproperty("disabled", ctx_r3.duplicateMode && ctx_r3.recordsToCompare.length < 2);
|
|
62
56
|
} }
|
|
63
|
-
function
|
|
57
|
+
function UserViewGridComponent_button_17_Template(rf, ctx) { if (rf & 1) {
|
|
64
58
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
65
|
-
i0.ɵɵelementStart(0, "button",
|
|
66
|
-
i0.ɵɵlistener("click", function
|
|
67
|
-
i0.ɵɵtext(1, "
|
|
59
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
60
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.enableCheckbox(false, "duplicate")); });
|
|
61
|
+
i0.ɵɵtext(1, " Search For Duplicates ");
|
|
68
62
|
i0.ɵɵelementEnd();
|
|
63
|
+
} if (rf & 2) {
|
|
64
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
65
|
+
i0.ɵɵproperty("disabled", ctx_r4.duplicateMode && ctx_r4.recordsToCompare.length < 2);
|
|
69
66
|
} }
|
|
70
|
-
function
|
|
67
|
+
function UserViewGridComponent_button_18_Template(rf, ctx) { if (rf & 1) {
|
|
71
68
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
72
|
-
i0.ɵɵelementStart(0, "button",
|
|
73
|
-
i0.ɵɵlistener("click", function
|
|
74
|
-
i0.ɵɵtext(1, "
|
|
69
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
70
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r24.enableCheckbox(false, "compare")); });
|
|
71
|
+
i0.ɵɵtext(1, "Compare");
|
|
75
72
|
i0.ɵɵelementEnd();
|
|
76
73
|
} if (rf & 2) {
|
|
77
|
-
const
|
|
78
|
-
i0.ɵɵproperty("disabled",
|
|
74
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
75
|
+
i0.ɵɵproperty("disabled", ctx_r5.compareMode && ctx_r5.recordsToCompare.length < 2);
|
|
79
76
|
} }
|
|
80
|
-
function
|
|
77
|
+
function UserViewGridComponent_button_19_Template(rf, ctx) { if (rf & 1) {
|
|
81
78
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "button",
|
|
83
|
-
i0.ɵɵlistener("click", function
|
|
84
|
-
i0.ɵɵtext(1, "
|
|
79
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
80
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r26 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r26.enableCheckbox(false, "compare")); });
|
|
81
|
+
i0.ɵɵtext(1, "Compare");
|
|
85
82
|
i0.ɵɵelementEnd();
|
|
83
|
+
} if (rf & 2) {
|
|
84
|
+
const ctx_r6 = i0.ɵɵnextContext();
|
|
85
|
+
i0.ɵɵproperty("disabled", ctx_r6.compareMode && ctx_r6.recordsToCompare.length < 2);
|
|
86
86
|
} }
|
|
87
|
-
function
|
|
87
|
+
function UserViewGridComponent_button_20_Template(rf, ctx) { if (rf & 1) {
|
|
88
88
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
89
|
-
i0.ɵɵelementStart(0, "button",
|
|
90
|
-
i0.ɵɵlistener("click", function
|
|
91
|
-
i0.ɵɵtext(1, "
|
|
89
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
90
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_20_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.enableCheckbox(false, "merge")); });
|
|
91
|
+
i0.ɵɵtext(1, "Merge");
|
|
92
92
|
i0.ɵɵelementEnd();
|
|
93
|
+
} if (rf & 2) {
|
|
94
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
95
|
+
i0.ɵɵproperty("disabled", ctx_r7.mergeMode && ctx_r7.recordsToCompare.length < 2);
|
|
93
96
|
} }
|
|
94
|
-
function
|
|
97
|
+
function UserViewGridComponent_button_21_Template(rf, ctx) { if (rf & 1) {
|
|
95
98
|
const _r31 = i0.ɵɵgetCurrentView();
|
|
96
|
-
i0.ɵɵelementStart(0, "button",
|
|
97
|
-
i0.ɵɵlistener("click", function
|
|
98
|
-
i0.ɵɵ
|
|
99
|
-
i0.ɵɵtext(2, " Refresh ");
|
|
99
|
+
i0.ɵɵelementStart(0, "button", 26);
|
|
100
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_button_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.enableCheckbox(false, "merge")); });
|
|
101
|
+
i0.ɵɵtext(1, "Merge");
|
|
100
102
|
i0.ɵɵelementEnd();
|
|
101
|
-
} }
|
|
102
|
-
function UserViewGridComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_ng_template_3_button_0_Template, 3, 0, "button", 11)(1, UserViewGridComponent_ng_template_3_button_1_Template, 2, 1, "button", 12)(2, UserViewGridComponent_ng_template_3_button_2_Template, 2, 1, "button", 12)(3, UserViewGridComponent_ng_template_3_button_3_Template, 2, 0, "button", 13)(4, UserViewGridComponent_ng_template_3_button_4_Template, 2, 1, "button", 12)(5, UserViewGridComponent_ng_template_3_button_5_Template, 2, 0, "button", 13)(6, UserViewGridComponent_ng_template_3_button_6_Template, 2, 0, "button", 13)(7, UserViewGridComponent_ng_template_3_button_7_Template, 3, 0, "button", 14);
|
|
104
103
|
} if (rf & 2) {
|
|
105
|
-
const
|
|
106
|
-
i0.ɵɵproperty("
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
i0.ɵɵ
|
|
110
|
-
i0.ɵɵ
|
|
111
|
-
i0.ɵɵ
|
|
112
|
-
i0.ɵɵ
|
|
113
|
-
i0.ɵɵ
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
i0.ɵɵ
|
|
117
|
-
i0.ɵɵ
|
|
118
|
-
i0.ɵɵ
|
|
119
|
-
i0.ɵɵ
|
|
120
|
-
i0.ɵɵ
|
|
104
|
+
const ctx_r8 = i0.ɵɵnextContext();
|
|
105
|
+
i0.ɵɵproperty("disabled", ctx_r8.mergeMode && ctx_r8.recordsToCompare.length < 2);
|
|
106
|
+
} }
|
|
107
|
+
function UserViewGridComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
const _r33 = i0.ɵɵgetCurrentView();
|
|
109
|
+
i0.ɵɵelementStart(0, "button", 24);
|
|
110
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.enableCheckbox(true, "")); });
|
|
111
|
+
i0.ɵɵtext(1, " Cancel ");
|
|
112
|
+
i0.ɵɵelementEnd();
|
|
113
|
+
} }
|
|
114
|
+
function UserViewGridComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
|
116
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
117
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_23_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.RefreshFromSavedParams()); });
|
|
118
|
+
i0.ɵɵelement(1, "span", 28);
|
|
119
|
+
i0.ɵɵtext(2, " Refresh ");
|
|
120
|
+
i0.ɵɵelementEnd();
|
|
121
121
|
} }
|
|
122
122
|
const _c6 = () => ({ "text-align": "center", "vertical-align": "center" });
|
|
123
123
|
const _c7 = () => ({ "font-weight": "bold", "background-color": "white" });
|
|
124
|
-
function
|
|
125
|
-
i0.ɵɵelement(0, "kendo-grid-checkbox-column",
|
|
124
|
+
function UserViewGridComponent_kendo_grid_checkbox_column_26_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelement(0, "kendo-grid-checkbox-column", 29);
|
|
126
126
|
} if (rf & 2) {
|
|
127
127
|
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(4, _c6));
|
|
128
128
|
i0.ɵɵproperty("width", 50)("headerStyle", i0.ɵɵpureFunction0(5, _c7));
|
|
129
129
|
} }
|
|
130
|
-
function
|
|
131
|
-
i0.ɵɵ
|
|
132
|
-
i0.ɵɵpipe(1, "number");
|
|
133
|
-
i0.ɵɵpipe(2, "number");
|
|
134
|
-
i0.ɵɵelement(3, "br");
|
|
135
|
-
i0.ɵɵelementStart(4, "span", 24);
|
|
136
|
-
i0.ɵɵtext(5);
|
|
137
|
-
i0.ɵɵpipe(6, "number");
|
|
138
|
-
i0.ɵɵelementEnd();
|
|
130
|
+
function UserViewGridComponent_kendo_grid_column_27_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
i0.ɵɵelement(0, "kendo-grid-column", 30);
|
|
139
132
|
} if (rf & 2) {
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
i0.ɵɵ
|
|
143
|
-
i0.ɵɵ
|
|
144
|
-
} }
|
|
145
|
-
function UserViewGridComponent_kendo_grid_column_5_1_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_kendo_grid_column_5_1_ng_template_0_Template, 7, 10, "ng-template", 23);
|
|
133
|
+
const item_r36 = ctx.$implicit;
|
|
134
|
+
const ctx_r13 = i0.ɵɵnextContext();
|
|
135
|
+
i0.ɵɵstyleMap(ctx_r13.GetColumnCellStyle(item_r36));
|
|
136
|
+
i0.ɵɵproperty("field", item_r36.Name)("title", ctx_r13.GetColumnTitle(item_r36))("width", item_r36.width ? item_r36.width : 100)("editable", item_r36.EntityField.AllowUpdateAPI)("editor", ctx_r13.getEditor(item_r36.EntityField))("headerStyle", i0.ɵɵpureFunction0(8, _c7));
|
|
147
137
|
} }
|
|
148
|
-
function
|
|
149
|
-
i0.ɵɵ
|
|
150
|
-
i0.ɵɵtemplate(1, UserViewGridComponent_kendo_grid_column_5_1_Template, 1, 0, null, 10);
|
|
151
|
-
i0.ɵɵelementEnd();
|
|
138
|
+
function UserViewGridComponent_kendo_excelexport_column_30_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
i0.ɵɵelement(0, "kendo-excelexport-column", 31);
|
|
152
140
|
} if (rf & 2) {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
i0.ɵɵstyleMap(ctx_r3.GetColumnCellStyle(item_r32));
|
|
156
|
-
i0.ɵɵproperty("field", item_r32.Name)("title", ctx_r3.GetColumnTitle(item_r32))("width", item_r32.width ? item_r32.width : 100)("editable", item_r32.EntityField.AllowUpdateAPI)("editor", ctx_r3.getEditor(item_r32.EntityField))("headerStyle", i0.ɵɵpureFunction0(9, _c7));
|
|
157
|
-
i0.ɵɵadvance();
|
|
158
|
-
i0.ɵɵproperty("ngIf", item_r32 === ctx_r3.visibleColumns[0]);
|
|
141
|
+
const exportCol_r37 = ctx.$implicit;
|
|
142
|
+
i0.ɵɵproperty("field", exportCol_r37.Name)("title", exportCol_r37.Name);
|
|
159
143
|
} }
|
|
160
|
-
function
|
|
161
|
-
i0.ɵɵ
|
|
162
|
-
|
|
163
|
-
const
|
|
164
|
-
i0.ɵɵ
|
|
144
|
+
function UserViewGridComponent_div_33_kendo_window_2_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
+
const _r46 = i0.ɵɵgetCurrentView();
|
|
146
|
+
i0.ɵɵelementStart(0, "button", 42);
|
|
147
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r45.closeCompareDialog("merge")); });
|
|
148
|
+
i0.ɵɵtext(1, " Merge Records ");
|
|
149
|
+
i0.ɵɵelementEnd();
|
|
165
150
|
} }
|
|
166
|
-
function
|
|
167
|
-
const
|
|
168
|
-
i0.ɵɵelementStart(0, "button",
|
|
169
|
-
i0.ɵɵlistener("click", function
|
|
170
|
-
i0.ɵɵtext(1, "
|
|
151
|
+
function UserViewGridComponent_div_33_kendo_window_2_button_6_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
const _r48 = i0.ɵɵgetCurrentView();
|
|
153
|
+
i0.ɵɵelementStart(0, "button", 42);
|
|
154
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const ctx_r47 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r47.fimdDuplicateRecords()); });
|
|
155
|
+
i0.ɵɵtext(1, " Search for Duplicates ");
|
|
171
156
|
i0.ɵɵelementEnd();
|
|
172
157
|
} }
|
|
173
|
-
function
|
|
174
|
-
const
|
|
175
|
-
i0.ɵɵelementStart(0, "button",
|
|
176
|
-
i0.ɵɵlistener("click", function
|
|
177
|
-
i0.ɵɵtext(1, "
|
|
158
|
+
function UserViewGridComponent_div_33_kendo_window_2_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
+
const _r50 = i0.ɵɵgetCurrentView();
|
|
160
|
+
i0.ɵɵelementStart(0, "button", 43);
|
|
161
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r49 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r49.closeCompareDialog("close")); });
|
|
162
|
+
i0.ɵɵtext(1, " Close ");
|
|
178
163
|
i0.ɵɵelementEnd();
|
|
179
164
|
} }
|
|
180
|
-
function
|
|
181
|
-
const
|
|
182
|
-
i0.ɵɵelementStart(0, "button",
|
|
183
|
-
i0.ɵɵlistener("click", function
|
|
184
|
-
i0.ɵɵtext(1, "
|
|
165
|
+
function UserViewGridComponent_div_33_kendo_window_2_button_8_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
const _r52 = i0.ɵɵgetCurrentView();
|
|
167
|
+
i0.ɵɵelementStart(0, "button", 43);
|
|
168
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.closeCompareDialog("cancel")); });
|
|
169
|
+
i0.ɵɵtext(1, " Cancel ");
|
|
185
170
|
i0.ɵɵelementEnd();
|
|
186
171
|
} }
|
|
187
|
-
function
|
|
188
|
-
const
|
|
189
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
190
|
-
i0.ɵɵlistener("close", function
|
|
191
|
-
i0.ɵɵelementStart(1, "p",
|
|
172
|
+
function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template(rf, ctx) { if (rf & 1) {
|
|
173
|
+
const _r54 = i0.ɵɵgetCurrentView();
|
|
174
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 44);
|
|
175
|
+
i0.ɵɵlistener("close", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r53 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r53.closeConfirmMergeDialog("cancel")); });
|
|
176
|
+
i0.ɵɵelementStart(1, "p", 45);
|
|
192
177
|
i0.ɵɵtext(2, " Are you sure you want to merge the records? This action cannot be undone. If you select \"Yes\", the records will be merged and the duplicate records will be deleted. ");
|
|
193
178
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
195
|
-
i0.ɵɵlistener("click", function
|
|
179
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 43);
|
|
180
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r54); const ctx_r55 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r55.closeConfirmMergeDialog("no")); });
|
|
196
181
|
i0.ɵɵtext(5, "No");
|
|
197
182
|
i0.ɵɵelementEnd();
|
|
198
|
-
i0.ɵɵelementStart(6, "button",
|
|
199
|
-
i0.ɵɵlistener("click", function
|
|
183
|
+
i0.ɵɵelementStart(6, "button", 46);
|
|
184
|
+
i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r54); const ctx_r56 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r56.closeConfirmMergeDialog("yes")); });
|
|
200
185
|
i0.ɵɵtext(7, " Yes ");
|
|
201
186
|
i0.ɵɵelementEnd()()();
|
|
202
187
|
} if (rf & 2) {
|
|
203
188
|
i0.ɵɵproperty("minWidth", 250)("width", 450);
|
|
204
189
|
} }
|
|
205
|
-
function
|
|
206
|
-
const
|
|
207
|
-
i0.ɵɵelementStart(0, "kendo-window",
|
|
208
|
-
i0.ɵɵlistener("close", function
|
|
209
|
-
i0.ɵɵelementStart(1, "div",
|
|
210
|
-
i0.ɵɵelement(2, "mj-compare-records",
|
|
190
|
+
function UserViewGridComponent_div_33_kendo_window_2_Template(rf, ctx) { if (rf & 1) {
|
|
191
|
+
const _r58 = i0.ɵɵgetCurrentView();
|
|
192
|
+
i0.ɵɵelementStart(0, "kendo-window", 34);
|
|
193
|
+
i0.ɵɵlistener("close", function UserViewGridComponent_div_33_kendo_window_2_Template_kendo_window_close_0_listener($event) { i0.ɵɵrestoreView(_r58); const ctx_r57 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r57.closeCompareDialog($event)); });
|
|
194
|
+
i0.ɵɵelementStart(1, "div", 35);
|
|
195
|
+
i0.ɵɵelement(2, "mj-compare-records", 36, 37);
|
|
211
196
|
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementStart(4, "div",
|
|
213
|
-
i0.ɵɵtemplate(5,
|
|
197
|
+
i0.ɵɵelementStart(4, "div", 38);
|
|
198
|
+
i0.ɵɵtemplate(5, UserViewGridComponent_div_33_kendo_window_2_button_5_Template, 2, 0, "button", 39)(6, UserViewGridComponent_div_33_kendo_window_2_button_6_Template, 2, 0, "button", 39)(7, UserViewGridComponent_div_33_kendo_window_2_button_7_Template, 2, 0, "button", 40)(8, UserViewGridComponent_div_33_kendo_window_2_button_8_Template, 2, 0, "button", 40);
|
|
214
199
|
i0.ɵɵelementEnd();
|
|
215
|
-
i0.ɵɵtemplate(
|
|
200
|
+
i0.ɵɵtemplate(9, UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template, 8, 2, "kendo-dialog", 41);
|
|
216
201
|
i0.ɵɵelementEnd();
|
|
217
202
|
} if (rf & 2) {
|
|
218
|
-
const
|
|
203
|
+
const ctx_r38 = i0.ɵɵnextContext(2);
|
|
219
204
|
i0.ɵɵproperty("minHeight", 300)("minWidth", 800)("top", 100)("left", 100)("width", 1200)("height", 675)("resizable", true);
|
|
220
205
|
i0.ɵɵadvance();
|
|
221
206
|
i0.ɵɵproperty("fillHeight", true)("bottomMargin", 100);
|
|
222
207
|
i0.ɵɵadvance();
|
|
223
|
-
i0.ɵɵproperty("entityName",
|
|
208
|
+
i0.ɵɵproperty("entityName", ctx_r38._entityInfo ? ctx_r38._entityInfo.Name : "")("recordsToCompare", ctx_r38.recordsToCompare)("visibleColumns", ctx_r38.visibleColumns)("selectionMode", ctx_r38.mergeMode ? true : false);
|
|
224
209
|
i0.ɵɵadvance(3);
|
|
225
|
-
i0.ɵɵproperty("ngIf",
|
|
210
|
+
i0.ɵɵproperty("ngIf", ctx_r38.mergeMode);
|
|
211
|
+
i0.ɵɵadvance();
|
|
212
|
+
i0.ɵɵproperty("ngIf", ctx_r38.duplicateMode);
|
|
226
213
|
i0.ɵɵadvance();
|
|
227
|
-
i0.ɵɵproperty("ngIf",
|
|
214
|
+
i0.ɵɵproperty("ngIf", ctx_r38.compareMode);
|
|
228
215
|
i0.ɵɵadvance();
|
|
229
|
-
i0.ɵɵproperty("ngIf",
|
|
216
|
+
i0.ɵɵproperty("ngIf", ctx_r38.mergeMode || ctx_r38.duplicateMode);
|
|
230
217
|
i0.ɵɵadvance();
|
|
231
|
-
i0.ɵɵproperty("ngIf",
|
|
218
|
+
i0.ɵɵproperty("ngIf", ctx_r38.isConfirmDialogOpen);
|
|
232
219
|
} }
|
|
233
|
-
function
|
|
220
|
+
function UserViewGridComponent_div_33_Template(rf, ctx) { if (rf & 1) {
|
|
234
221
|
i0.ɵɵelementStart(0, "div");
|
|
235
|
-
i0.ɵɵelement(1, "div",
|
|
236
|
-
i0.ɵɵtemplate(2,
|
|
222
|
+
i0.ɵɵelement(1, "div", 32);
|
|
223
|
+
i0.ɵɵtemplate(2, UserViewGridComponent_div_33_kendo_window_2_Template, 10, 18, "kendo-window", 33);
|
|
237
224
|
i0.ɵɵelementEnd();
|
|
238
225
|
} if (rf & 2) {
|
|
239
|
-
const
|
|
226
|
+
const ctx_r17 = i0.ɵɵnextContext();
|
|
240
227
|
i0.ɵɵadvance(2);
|
|
241
|
-
i0.ɵɵproperty("ngIf",
|
|
228
|
+
i0.ɵɵproperty("ngIf", ctx_r17.isCompareDialogOpened);
|
|
242
229
|
} }
|
|
243
230
|
export class UserViewGridComponent {
|
|
244
231
|
get PendingRecords() {
|
|
@@ -368,6 +355,7 @@ export class UserViewGridComponent {
|
|
|
368
355
|
this.recordsToCompare = [];
|
|
369
356
|
this.compareMode = false;
|
|
370
357
|
this.mergeMode = false;
|
|
358
|
+
this.duplicateMode = false;
|
|
371
359
|
this.selectableSettings = {
|
|
372
360
|
enabled: false
|
|
373
361
|
};
|
|
@@ -858,6 +846,33 @@ export class UserViewGridComponent {
|
|
|
858
846
|
this.compareMode = true;
|
|
859
847
|
}
|
|
860
848
|
}
|
|
849
|
+
enableCheckbox(cancel = false, type) {
|
|
850
|
+
if (!cancel && this.recordsToCompare.length >= 2) {
|
|
851
|
+
// this scenario occurs when we've already started the merge/compare/duplicate and the user has selected records, then clicked the merge/compare button again
|
|
852
|
+
this.isCompareDialogOpened = true;
|
|
853
|
+
this.moveDialogToBody();
|
|
854
|
+
}
|
|
855
|
+
else if (cancel) {
|
|
856
|
+
// the user clicked cancel in our toolbar
|
|
857
|
+
this.mergeMode = false;
|
|
858
|
+
this.compareMode = false;
|
|
859
|
+
this.duplicateMode = false;
|
|
860
|
+
this.selectedKeys = [];
|
|
861
|
+
this.recordsToCompare = [];
|
|
862
|
+
}
|
|
863
|
+
else {
|
|
864
|
+
// just turning on the checkbox from the merge/compare/duplicate button, so just turn it on and let the user select records
|
|
865
|
+
if (type === 'merge') {
|
|
866
|
+
this.mergeMode = true;
|
|
867
|
+
}
|
|
868
|
+
else if (type === 'compare') {
|
|
869
|
+
this.compareMode = true;
|
|
870
|
+
}
|
|
871
|
+
else if (type === 'duplicate') {
|
|
872
|
+
this.duplicateMode = true;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
}
|
|
861
876
|
closeConfirmMergeDialog(event) {
|
|
862
877
|
return __awaiter(this, void 0, void 0, function* () {
|
|
863
878
|
if (event === 'yes') {
|
|
@@ -927,11 +942,34 @@ export class UserViewGridComponent {
|
|
|
927
942
|
this.recordsToCompare = [];
|
|
928
943
|
this.mergeMode = false;
|
|
929
944
|
this.compareMode = false;
|
|
945
|
+
this.duplicateMode = false;
|
|
930
946
|
this.isCompareDialogOpened = false;
|
|
931
947
|
break;
|
|
932
948
|
}
|
|
933
949
|
});
|
|
934
950
|
}
|
|
951
|
+
fimdDuplicateRecords() {
|
|
952
|
+
var _a, _b;
|
|
953
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
954
|
+
if (!this._entityInfo) {
|
|
955
|
+
console.error("Entity Info is not available");
|
|
956
|
+
this.closeCompareDialog('duplicate');
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
let params = new PotentialDuplicateRequest();
|
|
960
|
+
params.EntityName = (_a = this._entityInfo) === null || _a === void 0 ? void 0 : _a.Name;
|
|
961
|
+
params.EntityID = (_b = this._entityInfo) === null || _b === void 0 ? void 0 : _b.ID;
|
|
962
|
+
params.PrimaryKeyValues = [];
|
|
963
|
+
for (const index of this.selectedKeys) {
|
|
964
|
+
const viewData = this.viewData[index];
|
|
965
|
+
const idField = viewData.ID;
|
|
966
|
+
params.PrimaryKeyValues.push({ FieldName: "ID", Value: idField });
|
|
967
|
+
}
|
|
968
|
+
//const md: Metadata = new Metadata();
|
|
969
|
+
//await md.GetRecordDuplicates(params);
|
|
970
|
+
this.CreateSimpleNotification("Working on finding duplicates, will notify you when it is complete...", 'info', 2000);
|
|
971
|
+
});
|
|
972
|
+
}
|
|
935
973
|
doExcelExport() {
|
|
936
974
|
return __awaiter(this, void 0, void 0, function* () {
|
|
937
975
|
if (this.kendoExcelExport === null)
|
|
@@ -989,24 +1027,63 @@ UserViewGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserV
|
|
|
989
1027
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analysisQuestion = _t.first);
|
|
990
1028
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analysisResults = _t.first);
|
|
991
1029
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.compareDialogContainer = _t.first);
|
|
992
|
-
} }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited" }, decls:
|
|
993
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "
|
|
994
|
-
i0.ɵɵ
|
|
995
|
-
i0.ɵɵ
|
|
996
|
-
i0.ɵɵ
|
|
997
|
-
i0.ɵɵ
|
|
998
|
-
i0.ɵɵ
|
|
999
|
-
i0.ɵɵ
|
|
1030
|
+
} }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited" }, decls: 34, vars: 33, consts: [["mjFillContainer", "", 1, "user-view-grid-wrap"], [1, "flex-direction-row"], [1, "flex-direction-row", "gap-large"], [1, "flex-direction-column"], [2, "font-size", "smaller", "font-weight", "normal"], [1, "title-wrapper"], [1, "search"], ["type", "text", "placeholder", "Search in view...", "size", "large", "rounded", "large", "fillMode", "solid", 3, "clearButton"], ["searchInput", ""], ["kendoTextBoxPrefixTemplate", "", 3, "showSeparator"], [1, "flex-direction-row", "gap-small"], ["kendoButton", "", "class", "k-button-solid-base list-button"], ["kendoButton", "", "class", "k-button-solid-base list-button", 3, "disabled", "click", 4, "ngIf"], ["kendoButton", "", "class", "list-button"], ["mjFillContainer", "", "scrollable", "virtual", "kendoGridSelectBy", "", 3, "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "sort", "reorderable", "selectable", "selectedKeys", "pageChange", "selectedKeysChange", "cellClick", "cellClose", "columnReorder", "columnResize", "selectionChange", "sortChange"], ["kendoGrid", ""], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "data", "fileName"], ["excelExport", ""], [3, "field", "title", 4, "ngFor", "ngForOf"], ["compareDialogContainer", ""], [4, "ngIf"], [1, "fa-solid", "fa-magnifying-glass", "margin-left-small"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "click"], ["Title", "Export to Excel", 1, "fa-solid", "fa-file-excel", "fa-lg"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "disabled", "click"], ["kendoButton", "", 1, "list-button", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], [3, "width", "headerStyle"], [3, "field", "title", "width", "editable", "editor", "headerStyle"], [3, "field", "title"], [1, "k-overlay"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close", 4, "ngIf"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close"], ["mjFillContainer", "", 3, "fillHeight", "bottomMargin"], [3, "entityName", "recordsToCompare", "visibleColumns", "selectionMode"], ["recordCompareRef", ""], [1, "k-actions", "k-actions-end"], ["kendoButton", "", "class", "k-button-solid-base-filled", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["title", "Confirm Choice", 3, "minWidth", "width", "close", 4, "ngIf"], ["kendoButton", "", 1, "k-button-solid-base-filled", 3, "click"], ["kendoButton", "", 3, "click"], ["title", "Confirm Choice", 3, "minWidth", "width", "close"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function UserViewGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1031
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "b");
|
|
1032
|
+
i0.ɵɵtext(5);
|
|
1033
|
+
i0.ɵɵelementEnd();
|
|
1034
|
+
i0.ɵɵelement(6, "br");
|
|
1035
|
+
i0.ɵɵelementStart(7, "span", 4);
|
|
1036
|
+
i0.ɵɵtext(8);
|
|
1037
|
+
i0.ɵɵelementEnd()();
|
|
1038
|
+
i0.ɵɵelementStart(9, "div", 5)(10, "div", 6)(11, "kendo-textbox", 7, 8);
|
|
1039
|
+
i0.ɵɵtemplate(13, UserViewGridComponent_ng_template_13_Template, 1, 0, "ng-template", 9);
|
|
1040
|
+
i0.ɵɵelementEnd()()()();
|
|
1041
|
+
i0.ɵɵelementStart(14, "div", 10);
|
|
1042
|
+
i0.ɵɵtemplate(15, UserViewGridComponent_Conditional_15_Template, 3, 0, "button", 11)(16, UserViewGridComponent_button_16_Template, 2, 1, "button", 12)(17, UserViewGridComponent_button_17_Template, 2, 1, "button", 12)(18, UserViewGridComponent_button_18_Template, 2, 1, "button", 12)(19, UserViewGridComponent_button_19_Template, 2, 1, "button", 12)(20, UserViewGridComponent_button_20_Template, 2, 1, "button", 12)(21, UserViewGridComponent_button_21_Template, 2, 1, "button", 12)(22, UserViewGridComponent_Conditional_22_Template, 2, 0, "button", 11)(23, UserViewGridComponent_Conditional_23_Template, 3, 0, "button", 13);
|
|
1000
1043
|
i0.ɵɵelementEnd()();
|
|
1001
|
-
i0.ɵɵelementStart(
|
|
1002
|
-
i0.ɵɵ
|
|
1044
|
+
i0.ɵɵelementStart(24, "kendo-grid", 14, 15);
|
|
1045
|
+
i0.ɵɵlistener("pageChange", function UserViewGridComponent_Template_kendo_grid_pageChange_24_listener($event) { return ctx.pageChange($event); });
|
|
1046
|
+
i0.ɵɵtwoWayListener("selectedKeysChange", function UserViewGridComponent_Template_kendo_grid_selectedKeysChange_24_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedKeys, $event) || (ctx.selectedKeys = $event); return $event; });
|
|
1047
|
+
i0.ɵɵlistener("cellClick", function UserViewGridComponent_Template_kendo_grid_cellClick_24_listener($event) { return ctx.cellClickHandler($event); })("cellClose", function UserViewGridComponent_Template_kendo_grid_cellClose_24_listener($event) { return ctx.cellCloseHandler($event); })("columnReorder", function UserViewGridComponent_Template_kendo_grid_columnReorder_24_listener($event) { return ctx.columnReorder($event); })("columnResize", function UserViewGridComponent_Template_kendo_grid_columnResize_24_listener($event) { return ctx.columnResize($event); })("selectionChange", function UserViewGridComponent_Template_kendo_grid_selectionChange_24_listener($event) { return ctx.selectionChange($event); })("sortChange", function UserViewGridComponent_Template_kendo_grid_sortChange_24_listener($event) { return ctx.sortChanged($event); });
|
|
1048
|
+
i0.ɵɵtemplate(26, UserViewGridComponent_kendo_grid_checkbox_column_26_Template, 1, 6, "kendo-grid-checkbox-column", 16)(27, UserViewGridComponent_kendo_grid_column_27_Template, 1, 9, "kendo-grid-column", 17);
|
|
1049
|
+
i0.ɵɵelementStart(28, "kendo-excelexport", 18, 19);
|
|
1050
|
+
i0.ɵɵtemplate(30, UserViewGridComponent_kendo_excelexport_column_30_Template, 1, 2, "kendo-excelexport-column", 20);
|
|
1051
|
+
i0.ɵɵelementEnd()();
|
|
1052
|
+
i0.ɵɵelementStart(31, "div", null, 21);
|
|
1053
|
+
i0.ɵɵtemplate(33, UserViewGridComponent_div_33_Template, 3, 1, "div", 22);
|
|
1003
1054
|
i0.ɵɵelementEnd()();
|
|
1004
1055
|
} if (rf & 2) {
|
|
1056
|
+
i0.ɵɵadvance(5);
|
|
1057
|
+
i0.ɵɵtextInterpolate2("Showing ", ctx.viewData.length, " of ", ctx.totalRowCount, " rows");
|
|
1058
|
+
i0.ɵɵadvance(3);
|
|
1059
|
+
i0.ɵɵtextInterpolate1(" ", ctx.viewExecutionTime, " seconds ");
|
|
1060
|
+
i0.ɵɵadvance(3);
|
|
1061
|
+
i0.ɵɵproperty("clearButton", true);
|
|
1062
|
+
i0.ɵɵadvance(2);
|
|
1063
|
+
i0.ɵɵproperty("showSeparator", true);
|
|
1064
|
+
i0.ɵɵadvance(2);
|
|
1065
|
+
i0.ɵɵconditional(15, !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode ? 15 : -1);
|
|
1066
|
+
i0.ɵɵadvance();
|
|
1067
|
+
i0.ɵɵproperty("ngIf", !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode);
|
|
1068
|
+
i0.ɵɵadvance();
|
|
1069
|
+
i0.ɵɵproperty("ngIf", ctx.duplicateMode);
|
|
1070
|
+
i0.ɵɵadvance();
|
|
1071
|
+
i0.ɵɵproperty("ngIf", !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode);
|
|
1072
|
+
i0.ɵɵadvance();
|
|
1073
|
+
i0.ɵɵproperty("ngIf", ctx.compareMode);
|
|
1074
|
+
i0.ɵɵadvance();
|
|
1075
|
+
i0.ɵɵproperty("ngIf", !ctx.mergeMode && !ctx.compareMode && !ctx.duplicateMode);
|
|
1076
|
+
i0.ɵɵadvance();
|
|
1077
|
+
i0.ɵɵproperty("ngIf", ctx.mergeMode);
|
|
1078
|
+
i0.ɵɵadvance();
|
|
1079
|
+
i0.ɵɵconditional(22, ctx.compareMode || ctx.mergeMode || ctx.duplicateMode ? 22 : -1);
|
|
1080
|
+
i0.ɵɵadvance();
|
|
1081
|
+
i0.ɵɵconditional(23, ctx.showRefreshButton && !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode ? 23 : -1);
|
|
1005
1082
|
i0.ɵɵadvance();
|
|
1006
1083
|
i0.ɵɵproperty("resizable", true)("data", ctx.gridView)("skip", ctx.skip)("pageSize", ctx.pageSize)("rowHeight", 36)("loading", ctx.isLoading)("height", ctx.gridHeight)("sortable", true)("sort", ctx.sortSettings)("resizable", true)("reorderable", true)("selectable", true);
|
|
1007
1084
|
i0.ɵɵtwoWayProperty("selectedKeys", ctx.selectedKeys);
|
|
1008
|
-
i0.ɵɵadvance(
|
|
1009
|
-
i0.ɵɵproperty("ngIf", ctx.compareMode || ctx.mergeMode);
|
|
1085
|
+
i0.ɵɵadvance(2);
|
|
1086
|
+
i0.ɵɵproperty("ngIf", ctx.compareMode || ctx.mergeMode || ctx.duplicateMode);
|
|
1010
1087
|
i0.ɵɵadvance();
|
|
1011
1088
|
i0.ɵɵproperty("ngForOf", ctx.visibleColumns);
|
|
1012
1089
|
i0.ɵɵadvance();
|
|
@@ -1015,10 +1092,10 @@ UserViewGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserV
|
|
|
1015
1092
|
i0.ɵɵproperty("ngForOf", ctx.exportColumns);
|
|
1016
1093
|
i0.ɵɵadvance(3);
|
|
1017
1094
|
i0.ɵɵproperty("ngIf", ctx.isCompareDialogOpened);
|
|
1018
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.GridComponent, i4.
|
|
1095
|
+
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.GridComponent, i4.SelectionDirective, i4.ColumnComponent, i4.CheckboxColumnComponent, i5.DialogComponent, i5.DialogActionsComponent, i5.WindowComponent, i6.ExcelExportComponent, i6.ColumnComponent, i7.ButtonComponent, i8.CompareRecordsComponent, i9.FillContainer, i10.TextBoxComponent, i10.TextBoxPrefixTemplateDirective], styles: [".user-view-grid-wrap[_ngcontent-%COMP%] {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header[_ngcontent-%COMP%] {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\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 .title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper[_ngcontent-%COMP%] {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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 .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.k-table-td[_ngcontent-%COMP%] {\n border-right: none !important;\n}.btn-cmn[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active[_ngcontent-%COMP%] {\n border: 1px solid var(--border-blue);\n}\n .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}\n\n.gap-small[_ngcontent-%COMP%]{\n gap: 8px; \n}\n\n.gap-large[_ngcontent-%COMP%] {\n gap: 20px; \n}\n\n.flex-direction-row[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.flex-direction-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: start;\n}\n\n.search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.search[_ngcontent-%COMP%] .fa-magnifying-glass[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n.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.search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n .list-button {\n min-width: 120px;\n width: auto;\n}\n \n .k-button-solid-base {\n border: 1px solid var(--border-blue) !important;\n color: var(--border-blue) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n\n .k-button-solid-base-black {\n border: 1px solid grey !important;\n color: black !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n \n .k-button-solid-base-filled {\n border: 1px solid var(--border-blue) !important;\n color: var(--white-color) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--border-blue);\n }\n \n .k-button-solid-base-filled:hover {\n background: var(--border-blue);\n filter: brightness(85%);\n }"] });
|
|
1019
1096
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewGridComponent, [{
|
|
1020
1097
|
type: Component,
|
|
1021
|
-
args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" mjFillContainer>\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 <ng-template kendoGridToolbarTemplate>\n \n <button kendoButton *ngIf=\"!compareMode && !mergeMode\" (click)=\"doExcelExport()\" >\n <span class=\"fa-regular fa-file-excel\"></span>\n Export to Excel\n </button>\n <!-- 3 buttons for compare. First one only shows when comparison is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending compare. -->\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" *ngIf=\"!compareMode && !mergeMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Compare</button>\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" *ngIf=\"compareMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Compare</button>\n <button (click)=\"enableMergeOrCompare(true, 'compare')\" *ngIf=\"compareMode\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Cancel</button>\n \n <!-- 3 buttons for merge. First one only shows when merge is getting goin in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending merge. -->\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" *ngIf=\"mergeMode\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Merge</button>\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" *ngIf=\"!mergeMode && !compareMode\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Merge</button>\n <button (click)=\"enableMergeOrCompare(true, 'merge')\" *ngIf=\"mergeMode\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Cancel</button>\n <button\n kendoButton themeColor=\"info\"\n *ngIf=\"showRefreshButton && !compareMode && !mergeMode\"\n (click)=\"RefreshFromSavedParams()\">\n <span class=\"fa-solid fa-arrow-rotate-right\"></span>\n Refresh\n </button>\n </ng-template>\n \n <kendo-grid-checkbox-column \n *ngIf=\"compareMode || mergeMode\" \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\"\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.viewData.length | number}}{{this.totalRowCount > this.viewData.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 <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 </kendo-grid>\n \n <div #compareDialogContainer>\n <div *ngIf=\"isCompareDialogOpened\">\n <div class=\"k-overlay\"></div>\n <kendo-window\n [minHeight]=\"300\"\n [minWidth]=\"800\"\n [top]=\"100\"\n [left]=\"100\"\n [width]=\"1200\"\n [height]=\"675\"\n [resizable]=\"true\"\n (close)=\"closeCompareDialog($event)\"\n title=\"Compare Records\"\n *ngIf=\"isCompareDialogOpened\"\n >\n <div mjFillContainer [fillHeight]=\"true\" [bottomMargin]=\"100\">\n <mj-compare-records\n #recordCompareRef\n [entityName]=\"_entityInfo ? _entityInfo.Name : ''\"\n [recordsToCompare]=\"recordsToCompare\" \n [visibleColumns]=\"visibleColumns\" \n [selectionMode]=\"mergeMode ? true : false\"\n >\n </mj-compare-records>\n </div>\n <div class=\"k-actions k-actions-end\">\n <button *ngIf=\"compareMode\" kendoButton type=\"button\" (click)=\"closeCompareDialog('close')\">Close</button>\n <button *ngIf=\"mergeMode\"kendoButton type=\"button\" (click)=\"closeCompareDialog('cancel')\">Cancel</button>\n <button *ngIf=\"mergeMode\"\n kendoButton\n themeColor=\"primary\"\n type=\"button\"\n (click)=\"closeCompareDialog('merge')\"\n >\n Merge Records\n </button>\n </div> \n <kendo-dialog\n title=\"Confirm Choice\"\n *ngIf=\"isConfirmDialogOpen\"\n (close)=\"closeConfirmMergeDialog('cancel')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n >\n <p style=\"margin: 30px; text-align: center;\">\n Are you sure you want to merge the records? This action cannot be undone. If you select \"Yes\", the records will be merged and the duplicate records will be deleted.\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeConfirmMergeDialog('no')\">No</button>\n <button kendoButton (click)=\"closeConfirmMergeDialog('yes')\" themeColor=\"primary\">\n Yes\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n </kendo-window>\n </div> \n </div>\n </div>\n ", styles: [".user-view-grid-wrap {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\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 .title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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 .title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td {\n border-right: none !important;\n}.btn-cmn {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n} "] }]
|
|
1098
|
+
args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" mjFillContainer>\n <div class=\"flex-direction-row\">\n <div class=\"flex-direction-row gap-large\">\n <div class=\"flex-direction-column\">\n <b>Showing {{this.viewData.length}} of {{this.totalRowCount}} rows</b>\n <br/>\n <span style=\"font-size: smaller; font-weight: normal;\">\n {{viewExecutionTime}} seconds\n </span> \n <!--\n {{this.viewData.length | number}}{{this.totalRowCount > this.viewData.length ? ' of ' + (this.totalRowCount | number) : ' rows'}}<br/><span style=\"font-size: smaller; font-weight: normal;\">{{viewExecutionTime | number:'1.2-2'}} seconds</span>\n -->\n </div>\n <div class=\"title-wrapper\">\n <div class=\"search\">\n <kendo-textbox \n type=\"text\" \n #searchInput \n placeholder=\"Search in view...\" \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 <div class=\"flex-direction-row gap-small\">\n @if(!compareMode && !mergeMode && !duplicateMode){\n <button kendoButton (click)=\"doExcelExport()\" class=\"k-button-solid-base list-button\">\n <span Title=\"Export to Excel\" class=\"fa-solid fa-file-excel fa-lg\"></span> Export to Excel\n </button>\n <!--\n <button kendoButton class=\"k-button-solid-base list-button\">\n Analysis\n </button>\n -->\n }\n \n <!-- 3 buttons for duplicate. First one only shows when duplication is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending duple. -->\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"(!compareMode && !mergeMode && !duplicateMode)\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"duplicateMode\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <!--\n <button (click)=\"enableCheckbox(true, 'duplicate')\" *ngIf=\"duplicateMode\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n -->\n\n <!-- 3 buttons for compare. First one only shows when comparison is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending compare. -->\n <button kendoButton (click)=\"enableCheckbox(false, 'compare')\" *ngIf=\"(!compareMode && !mergeMode && !duplicateMode)\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Compare</button>\n <button kendoButton (click)=\"enableCheckbox(false, 'compare')\" *ngIf=\"compareMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Compare</button>\n <!--\n <button kendoButton (click)=\"enableCheckbox(true, 'compare')\" *ngIf=\"compareMode\" class=\"k-button-solid-base list-button\">Cancel</button>\n -->\n \n <!-- 3 buttons for merge. First one only shows when merge is getting goin in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending merge. -->\n <button kendoButton (click)=\"enableCheckbox(false, 'merge')\" *ngIf=\"(!mergeMode && !compareMode && !duplicateMode)\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Merge</button>\n <button kendoButton (click)=\"enableCheckbox(false, 'merge')\" *ngIf=\"mergeMode\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Merge</button>\n <!--\n <button kendoButton (click)=\"enableCheckbox(true, 'merge')\" *ngIf=\"mergeMode\" class=\"k-button-solid-base list-button\">Cancel</button>\n -->\n @if(compareMode || mergeMode || duplicateMode){\n <button (click)=\"enableCheckbox(true, '')\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n }\n @if(showRefreshButton && !compareMode && !mergeMode && !duplicateMode){\n <button\n kendoButton\n class=\"list-button\"\n (click)=\"RefreshFromSavedParams()\">\n <span class=\"fa-solid fa-arrows-rotate\"></span>\n Refresh\n </button>\n }\n </div>\n </div>\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 <kendo-grid-checkbox-column \n *ngIf=\"compareMode || mergeMode || duplicateMode\" \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 <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\"\n [editor]=\"getEditor(item.EntityField)\"\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\"\n [style]=\"this.GetColumnCellStyle(item)\"\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 </kendo-grid>\n \n <div #compareDialogContainer>\n <div *ngIf=\"isCompareDialogOpened\">\n <div class=\"k-overlay\"></div>\n <kendo-window\n [minHeight]=\"300\"\n [minWidth]=\"800\"\n [top]=\"100\"\n [left]=\"100\"\n [width]=\"1200\"\n [height]=\"675\"\n [resizable]=\"true\"\n (close)=\"closeCompareDialog($event)\"\n title=\"Compare Records\"\n *ngIf=\"isCompareDialogOpened\"\n >\n <div mjFillContainer [fillHeight]=\"true\" [bottomMargin]=\"100\">\n <mj-compare-records\n #recordCompareRef\n [entityName]=\"_entityInfo ? _entityInfo.Name : ''\"\n [recordsToCompare]=\"recordsToCompare\" \n [visibleColumns]=\"visibleColumns\" \n [selectionMode]=\"mergeMode ? true : false\"\n />\n </div>\n <div class=\"k-actions k-actions-end\">\n <button kendoButton *ngIf=\"mergeMode\" (click)=\"closeCompareDialog('merge')\" class=\"k-button-solid-base-filled\">\n Merge Records \n </button>\n <button kendoButton *ngIf=\"duplicateMode\" (click)=\"fimdDuplicateRecords()\" class=\"k-button-solid-base-filled\">\n Search for Duplicates\n </button>\n <button kendoButton *ngIf=\"compareMode\" (click)=\"closeCompareDialog('close')\">\n Close\n </button>\n <button kendoButton *ngIf=\"mergeMode || duplicateMode\" (click)=\"closeCompareDialog('cancel')\">\n Cancel\n </button>\n </div> \n <kendo-dialog\n title=\"Confirm Choice\"\n *ngIf=\"isConfirmDialogOpen\"\n (close)=\"closeConfirmMergeDialog('cancel')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n >\n <p style=\"margin: 30px; text-align: center;\">\n Are you sure you want to merge the records? This action cannot be undone. If you select \"Yes\", the records will be merged and the duplicate records will be deleted.\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeConfirmMergeDialog('no')\">No</button>\n <button kendoButton (click)=\"closeConfirmMergeDialog('yes')\" themeColor=\"primary\">\n Yes\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n </kendo-window>\n </div> \n </div>\n </div>\n ", styles: [".user-view-grid-wrap {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\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 .title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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 .title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td {\n border-right: none !important;\n}.btn-cmn {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}\n\n.gap-small{\n gap: 8px; \n}\n\n.gap-large {\n gap: 20px; \n}\n\n.flex-direction-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.flex-direction-column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: start;\n}\n\n.search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.search .fa-magnifying-glass {\n margin-left: 10px;\n}\n\n.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.search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n::ng-deep .list-button {\n min-width: 120px;\n width: auto;\n}\n \n ::ng-deep .k-button-solid-base {\n border: 1px solid var(--border-blue) !important;\n color: var(--border-blue) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n\n ::ng-deep .k-button-solid-base-black {\n border: 1px solid grey !important;\n color: black !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n \n ::ng-deep .k-button-solid-base-filled {\n border: 1px solid var(--border-blue) !important;\n color: var(--white-color) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--border-blue);\n }\n \n ::ng-deep .k-button-solid-base-filled:hover {\n background: var(--border-blue);\n filter: brightness(85%);\n }"] }]
|
|
1022
1099
|
}], () => [{ type: i1.FormBuilder }, { type: i2.Router }, { type: i0.Renderer2 }], { Params: [{
|
|
1023
1100
|
type: Input
|
|
1024
1101
|
}], BottomMargin: [{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-user-view-grid",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "MemberJunction: Angular Grid to display dynamic and saved user views for any entity in MemberJunction.",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"@angular/router": "~17.2.2"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@memberjunction/core-entities": "~1.1
|
|
29
|
-
"@memberjunction/global": "~1.1
|
|
30
|
-
"@memberjunction/core": "~1.1
|
|
31
|
-
"@memberjunction/ng-shared": "~1.1
|
|
32
|
-
"@memberjunction/ng-compare-records": "~1.1
|
|
33
|
-
"@memberjunction/ng-container-directives": "~1.1
|
|
28
|
+
"@memberjunction/core-entities": "~1.2.1",
|
|
29
|
+
"@memberjunction/global": "~1.2.1",
|
|
30
|
+
"@memberjunction/core": "~1.2.1",
|
|
31
|
+
"@memberjunction/ng-shared": "~1.2.1",
|
|
32
|
+
"@memberjunction/ng-compare-records": "~1.2.1",
|
|
33
|
+
"@memberjunction/ng-container-directives": "~1.2.1",
|
|
34
34
|
"@progress/kendo-angular-grid": "~15.1.0",
|
|
35
35
|
"@progress/kendo-angular-layout": "~15.1.0",
|
|
36
36
|
"@progress/kendo-angular-inputs": "~15.1.0",
|