@memberjunction/ng-user-view-grid 2.120.0 → 2.122.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/ng-user-view-grid.component.d.ts +18 -6
- package/dist/lib/ng-user-view-grid.component.d.ts.map +1 -1
- package/dist/lib/ng-user-view-grid.component.js +162 -132
- package/dist/lib/ng-user-view-grid.component.js.map +1 -1
- package/dist/module.d.ts +2 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -3
- package/dist/module.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild, ElementRef, Output, EventEmitter, Input } from '@angular/core';
|
|
2
|
-
import { Metadata, RunView, EntityFieldTSType, LogError, CompositeKey, PotentialDuplicateRequest
|
|
2
|
+
import { Metadata, RunView, EntityFieldTSType, LogError, CompositeKey, PotentialDuplicateRequest } from '@memberjunction/core';
|
|
3
3
|
import { ViewInfo, ResourcePermissionEngine } from '@memberjunction/core-entities';
|
|
4
4
|
import { GridComponent } from "@progress/kendo-angular-grid";
|
|
5
5
|
import { Keys } from '@progress/kendo-angular-common';
|
|
@@ -18,7 +18,7 @@ import { GraphQLActionClient } from '@memberjunction/graphql-dataprovider';
|
|
|
18
18
|
import { LoadEntityCommunicationsEngineClient } from '@memberjunction/entity-communications-client';
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
20
|
import * as i1 from "@angular/forms";
|
|
21
|
-
import * as i2 from "@
|
|
21
|
+
import * as i2 from "@memberjunction/ng-shared";
|
|
22
22
|
import * as i3 from "@angular/common";
|
|
23
23
|
import * as i4 from "@progress/kendo-angular-grid";
|
|
24
24
|
import * as i5 from "@progress/kendo-angular-dialog";
|
|
@@ -27,8 +27,8 @@ import * as i7 from "@progress/kendo-angular-buttons";
|
|
|
27
27
|
import * as i8 from "@memberjunction/ng-compare-records";
|
|
28
28
|
import * as i9 from "@progress/kendo-angular-inputs";
|
|
29
29
|
import * as i10 from "@memberjunction/ng-entity-form-dialog";
|
|
30
|
-
import * as i11 from "@
|
|
31
|
-
import * as i12 from "@memberjunction/ng-
|
|
30
|
+
import * as i11 from "@memberjunction/ng-entity-communications";
|
|
31
|
+
import * as i12 from "@memberjunction/ng-shared-generic";
|
|
32
32
|
const _c0 = ["kendoGrid"];
|
|
33
33
|
const _c1 = ["excelExport"];
|
|
34
34
|
const _c2 = ["recordCompareRef"];
|
|
@@ -41,38 +41,44 @@ const _c8 = () => ({ "font-weight": "bold", "background-color": "white" });
|
|
|
41
41
|
const _c9 = a0 => ({ "list-selected": a0 });
|
|
42
42
|
function UserViewGridComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
43
43
|
i0.ɵɵelementStart(0, "div", 7);
|
|
44
|
-
i0.ɵɵelement(1, "
|
|
44
|
+
i0.ɵɵelement(1, "mj-loading", 8);
|
|
45
45
|
i0.ɵɵelementEnd();
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
i0.ɵɵadvance();
|
|
48
|
+
i0.ɵɵproperty("showText", false);
|
|
46
49
|
} }
|
|
47
50
|
function UserViewGridComponent_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
i0.ɵɵelementStart(0, "div",
|
|
49
|
-
i0.ɵɵelement(1, "
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
52
|
+
i0.ɵɵelement(1, "mj-loading", 20);
|
|
50
53
|
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
i0.ɵɵadvance();
|
|
56
|
+
i0.ɵɵproperty("showText", false);
|
|
51
57
|
} }
|
|
52
58
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
53
59
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
54
|
-
i0.ɵɵelementStart(0, "button",
|
|
60
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
55
61
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.doCreateNewRecord()); });
|
|
56
|
-
i0.ɵɵelement(1, "span",
|
|
57
|
-
i0.ɵɵelementStart(2, "span",
|
|
62
|
+
i0.ɵɵelement(1, "span", 38);
|
|
63
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
58
64
|
i0.ɵɵtext(3, "New");
|
|
59
65
|
i0.ɵɵelementEnd()();
|
|
60
66
|
} }
|
|
61
67
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
62
68
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
63
|
-
i0.ɵɵelementStart(0, "button",
|
|
69
|
+
i0.ɵɵelementStart(0, "button", 39);
|
|
64
70
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.doCommunication()); });
|
|
65
|
-
i0.ɵɵelement(1, "span",
|
|
66
|
-
i0.ɵɵelementStart(2, "span",
|
|
71
|
+
i0.ɵɵelement(1, "span", 40);
|
|
72
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
67
73
|
i0.ɵɵtext(3, "Send Message");
|
|
68
74
|
i0.ɵɵelementEnd()();
|
|
69
75
|
} }
|
|
70
76
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
71
77
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
72
|
-
i0.ɵɵelementStart(0, "button",
|
|
78
|
+
i0.ɵɵelementStart(0, "button", 42);
|
|
73
79
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_For_1_Template_button_click_0_listener() { const action_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.doEntityAction(action_r7)); });
|
|
74
|
-
i0.ɵɵelement(1, "span",
|
|
75
|
-
i0.ɵɵelementStart(2, "span",
|
|
80
|
+
i0.ɵɵelement(1, "span", 43);
|
|
81
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
76
82
|
i0.ɵɵtext(3);
|
|
77
83
|
i0.ɵɵelementEnd()();
|
|
78
84
|
} if (rf & 2) {
|
|
@@ -82,54 +88,54 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditi
|
|
|
82
88
|
i0.ɵɵtextInterpolate(action_r7.Action);
|
|
83
89
|
} }
|
|
84
90
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
-
i0.ɵɵrepeaterCreate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_For_1_Template, 4, 2, "button",
|
|
91
|
+
i0.ɵɵrepeaterCreate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_For_1_Template, 4, 2, "button", 41, i0.ɵɵrepeaterTrackByIdentity);
|
|
86
92
|
} if (rf & 2) {
|
|
87
93
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
88
94
|
i0.ɵɵrepeater(ctx_r1.EntityActions);
|
|
89
95
|
} }
|
|
90
96
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
91
97
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
92
|
-
i0.ɵɵelementStart(0, "button",
|
|
98
|
+
i0.ɵɵelementStart(0, "button", 44);
|
|
93
99
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_23_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.RefreshFromSavedParams()); });
|
|
94
|
-
i0.ɵɵelement(1, "span",
|
|
95
|
-
i0.ɵɵelementStart(2, "span",
|
|
100
|
+
i0.ɵɵelement(1, "span", 45);
|
|
101
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
96
102
|
i0.ɵɵtext(3, "Refresh");
|
|
97
103
|
i0.ɵɵelementEnd()();
|
|
98
104
|
} }
|
|
99
105
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
100
106
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
101
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_0_Template, 4, 0, "button",
|
|
102
|
-
i0.ɵɵelementStart(1, "button",
|
|
107
|
+
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_0_Template, 4, 0, "button", 23);
|
|
108
|
+
i0.ɵɵelementStart(1, "button", 24);
|
|
103
109
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.doExcelExport()); });
|
|
104
|
-
i0.ɵɵelement(2, "span",
|
|
105
|
-
i0.ɵɵelementStart(3, "span",
|
|
110
|
+
i0.ɵɵelement(2, "span", 25);
|
|
111
|
+
i0.ɵɵelementStart(3, "span", 26);
|
|
106
112
|
i0.ɵɵtext(4, "Export to Excel");
|
|
107
113
|
i0.ɵɵelementEnd()();
|
|
108
|
-
i0.ɵɵelementStart(5, "button",
|
|
114
|
+
i0.ɵɵelementStart(5, "button", 27);
|
|
109
115
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableCheckbox(false, "duplicate")); });
|
|
110
|
-
i0.ɵɵelement(6, "span",
|
|
111
|
-
i0.ɵɵelementStart(7, "span",
|
|
116
|
+
i0.ɵɵelement(6, "span", 28);
|
|
117
|
+
i0.ɵɵelementStart(7, "span", 26);
|
|
112
118
|
i0.ɵɵtext(8, "Search For Duplicates");
|
|
113
119
|
i0.ɵɵelementEnd()();
|
|
114
|
-
i0.ɵɵelementStart(9, "button",
|
|
120
|
+
i0.ɵɵelementStart(9, "button", 29);
|
|
115
121
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableCheckbox(false, "addToList")); });
|
|
116
|
-
i0.ɵɵelement(10, "span",
|
|
117
|
-
i0.ɵɵelementStart(11, "span",
|
|
122
|
+
i0.ɵɵelement(10, "span", 30);
|
|
123
|
+
i0.ɵɵelementStart(11, "span", 26);
|
|
118
124
|
i0.ɵɵtext(12, "Add To List");
|
|
119
125
|
i0.ɵɵelementEnd()();
|
|
120
|
-
i0.ɵɵelementStart(13, "button",
|
|
126
|
+
i0.ɵɵelementStart(13, "button", 31);
|
|
121
127
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableMergeOrCompare(false, "merge")); });
|
|
122
|
-
i0.ɵɵelement(14, "span",
|
|
123
|
-
i0.ɵɵelementStart(15, "span",
|
|
128
|
+
i0.ɵɵelement(14, "span", 32);
|
|
129
|
+
i0.ɵɵelementStart(15, "span", 26);
|
|
124
130
|
i0.ɵɵtext(16, "Merge");
|
|
125
131
|
i0.ɵɵelementEnd()();
|
|
126
|
-
i0.ɵɵelementStart(17, "button",
|
|
132
|
+
i0.ɵɵelementStart(17, "button", 33);
|
|
127
133
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableMergeOrCompare(false, "compare")); });
|
|
128
|
-
i0.ɵɵelement(18, "span",
|
|
129
|
-
i0.ɵɵelementStart(19, "span",
|
|
134
|
+
i0.ɵɵelement(18, "span", 34);
|
|
135
|
+
i0.ɵɵelementStart(19, "span", 26);
|
|
130
136
|
i0.ɵɵtext(20, "Compare");
|
|
131
137
|
i0.ɵɵelementEnd()();
|
|
132
|
-
i0.ɵɵtemplate(21, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_21_Template, 4, 0, "button",
|
|
138
|
+
i0.ɵɵtemplate(21, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_21_Template, 4, 0, "button", 35)(22, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_22_Template, 2, 0)(23, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Conditional_23_Template, 4, 0, "button", 36);
|
|
133
139
|
} if (rf & 2) {
|
|
134
140
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
135
141
|
i0.ɵɵconditional(ctx_r1.EntityInfo && ctx_r1.ShowCreateNewRecordButton && ctx_r1.UserCanCreateNewRecord ? 0 : -1);
|
|
@@ -142,10 +148,10 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Templat
|
|
|
142
148
|
} }
|
|
143
149
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
144
150
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
145
|
-
i0.ɵɵelementStart(0, "button",
|
|
151
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
146
152
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableCheckbox(false, "duplicate")); });
|
|
147
|
-
i0.ɵɵelement(1, "span",
|
|
148
|
-
i0.ɵɵelementStart(2, "span",
|
|
153
|
+
i0.ɵɵelement(1, "span", 28);
|
|
154
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
149
155
|
i0.ɵɵtext(3, "Search For Duplicates");
|
|
150
156
|
i0.ɵɵelementEnd()();
|
|
151
157
|
} if (rf & 2) {
|
|
@@ -154,10 +160,10 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_1_Templat
|
|
|
154
160
|
} }
|
|
155
161
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
156
162
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
157
|
-
i0.ɵɵelementStart(0, "button",
|
|
163
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
158
164
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableCheckbox(false, "addToList")); });
|
|
159
|
-
i0.ɵɵelement(1, "span",
|
|
160
|
-
i0.ɵɵelementStart(2, "span",
|
|
165
|
+
i0.ɵɵelement(1, "span", 30);
|
|
166
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
161
167
|
i0.ɵɵtext(3, "Add To List");
|
|
162
168
|
i0.ɵɵelementEnd()();
|
|
163
169
|
} if (rf & 2) {
|
|
@@ -166,10 +172,10 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_2_Templat
|
|
|
166
172
|
} }
|
|
167
173
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
168
174
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
169
|
-
i0.ɵɵelementStart(0, "button",
|
|
175
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
170
176
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableMergeOrCompare(false, "compare")); });
|
|
171
|
-
i0.ɵɵelement(1, "span",
|
|
172
|
-
i0.ɵɵelementStart(2, "span",
|
|
177
|
+
i0.ɵɵelement(1, "span", 34);
|
|
178
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
173
179
|
i0.ɵɵtext(3, "Compare");
|
|
174
180
|
i0.ɵɵelementEnd()();
|
|
175
181
|
} if (rf & 2) {
|
|
@@ -178,10 +184,10 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_3_Templat
|
|
|
178
184
|
} }
|
|
179
185
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
180
186
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
181
|
-
i0.ɵɵelementStart(0, "button",
|
|
187
|
+
i0.ɵɵelementStart(0, "button", 46);
|
|
182
188
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableMergeOrCompare(false, "merge")); });
|
|
183
|
-
i0.ɵɵelement(1, "span",
|
|
184
|
-
i0.ɵɵelementStart(2, "span",
|
|
189
|
+
i0.ɵɵelement(1, "span", 32);
|
|
190
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
185
191
|
i0.ɵɵtext(3, "Merge");
|
|
186
192
|
i0.ɵɵelementEnd()();
|
|
187
193
|
} if (rf & 2) {
|
|
@@ -190,15 +196,15 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_4_Templat
|
|
|
190
196
|
} }
|
|
191
197
|
function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
192
198
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
193
|
-
i0.ɵɵelementStart(0, "button",
|
|
199
|
+
i0.ɵɵelementStart(0, "button", 47);
|
|
194
200
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_ng_template_3_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.enableCheckbox(true, "")); });
|
|
195
|
-
i0.ɵɵelement(1, "span",
|
|
196
|
-
i0.ɵɵelementStart(2, "span",
|
|
201
|
+
i0.ɵɵelement(1, "span", 48);
|
|
202
|
+
i0.ɵɵelementStart(2, "span", 26);
|
|
197
203
|
i0.ɵɵtext(3, "Cancel");
|
|
198
204
|
i0.ɵɵelementEnd()();
|
|
199
205
|
} }
|
|
200
206
|
function UserViewGridComponent_Conditional_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template, 24, 4)(1, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_1_Template, 4, 1, "button",
|
|
207
|
+
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_0_Template, 24, 4)(1, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_1_Template, 4, 1, "button", 21)(2, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_2_Template, 4, 1, "button", 21)(3, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_3_Template, 4, 1, "button", 21)(4, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_4_Template, 4, 1, "button", 21)(5, UserViewGridComponent_Conditional_2_ng_template_3_Conditional_5_Template, 4, 0, "button", 22);
|
|
202
208
|
} if (rf & 2) {
|
|
203
209
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
204
210
|
i0.ɵɵconditional(!ctx_r1.anyModeEnabled ? 0 : -1);
|
|
@@ -214,7 +220,7 @@ function UserViewGridComponent_Conditional_2_ng_template_3_Template(rf, ctx) { i
|
|
|
214
220
|
i0.ɵɵconditional(ctx_r1.anyModeEnabled ? 5 : -1);
|
|
215
221
|
} }
|
|
216
222
|
function UserViewGridComponent_Conditional_2_kendo_grid_checkbox_column_4_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
-
i0.ɵɵelement(0, "kendo-grid-checkbox-column",
|
|
223
|
+
i0.ɵɵelement(0, "kendo-grid-checkbox-column", 49);
|
|
218
224
|
} if (rf & 2) {
|
|
219
225
|
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(4, _c7));
|
|
220
226
|
i0.ɵɵproperty("width", 50)("headerStyle", i0.ɵɵpureFunction0(5, _c8));
|
|
@@ -224,7 +230,7 @@ function UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_ng_template_0
|
|
|
224
230
|
i0.ɵɵpipe(1, "number");
|
|
225
231
|
i0.ɵɵpipe(2, "number");
|
|
226
232
|
i0.ɵɵelement(3, "br");
|
|
227
|
-
i0.ɵɵelementStart(4, "span",
|
|
233
|
+
i0.ɵɵelementStart(4, "span", 52);
|
|
228
234
|
i0.ɵɵtext(5);
|
|
229
235
|
i0.ɵɵpipe(6, "number");
|
|
230
236
|
i0.ɵɵelementEnd();
|
|
@@ -235,11 +241,11 @@ function UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_ng_template_0
|
|
|
235
241
|
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(6, 7, ctx_r1.viewExecutionTime, "1.2-2"), " seconds");
|
|
236
242
|
} }
|
|
237
243
|
function UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_Template(rf, ctx) { if (rf & 1) {
|
|
238
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_ng_template_0_Template, 7, 10, "ng-template",
|
|
244
|
+
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_ng_template_0_Template, 7, 10, "ng-template", 51);
|
|
239
245
|
} }
|
|
240
246
|
function UserViewGridComponent_Conditional_2_kendo_grid_column_5_Template(rf, ctx) { if (rf & 1) {
|
|
241
|
-
i0.ɵɵelementStart(0, "kendo-grid-column",
|
|
242
|
-
i0.ɵɵtemplate(1, UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_Template, 1, 0, null,
|
|
247
|
+
i0.ɵɵelementStart(0, "kendo-grid-column", 50);
|
|
248
|
+
i0.ɵɵtemplate(1, UserViewGridComponent_Conditional_2_kendo_grid_column_5_1_Template, 1, 0, null, 16);
|
|
243
249
|
i0.ɵɵelementEnd();
|
|
244
250
|
} if (rf & 2) {
|
|
245
251
|
const item_r14 = ctx.$implicit;
|
|
@@ -250,51 +256,51 @@ function UserViewGridComponent_Conditional_2_kendo_grid_column_5_Template(rf, ct
|
|
|
250
256
|
i0.ɵɵproperty("ngIf", item_r14 === ctx_r1.visibleColumns[0]);
|
|
251
257
|
} }
|
|
252
258
|
function UserViewGridComponent_Conditional_2_kendo_excelexport_column_8_Template(rf, ctx) { if (rf & 1) {
|
|
253
|
-
i0.ɵɵelement(0, "kendo-excelexport-column",
|
|
259
|
+
i0.ɵɵelement(0, "kendo-excelexport-column", 53);
|
|
254
260
|
} if (rf & 2) {
|
|
255
261
|
const exportCol_r15 = ctx.$implicit;
|
|
256
262
|
i0.ɵɵproperty("field", exportCol_r15.Name)("title", exportCol_r15.Name);
|
|
257
263
|
} }
|
|
258
264
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
259
265
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
260
|
-
i0.ɵɵelementStart(0, "button",
|
|
266
|
+
i0.ɵɵelementStart(0, "button", 62);
|
|
261
267
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeCompareDialog("merge")); });
|
|
262
268
|
i0.ɵɵtext(1, " Merge Records ");
|
|
263
269
|
i0.ɵɵelementEnd();
|
|
264
270
|
} }
|
|
265
271
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_6_Template(rf, ctx) { if (rf & 1) {
|
|
266
272
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
267
|
-
i0.ɵɵelementStart(0, "button",
|
|
273
|
+
i0.ɵɵelementStart(0, "button", 62);
|
|
268
274
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.findDuplicateRecords()); });
|
|
269
275
|
i0.ɵɵtext(1, " Search for Duplicates ");
|
|
270
276
|
i0.ɵɵelementEnd();
|
|
271
277
|
} }
|
|
272
278
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
273
279
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
274
|
-
i0.ɵɵelementStart(0, "button",
|
|
280
|
+
i0.ɵɵelementStart(0, "button", 63);
|
|
275
281
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeCompareDialog("close")); });
|
|
276
282
|
i0.ɵɵtext(1, " Close ");
|
|
277
283
|
i0.ɵɵelementEnd();
|
|
278
284
|
} }
|
|
279
285
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_8_Template(rf, ctx) { if (rf & 1) {
|
|
280
286
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
281
|
-
i0.ɵɵelementStart(0, "button",
|
|
287
|
+
i0.ɵɵelementStart(0, "button", 63);
|
|
282
288
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeCompareDialog("cancel")); });
|
|
283
289
|
i0.ɵɵtext(1, " Cancel ");
|
|
284
290
|
i0.ɵɵelementEnd();
|
|
285
291
|
} }
|
|
286
292
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template(rf, ctx) { if (rf & 1) {
|
|
287
293
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
288
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
294
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 64);
|
|
289
295
|
i0.ɵɵlistener("close", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeConfirmMergeDialog("cancel")); });
|
|
290
|
-
i0.ɵɵelementStart(1, "p",
|
|
296
|
+
i0.ɵɵelementStart(1, "p", 65);
|
|
291
297
|
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. ");
|
|
292
298
|
i0.ɵɵelementEnd();
|
|
293
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
299
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 47);
|
|
294
300
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeConfirmMergeDialog("no")); });
|
|
295
301
|
i0.ɵɵtext(5, "No");
|
|
296
302
|
i0.ɵɵelementEnd();
|
|
297
|
-
i0.ɵɵelementStart(6, "button",
|
|
303
|
+
i0.ɵɵelementStart(6, "button", 66);
|
|
298
304
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.closeConfirmMergeDialog("yes")); });
|
|
299
305
|
i0.ɵɵtext(7, " Yes ");
|
|
300
306
|
i0.ɵɵelementEnd()()();
|
|
@@ -303,15 +309,15 @@ function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_
|
|
|
303
309
|
} }
|
|
304
310
|
function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_Template(rf, ctx) { if (rf & 1) {
|
|
305
311
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
306
|
-
i0.ɵɵelementStart(0, "kendo-window",
|
|
312
|
+
i0.ɵɵelementStart(0, "kendo-window", 56);
|
|
307
313
|
i0.ɵɵlistener("close", function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_Template_kendo_window_close_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.closeCompareDialog($event)); });
|
|
308
314
|
i0.ɵɵelementStart(1, "div");
|
|
309
|
-
i0.ɵɵelement(2, "mj-compare-records",
|
|
315
|
+
i0.ɵɵelement(2, "mj-compare-records", 57, 5);
|
|
310
316
|
i0.ɵɵelementEnd();
|
|
311
|
-
i0.ɵɵelementStart(4, "div",
|
|
312
|
-
i0.ɵɵtemplate(5, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_5_Template, 2, 0, "button",
|
|
317
|
+
i0.ɵɵelementStart(4, "div", 58);
|
|
318
|
+
i0.ɵɵtemplate(5, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_5_Template, 2, 0, "button", 59)(6, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_6_Template, 2, 0, "button", 59)(7, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_7_Template, 2, 0, "button", 60)(8, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_button_8_Template, 2, 0, "button", 60);
|
|
313
319
|
i0.ɵɵelementEnd();
|
|
314
|
-
i0.ɵɵtemplate(9, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template, 8, 2, "kendo-dialog",
|
|
320
|
+
i0.ɵɵtemplate(9, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_kendo_dialog_9_Template, 8, 2, "kendo-dialog", 61);
|
|
315
321
|
i0.ɵɵelementEnd();
|
|
316
322
|
} if (rf & 2) {
|
|
317
323
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -331,8 +337,8 @@ function UserViewGridComponent_Conditional_2_div_11_kendo_window_2_Template(rf,
|
|
|
331
337
|
} }
|
|
332
338
|
function UserViewGridComponent_Conditional_2_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
333
339
|
i0.ɵɵelementStart(0, "div");
|
|
334
|
-
i0.ɵɵelement(1, "div",
|
|
335
|
-
i0.ɵɵtemplate(2, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_Template, 10, 16, "kendo-window",
|
|
340
|
+
i0.ɵɵelement(1, "div", 54);
|
|
341
|
+
i0.ɵɵtemplate(2, UserViewGridComponent_Conditional_2_div_11_kendo_window_2_Template, 10, 16, "kendo-window", 55);
|
|
336
342
|
i0.ɵɵelementEnd();
|
|
337
343
|
} if (rf & 2) {
|
|
338
344
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -340,30 +346,32 @@ function UserViewGridComponent_Conditional_2_div_11_Template(rf, ctx) { if (rf &
|
|
|
340
346
|
i0.ɵɵproperty("ngIf", ctx_r1.isCompareDialogOpened);
|
|
341
347
|
} }
|
|
342
348
|
function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
343
|
-
i0.ɵɵelement(0, "
|
|
349
|
+
i0.ɵɵelement(0, "mj-loading", 20);
|
|
350
|
+
} if (rf & 2) {
|
|
351
|
+
i0.ɵɵproperty("showText", false);
|
|
344
352
|
} }
|
|
345
353
|
function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
346
354
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
347
|
-
i0.ɵɵelementStart(0, "button",
|
|
355
|
+
i0.ɵɵelementStart(0, "button", 76);
|
|
348
356
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const listEntity_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.removeFromList(listEntity_r24)); });
|
|
349
|
-
i0.ɵɵelement(1, "span",
|
|
357
|
+
i0.ɵɵelement(1, "span", 77);
|
|
350
358
|
i0.ɵɵtext(2, " Remove ");
|
|
351
359
|
i0.ɵɵelementEnd();
|
|
352
360
|
} }
|
|
353
361
|
function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
354
362
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
355
|
-
i0.ɵɵelementStart(0, "button",
|
|
363
|
+
i0.ɵɵelementStart(0, "button", 78);
|
|
356
364
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r25); const listEntity_r24 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.addToList(listEntity_r24)); });
|
|
357
|
-
i0.ɵɵelementStart(1, "div",
|
|
358
|
-
i0.ɵɵelement(2, "span",
|
|
365
|
+
i0.ɵɵelementStart(1, "div", 79);
|
|
366
|
+
i0.ɵɵelement(2, "span", 38);
|
|
359
367
|
i0.ɵɵtext(3, " Add ");
|
|
360
368
|
i0.ɵɵelementEnd()();
|
|
361
369
|
} }
|
|
362
370
|
function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
363
|
-
i0.ɵɵelementStart(0, "div",
|
|
371
|
+
i0.ɵɵelementStart(0, "div", 72)(1, "div", 73);
|
|
364
372
|
i0.ɵɵtext(2);
|
|
365
373
|
i0.ɵɵelementEnd();
|
|
366
|
-
i0.ɵɵtemplate(3, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_3_Template, 3, 0, "button",
|
|
374
|
+
i0.ɵɵtemplate(3, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_3_Template, 3, 0, "button", 74)(4, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_For_1_Conditional_4_Template, 4, 0, "button", 75);
|
|
367
375
|
i0.ɵɵelementEnd();
|
|
368
376
|
i0.ɵɵelement(5, "hr");
|
|
369
377
|
} if (rf & 2) {
|
|
@@ -384,20 +392,20 @@ function UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_Templ
|
|
|
384
392
|
} }
|
|
385
393
|
function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template(rf, ctx) { if (rf & 1) {
|
|
386
394
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
387
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
395
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 67);
|
|
388
396
|
i0.ɵɵlistener("close", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleAddToListDialog(false)); });
|
|
389
|
-
i0.ɵɵelementStart(1, "div",
|
|
397
|
+
i0.ɵɵelementStart(1, "div", 68)(2, "kendo-textbox", 69);
|
|
390
398
|
i0.ɵɵlistener("valueChange", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template_kendo_textbox_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSearch($event)); });
|
|
391
399
|
i0.ɵɵelementEnd()();
|
|
392
400
|
i0.ɵɵelement(3, "hr");
|
|
393
|
-
i0.ɵɵelementStart(4, "div",
|
|
394
|
-
i0.ɵɵtemplate(5, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_5_Template, 1,
|
|
401
|
+
i0.ɵɵelementStart(4, "div", 70);
|
|
402
|
+
i0.ɵɵtemplate(5, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_5_Template, 1, 1, "mj-loading", 20)(6, UserViewGridComponent_Conditional_2_kendo_dialog_12_Conditional_6_Template, 2, 0);
|
|
395
403
|
i0.ɵɵelementEnd();
|
|
396
|
-
i0.ɵɵelementStart(7, "kendo-dialog-actions")(8, "button",
|
|
404
|
+
i0.ɵɵelementStart(7, "kendo-dialog-actions")(8, "button", 71);
|
|
397
405
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.addRecordsToSelectedLists()); });
|
|
398
406
|
i0.ɵɵtext(9, " Save ");
|
|
399
407
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵelementStart(10, "button",
|
|
408
|
+
i0.ɵɵelementStart(10, "button", 46);
|
|
401
409
|
i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleAddToListDialog(false)); });
|
|
402
410
|
i0.ɵɵtext(11, " Cancel ");
|
|
403
411
|
i0.ɵɵelementEnd()()();
|
|
@@ -415,21 +423,21 @@ function UserViewGridComponent_Conditional_2_kendo_dialog_12_Template(rf, ctx) {
|
|
|
415
423
|
} }
|
|
416
424
|
function UserViewGridComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
417
425
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
418
|
-
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_Conditional_0_Template, 2,
|
|
419
|
-
i0.ɵɵelementStart(1, "kendo-grid",
|
|
426
|
+
i0.ɵɵtemplate(0, UserViewGridComponent_Conditional_2_Conditional_0_Template, 2, 1, "div", 9);
|
|
427
|
+
i0.ɵɵelementStart(1, "kendo-grid", 10, 0);
|
|
420
428
|
i0.ɵɵlistener("pageChange", function UserViewGridComponent_Conditional_2_Template_kendo_grid_pageChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.pageChange($event)); });
|
|
421
429
|
i0.ɵɵtwoWayListener("selectedKeysChange", function UserViewGridComponent_Conditional_2_Template_kendo_grid_selectedKeysChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedKeys, $event) || (ctx_r1.selectedKeys = $event); return i0.ɵɵresetView($event); });
|
|
422
430
|
i0.ɵɵlistener("cellClick", function UserViewGridComponent_Conditional_2_Template_kendo_grid_cellClick_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cellClickHandler($event)); })("cellClose", function UserViewGridComponent_Conditional_2_Template_kendo_grid_cellClose_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cellCloseHandler($event)); })("columnReorder", function UserViewGridComponent_Conditional_2_Template_kendo_grid_columnReorder_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.columnReorder($event)); })("columnResize", function UserViewGridComponent_Conditional_2_Template_kendo_grid_columnResize_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.columnResize($event)); })("selectionChange", function UserViewGridComponent_Conditional_2_Template_kendo_grid_selectionChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectionChange($event)); })("sortChange", function UserViewGridComponent_Conditional_2_Template_kendo_grid_sortChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.sortChanged($event)); });
|
|
423
|
-
i0.ɵɵtemplate(3, UserViewGridComponent_Conditional_2_ng_template_3_Template, 6, 6, "ng-template",
|
|
424
|
-
i0.ɵɵelementStart(6, "kendo-excelexport",
|
|
425
|
-
i0.ɵɵtemplate(8, UserViewGridComponent_Conditional_2_kendo_excelexport_column_8_Template, 1, 2, "kendo-excelexport-column",
|
|
431
|
+
i0.ɵɵtemplate(3, UserViewGridComponent_Conditional_2_ng_template_3_Template, 6, 6, "ng-template", 11)(4, UserViewGridComponent_Conditional_2_kendo_grid_checkbox_column_4_Template, 1, 6, "kendo-grid-checkbox-column", 12)(5, UserViewGridComponent_Conditional_2_kendo_grid_column_5_Template, 2, 10, "kendo-grid-column", 13);
|
|
432
|
+
i0.ɵɵelementStart(6, "kendo-excelexport", 14, 1);
|
|
433
|
+
i0.ɵɵtemplate(8, UserViewGridComponent_Conditional_2_kendo_excelexport_column_8_Template, 1, 2, "kendo-excelexport-column", 15);
|
|
426
434
|
i0.ɵɵelementEnd()();
|
|
427
435
|
i0.ɵɵelementStart(9, "div", null, 2);
|
|
428
|
-
i0.ɵɵtemplate(11, UserViewGridComponent_Conditional_2_div_11_Template, 3, 1, "div",
|
|
436
|
+
i0.ɵɵtemplate(11, UserViewGridComponent_Conditional_2_div_11_Template, 3, 1, "div", 16);
|
|
429
437
|
i0.ɵɵelementEnd();
|
|
430
|
-
i0.ɵɵtemplate(12, UserViewGridComponent_Conditional_2_kendo_dialog_12_Template, 12, 8, "kendo-dialog",
|
|
431
|
-
i0.ɵɵelement(13, "mj-entity-form-dialog",
|
|
432
|
-
i0.ɵɵelementStart(15, "mj-entity-communications-preview-window",
|
|
438
|
+
i0.ɵɵtemplate(12, UserViewGridComponent_Conditional_2_kendo_dialog_12_Template, 12, 8, "kendo-dialog", 17);
|
|
439
|
+
i0.ɵɵelement(13, "mj-entity-form-dialog", 18, 3);
|
|
440
|
+
i0.ɵɵelementStart(15, "mj-entity-communications-preview-window", 19, 4);
|
|
433
441
|
i0.ɵɵlistener("DialogClosed", function UserViewGridComponent_Conditional_2_Template_mj_entity_communications_preview_window_DialogClosed_15_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showTemplatePreviewDialog = false); });
|
|
434
442
|
i0.ɵɵelementEnd();
|
|
435
443
|
} if (rf & 2) {
|
|
@@ -460,13 +468,30 @@ LoadEntityCommunicationsEngineClient();
|
|
|
460
468
|
export class UserViewGridComponent {
|
|
461
469
|
elementRef;
|
|
462
470
|
formBuilder;
|
|
463
|
-
|
|
471
|
+
navigationService;
|
|
464
472
|
renderer;
|
|
465
473
|
title = 'UserViewGrid';
|
|
466
474
|
/**
|
|
467
|
-
* Parameters for running the view
|
|
475
|
+
* Parameters for running the view.
|
|
476
|
+
* When this changes, the grid will automatically refresh if AutoRefreshOnParamsChange is true.
|
|
477
|
+
*/
|
|
478
|
+
_params;
|
|
479
|
+
get Params() {
|
|
480
|
+
return this._params;
|
|
481
|
+
}
|
|
482
|
+
set Params(value) {
|
|
483
|
+
const paramsChanged = this.hasParamsChanged(this._params, value);
|
|
484
|
+
this._params = value;
|
|
485
|
+
// Auto-refresh when params change (after initial load)
|
|
486
|
+
if (paramsChanged && this.AutoRefreshOnParamsChange && !this.neverLoaded) {
|
|
487
|
+
this.Refresh(value);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* If set to true (default), the grid will automatically refresh when Params input changes.
|
|
492
|
+
* Set to false if you want to manually control refresh timing.
|
|
468
493
|
*/
|
|
469
|
-
|
|
494
|
+
AutoRefreshOnParamsChange = true;
|
|
470
495
|
BottomMargin = 0;
|
|
471
496
|
/**
|
|
472
497
|
* Height of the grid. Can be:
|
|
@@ -667,10 +692,10 @@ export class UserViewGridComponent {
|
|
|
667
692
|
LogError(e);
|
|
668
693
|
}
|
|
669
694
|
}
|
|
670
|
-
constructor(elementRef, formBuilder,
|
|
695
|
+
constructor(elementRef, formBuilder, navigationService, renderer) {
|
|
671
696
|
this.elementRef = elementRef;
|
|
672
697
|
this.formBuilder = formBuilder;
|
|
673
|
-
this.
|
|
698
|
+
this.navigationService = navigationService;
|
|
674
699
|
this.renderer = renderer;
|
|
675
700
|
}
|
|
676
701
|
_saveTimeout;
|
|
@@ -842,20 +867,8 @@ export class UserViewGridComponent {
|
|
|
842
867
|
}
|
|
843
868
|
}
|
|
844
869
|
if (this.EditMode === 'None' && this.AutoNavigate) {
|
|
845
|
-
//
|
|
846
|
-
|
|
847
|
-
if (decodedUrl.includes('?')) {
|
|
848
|
-
decodedUrl = decodedUrl.split('?')[0];
|
|
849
|
-
}
|
|
850
|
-
const newURL = ['resource', 'record', compositeKey.ToURLSegment()];
|
|
851
|
-
const newURLString = newURL.join('/');
|
|
852
|
-
if (newURLString === decodedUrl) {
|
|
853
|
-
// we have to force the router to change its state otherwise the next line below won't do anything because the
|
|
854
|
-
// router thinks it is the same URL, since we have the Entity on the query params, we can just change the URL to something else
|
|
855
|
-
// and skipLocationChange so that the browser history doesn't get messed up
|
|
856
|
-
await this.router.navigateByUrl('/dummy', { skipLocationChange: true });
|
|
857
|
-
}
|
|
858
|
-
this.router.navigate(newURL, { queryParams: { Entity: this._entityInfo.Name } });
|
|
870
|
+
// Use NavigationService to open the record
|
|
871
|
+
this.navigationService.OpenEntityRecord(this._entityInfo.Name, compositeKey);
|
|
859
872
|
}
|
|
860
873
|
}
|
|
861
874
|
createFormGroup(dataItem) {
|
|
@@ -1041,7 +1054,8 @@ export class UserViewGridComponent {
|
|
|
1041
1054
|
await CommunicationEngineBase.Instance.Config(false);
|
|
1042
1055
|
await EntityActionEngineBase.Instance.Config(false);
|
|
1043
1056
|
await EntityCommunicationsEngineClient.Instance.Config(false);
|
|
1044
|
-
|
|
1057
|
+
// Check for valid params - ExtraFilter can be empty string (meaning no filter), so use != null check
|
|
1058
|
+
if (params && (params.ViewEntity || params.ViewID || params.ViewName || (params.EntityName && params.ExtraFilter != null))) {
|
|
1045
1059
|
const startTime = new Date().getTime();
|
|
1046
1060
|
this.isLoading = true;
|
|
1047
1061
|
this.neverLoaded = false;
|
|
@@ -1151,9 +1165,26 @@ export class UserViewGridComponent {
|
|
|
1151
1165
|
});
|
|
1152
1166
|
}
|
|
1153
1167
|
else {
|
|
1154
|
-
LogError("Refresh(params) must have ViewID or ViewName or (EntityName and ExtraFilter)");
|
|
1168
|
+
LogError("Refresh(params) must have ViewID or ViewName or (EntityName and ExtraFilter). Note: ExtraFilter can be an empty string for no filtering.");
|
|
1155
1169
|
}
|
|
1156
1170
|
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Check if params have meaningfully changed (compares key properties)
|
|
1173
|
+
*/
|
|
1174
|
+
hasParamsChanged(oldParams, newParams) {
|
|
1175
|
+
// If both are undefined/null, no change
|
|
1176
|
+
if (!oldParams && !newParams)
|
|
1177
|
+
return false;
|
|
1178
|
+
// If one is undefined/null and other isn't, changed
|
|
1179
|
+
if (!oldParams || !newParams)
|
|
1180
|
+
return true;
|
|
1181
|
+
// Compare key properties that would require a refresh
|
|
1182
|
+
return oldParams.EntityName !== newParams.EntityName ||
|
|
1183
|
+
oldParams.ViewID !== newParams.ViewID ||
|
|
1184
|
+
oldParams.ViewName !== newParams.ViewName ||
|
|
1185
|
+
oldParams.ExtraFilter !== newParams.ExtraFilter ||
|
|
1186
|
+
oldParams.UserSearchString !== newParams.UserSearchString;
|
|
1187
|
+
}
|
|
1157
1188
|
/**
|
|
1158
1189
|
* Load up the entity action metadata for the current entity the view is displaying
|
|
1159
1190
|
*/
|
|
@@ -1491,15 +1522,12 @@ export class UserViewGridComponent {
|
|
|
1491
1522
|
* this method will do nothing.
|
|
1492
1523
|
*/
|
|
1493
1524
|
async doCreateNewRecord() {
|
|
1494
|
-
// creates a new record either using a dialog or with
|
|
1525
|
+
// creates a new record either using a dialog or with NavigationService
|
|
1495
1526
|
if (this.UserCanCreateNewRecord && this._entityInfo) {
|
|
1496
1527
|
if (this.CreateRecordMode === 'Tab') {
|
|
1497
|
-
//
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
Entity: this._entityInfo.Name,
|
|
1501
|
-
NewRecordValues: this.NewRecordValues ? FieldValueCollection.FromObject(this.NewRecordValues)?.ToURLSegment() : null
|
|
1502
|
-
}
|
|
1528
|
+
// Use NavigationService to open a new record form, passing initial values if provided
|
|
1529
|
+
this.navigationService.OpenNewEntityRecord(this._entityInfo.Name, {
|
|
1530
|
+
newRecordValues: this.NewRecordValues || undefined
|
|
1503
1531
|
});
|
|
1504
1532
|
}
|
|
1505
1533
|
else {
|
|
@@ -1678,7 +1706,7 @@ export class UserViewGridComponent {
|
|
|
1678
1706
|
this.resizeListener = null;
|
|
1679
1707
|
}
|
|
1680
1708
|
}
|
|
1681
|
-
static ɵfac = function UserViewGridComponent_Factory(t) { return new (t || UserViewGridComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.
|
|
1709
|
+
static ɵfac = function UserViewGridComponent_Factory(t) { return new (t || UserViewGridComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.NavigationService), i0.ɵɵdirectiveInject(i0.Renderer2)); };
|
|
1682
1710
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserViewGridComponent, selectors: [["mj-user-view-grid"]], viewQuery: function UserViewGridComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1683
1711
|
i0.ɵɵviewQuery(_c0, 5, GridComponent);
|
|
1684
1712
|
i0.ɵɵviewQuery(_c0, 5, ElementRef);
|
|
@@ -1698,19 +1726,21 @@ export class UserViewGridComponent {
|
|
|
1698
1726
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analysisResults = _t.first);
|
|
1699
1727
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.compareDialogContainer = _t.first);
|
|
1700
1728
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.entityFormDialog = _t.first);
|
|
1701
|
-
} }, inputs: { Params: "Params", BottomMargin: "BottomMargin", Height: "Height", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AutoRefreshOnInit: "AutoRefreshOnInit", NewRecordValues: "NewRecordValues", ShowCreateNewRecordButton: "ShowCreateNewRecordButton", ShowEntityActionButtons: "ShowEntityActionButtons", ShowCommunicationButton: "ShowCommunicationButton", CreateRecordMode: "CreateRecordMode", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited", dataLoaded: "dataLoaded" }, decls: 3, vars: 1, consts: [["kendoGrid", ""], ["excelExport", ""], ["compareDialogContainer", ""], ["entityFormDialog", ""], ["templatePreviewDialog", ""], ["recordCompareRef", ""], [1, "user-view-grid-wrap"], [1, "grid-loading-container"], [1, "grid-loading-overlay"], ["scrollable", "virtual", "kendoGridSelectBy", "", 3, "pageChange", "selectedKeysChange", "cellClick", "cellClose", "columnReorder", "columnResize", "selectionChange", "sortChange", "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "sort", "reorderable", "selectable", "selectedKeys"], ["kendoGridToolbarTemplate", ""], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "data", "fileName"], [3, "field", "title", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "dialog-wrapper", "title", "Select List(s) To Add Record(s) To", 3, "minHeight", "maxHeight", "minWidth", "maxWidth", "close", 4, "ngIf"], ["Mode", "complete", 3, "Visible"], [3, "DialogClosed", "DialogVisible", "entityInfo", "runViewParams"], ["kendoButton", "", 3, "disabled"], ["kendoButton", ""], ["kendoButton", "", "title", "Create new record"], ["kendoButton", "", "title", "Export to Excel", 3, "click"], [1, "fa-solid", "fa-file-excel"], [1, "button-text"], ["kendoButton", "", "title", "Search for duplicate records", 3, "click"], [1, "fa-solid", "fa-magnifying-glass-plus"], ["kendoButton", "", "title", "Add selected records to a list", 3, "click"], [1, "fa-solid", "fa-list-check"], ["kendoButton", "", "title", "Merge selected records", 3, "click"], [1, "fa-solid", "fa-code-merge"], ["kendoButton", "", "title", "Compare selected records", 3, "click"], [1, "fa-solid", "fa-code-compare"], ["kendoButton", "", "title", "Send message to selected records"], ["kendoButton", "", "title", "Refresh data"], ["kendoButton", "", "title", "Create new record", 3, "click"], [1, "fa-solid", "fa-plus"], ["kendoButton", "", "title", "Send message to selected records", 3, "click"], [1, "fa-solid", "fa-envelope"], ["kendoButton", "", 3, "title"], ["kendoButton", "", 3, "click", "title"], [1, "fa-solid", "fa-bolt"], ["kendoButton", "", "title", "Refresh data", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click"], [1, "fa-solid", "fa-xmark"], [3, "width", "headerStyle"], [3, "field", "title", "width", "editable", "editor", "headerStyle"], ["kendoGridFooterTemplate", ""], [2, "font-size", "smaller", "font-weight", "normal"], [3, "field", "title"], [1, "k-overlay"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close", 4, "ngIf"], ["title", "Compare Records", 3, "close", "minHeight", "minWidth", "top", "left", "width", "height", "resizable"], [3, "entityName", "recordsToCompare", "visibleColumns", "selectionMode"], [1, "k-actions", "k-actions-end"], ["kendoButton", "", "themeColor", "primary", "type", "button", 3, "click", 4, "ngIf"], ["kendoButton", "", "type", "button", 3, "click", 4, "ngIf"], ["title", "Confirm Choice", 3, "minWidth", "width", "close", 4, "ngIf"], ["kendoButton", "", "themeColor", "primary", "type", "button", 3, "click"], ["kendoButton", "", "type", "button", 3, "click"], ["title", "Confirm Choice", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["title", "Select List(s) To Add Record(s) To", 1, "dialog-wrapper", 3, "close", "minHeight", "maxHeight", "minWidth", "maxWidth"], [1, "search-header"], ["id", "listSearch", "placeholder", "Search Lists...", "kendoTextBox", "", 1, "search-bar", 3, "valueChange", "clearButton"], [1, "overflow-y-scroll"], ["
|
|
1729
|
+
} }, inputs: { Params: "Params", AutoRefreshOnParamsChange: "AutoRefreshOnParamsChange", BottomMargin: "BottomMargin", Height: "Height", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AutoRefreshOnInit: "AutoRefreshOnInit", NewRecordValues: "NewRecordValues", ShowCreateNewRecordButton: "ShowCreateNewRecordButton", ShowEntityActionButtons: "ShowEntityActionButtons", ShowCommunicationButton: "ShowCommunicationButton", CreateRecordMode: "CreateRecordMode", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited", dataLoaded: "dataLoaded" }, decls: 3, vars: 1, consts: [["kendoGrid", ""], ["excelExport", ""], ["compareDialogContainer", ""], ["entityFormDialog", ""], ["templatePreviewDialog", ""], ["recordCompareRef", ""], [1, "user-view-grid-wrap"], [1, "grid-loading-container"], ["size", "large", 3, "showText"], [1, "grid-loading-overlay"], ["scrollable", "virtual", "kendoGridSelectBy", "", 3, "pageChange", "selectedKeysChange", "cellClick", "cellClose", "columnReorder", "columnResize", "selectionChange", "sortChange", "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "sort", "reorderable", "selectable", "selectedKeys"], ["kendoGridToolbarTemplate", ""], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "data", "fileName"], [3, "field", "title", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "dialog-wrapper", "title", "Select List(s) To Add Record(s) To", 3, "minHeight", "maxHeight", "minWidth", "maxWidth", "close", 4, "ngIf"], ["Mode", "complete", 3, "Visible"], [3, "DialogClosed", "DialogVisible", "entityInfo", "runViewParams"], ["size", "medium", 3, "showText"], ["kendoButton", "", 3, "disabled"], ["kendoButton", ""], ["kendoButton", "", "title", "Create new record"], ["kendoButton", "", "title", "Export to Excel", 3, "click"], [1, "fa-solid", "fa-file-excel"], [1, "button-text"], ["kendoButton", "", "title", "Search for duplicate records", 3, "click"], [1, "fa-solid", "fa-magnifying-glass-plus"], ["kendoButton", "", "title", "Add selected records to a list", 3, "click"], [1, "fa-solid", "fa-list-check"], ["kendoButton", "", "title", "Merge selected records", 3, "click"], [1, "fa-solid", "fa-code-merge"], ["kendoButton", "", "title", "Compare selected records", 3, "click"], [1, "fa-solid", "fa-code-compare"], ["kendoButton", "", "title", "Send message to selected records"], ["kendoButton", "", "title", "Refresh data"], ["kendoButton", "", "title", "Create new record", 3, "click"], [1, "fa-solid", "fa-plus"], ["kendoButton", "", "title", "Send message to selected records", 3, "click"], [1, "fa-solid", "fa-envelope"], ["kendoButton", "", 3, "title"], ["kendoButton", "", 3, "click", "title"], [1, "fa-solid", "fa-bolt"], ["kendoButton", "", "title", "Refresh data", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], ["kendoButton", "", 3, "click", "disabled"], ["kendoButton", "", 3, "click"], [1, "fa-solid", "fa-xmark"], [3, "width", "headerStyle"], [3, "field", "title", "width", "editable", "editor", "headerStyle"], ["kendoGridFooterTemplate", ""], [2, "font-size", "smaller", "font-weight", "normal"], [3, "field", "title"], [1, "k-overlay"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close", 4, "ngIf"], ["title", "Compare Records", 3, "close", "minHeight", "minWidth", "top", "left", "width", "height", "resizable"], [3, "entityName", "recordsToCompare", "visibleColumns", "selectionMode"], [1, "k-actions", "k-actions-end"], ["kendoButton", "", "themeColor", "primary", "type", "button", 3, "click", 4, "ngIf"], ["kendoButton", "", "type", "button", 3, "click", 4, "ngIf"], ["title", "Confirm Choice", 3, "minWidth", "width", "close", 4, "ngIf"], ["kendoButton", "", "themeColor", "primary", "type", "button", 3, "click"], ["kendoButton", "", "type", "button", 3, "click"], ["title", "Confirm Choice", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["title", "Select List(s) To Add Record(s) To", 1, "dialog-wrapper", 3, "close", "minHeight", "maxHeight", "minWidth", "maxWidth"], [1, "search-header"], ["id", "listSearch", "placeholder", "Search Lists...", "kendoTextBox", "", 1, "search-bar", 3, "valueChange", "clearButton"], [1, "overflow-y-scroll"], ["kendoButton", "", "themeColor", "primary", 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 UserViewGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1702
1730
|
i0.ɵɵelementStart(0, "div", 6);
|
|
1703
|
-
i0.ɵɵtemplate(1, UserViewGridComponent_Conditional_1_Template, 2,
|
|
1731
|
+
i0.ɵɵtemplate(1, UserViewGridComponent_Conditional_1_Template, 2, 1, "div", 7)(2, UserViewGridComponent_Conditional_2_Template, 17, 25);
|
|
1704
1732
|
i0.ɵɵelementEnd();
|
|
1705
1733
|
} if (rf & 2) {
|
|
1706
1734
|
i0.ɵɵadvance();
|
|
1707
1735
|
i0.ɵɵconditional(!ctx.AllowLoad || ctx.neverLoaded ? 1 : 2);
|
|
1708
|
-
} }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.GridComponent, i4.ToolbarTemplateDirective, i4.SelectionDirective, i4.ColumnComponent, i4.FooterTemplateDirective, i4.CheckboxColumnComponent, i5.DialogComponent, i5.DialogActionsComponent, i5.WindowComponent, i6.ExcelExportComponent, i6.ColumnComponent, i7.ButtonComponent, i8.CompareRecordsComponent, i9.TextBoxComponent, i10.EntityFormDialogComponent, i11.
|
|
1736
|
+
} }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.GridComponent, i4.ToolbarTemplateDirective, i4.SelectionDirective, i4.ColumnComponent, i4.FooterTemplateDirective, i4.CheckboxColumnComponent, i5.DialogComponent, i5.DialogActionsComponent, i5.WindowComponent, i6.ExcelExportComponent, i6.ColumnComponent, i7.ButtonComponent, i8.CompareRecordsComponent, i9.TextBoxComponent, i10.EntityFormDialogComponent, i11.EntityCommunicationsPreviewWindowComponent, i12.LoadingComponent, i3.DecimalPipe], styles: ["\n\n.user-view-grid-wrap[_ngcontent-%COMP%] {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n position: relative;\n}\n\n\n\n.grid-loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 300px;\n padding: 40px;\n}\n\n\n\n.grid-loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n backdrop-filter: blur(2px);\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\n.title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.main-fav-wrapper[_ngcontent-%COMP%] {\n background: #fff;\n padding: 20px;\n}\n\n.filter-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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\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.k-table-td[_ngcontent-%COMP%] {\n border-right: none !important;\n}\n\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\n.btn-cmn.active[_ngcontent-%COMP%] {\n border: 1px solid var(--border-blue);\n}\n\n .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px;\n padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n\n\n\n .user-view-grid-wrap .k-grid-toolbar {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n\n\n .user-view-grid-wrap .k-grid-toolbar button {\n padding: 8px 14px !important;\n font-size: 14px !important;\n border: 1px solid #d1d5db !important;\n background: white !important;\n color: #374151 !important;\n border-radius: 6px !important;\n display: inline-flex !important;\n align-items: center !important;\n gap: 8px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid-toolbar button .button-text {\n display: none !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid-toolbar button span[class*=\"fa-\"] {\n font-size: 16px !important;\n}\n\n .user-view-grid-wrap .k-grid-toolbar button:hover {\n background: #f9fafb !important;\n border-color: #9ca3af !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid-header {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n}\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: #374151 !important;\n font-weight: 600 !important;\n font-size: 13px !important;\n padding: 12px 16px !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid tbody tr {\n border-bottom: 1px solid #f3f4f6 !important;\n transition: background-color 0.15s ease;\n}\n\n .user-view-grid-wrap .k-grid tbody tr:hover {\n background: #f9fafb !important;\n}\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: #1f2937 !important;\n font-weight: 500;\n border-bottom-width: 1px;\n font-size: 14px !important;\n padding: 12px 16px !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid-footer {\n background: #f9fafb !important;\n border-top: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n font-size: 13px !important;\n color: #6b7280 !important;\n}\n\n\n\n .user-view-grid-wrap .k-grid .k-checkbox-column {\n background: #fafbfc !important;\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\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}"] });
|
|
1709
1737
|
}
|
|
1710
1738
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewGridComponent, [{
|
|
1711
1739
|
type: Component,
|
|
1712
|
-
args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" >\n @if (!AllowLoad || neverLoaded) {\n <div class=\"grid-loading-container\">\n <kendo-loader></kendo-loader>\n </div>\n }\n @else {\n @if (isLoading) {\n <div class=\"grid-loading-overlay\">\n <kendo-loader></kendo-loader>\n </div>\n }\n <kendo-grid #kendoGrid\n \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]=\"UserCanEdit\"\n [sort]=\"sortSettings\" \n [resizable]=\"UserCanEdit\"\n [reorderable]=\"UserCanEdit\"\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 @if(!anyModeEnabled){\n @if(EntityInfo && ShowCreateNewRecordButton && UserCanCreateNewRecord) {\n <button kendoButton (click)=\"doCreateNewRecord()\" title=\"Create new record\">\n <span class=\"fa-solid fa-plus\"></span>\n <span class=\"button-text\">New</span>\n </button>\n }\n\n <button kendoButton (click)=\"doExcelExport()\" title=\"Export to Excel\">\n <span class=\"fa-solid fa-file-excel\"></span>\n <span class=\"button-text\">Export to Excel</span>\n </button>\n <button (click)=\"enableCheckbox(false, 'duplicate')\" kendoButton title=\"Search for duplicate records\">\n <span class=\"fa-solid fa-magnifying-glass-plus\"></span>\n <span class=\"button-text\">Search For Duplicates</span>\n </button>\n <button (click)=\"enableCheckbox(false, 'addToList')\" kendoButton title=\"Add selected records to a list\">\n <span class=\"fa-solid fa-list-check\"></span>\n <span class=\"button-text\">Add To List</span>\n </button>\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" kendoButton title=\"Merge selected records\">\n <span class=\"fa-solid fa-code-merge\"></span>\n <span class=\"button-text\">Merge</span>\n </button>\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" kendoButton title=\"Compare selected records\">\n <span class=\"fa-solid fa-code-compare\"></span>\n <span class=\"button-text\">Compare</span>\n </button>\n\n @if (ShowCommunicationButton && EntitySupportsCommunication) {\n <button (click)=\"doCommunication()\" kendoButton title=\"Send message to selected records\">\n <span class=\"fa-solid fa-envelope\"></span>\n <span class=\"button-text\">Send Message</span>\n </button>\n }\n\n @if (ShowEntityActionButtons && EntityActions && EntityActions.length > 0) {\n @for (action of EntityActions; track action) {\n <button (click)=\"doEntityAction(action)\" kendoButton [title]=\"action.Action\">\n <span class=\"fa-solid fa-bolt\"></span>\n <span class=\"button-text\">{{action.Action}}</span>\n </button>\n }\n }\n\n @if(showRefreshButton){\n <button kendoButton (click)=\"RefreshFromSavedParams()\" title=\"Refresh data\">\n <span class=\"fa-solid fa-arrows-rotate\"></span>\n <span class=\"button-text\">Refresh</span>\n </button>\n }\n }\n @if(duplicateMode){\n <button (click)=\"enableCheckbox(false, 'duplicate')\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-magnifying-glass-plus\"></span>\n <span class=\"button-text\">Search For Duplicates</span>\n </button>\n }\n @if(addToListMode){\n <button (click)=\"enableCheckbox(false, 'addToList')\" [disabled]=\"addToListMode && recordsToCompare.length === 0\" kendoButton>\n <span class=\"fa-solid fa-list-check\"></span>\n <span class=\"button-text\">Add To List</span>\n </button>\n }\n @if(compareMode){\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" [disabled]=\"compareMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-code-compare\"></span>\n <span class=\"button-text\">Compare</span>\n </button>\n }\n @if(mergeMode){\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-code-merge\"></span>\n <span class=\"button-text\">Merge</span>\n </button>\n }\n @if(anyModeEnabled){\n <button (click)=\"enableCheckbox(true, '')\" kendoButton>\n <span class=\"fa-solid fa-xmark\"></span>\n <span class=\"button-text\">Cancel</span>\n </button>\n }\n </ng-template>\n \n <kendo-grid-checkbox-column \n *ngIf=\"anyModeEnabled\" \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 \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>\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=\"mergeMode\" kendoButton themeColor=\"primary\" type=\"button\" (click)=\"closeCompareDialog('merge')\">\n Merge Records\n </button>\n <button *ngIf=\"duplicateMode\" kendoButton themeColor=\"primary\" type=\"button\" (click)=\"findDuplicateRecords()\">\n Search for Duplicates\n </button>\n <button *ngIf=\"compareMode\" kendoButton type=\"button\" (click)=\"closeCompareDialog('close')\">\n Close\n </button>\n <button *ngIf=\"mergeMode || duplicateMode\" kendoButton type=\"button\" (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 <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List(s) To Add Record(s) To\"\n *ngIf=\"showAddToListDialog\"\n (close)=\"toggleAddToListDialog(false)\"\n [minHeight]=\"500\"\n [maxHeight]=\"500\"\n [minWidth]=\"500\"\n [maxWidth]=\"650\"\n >\n <div class=\"search-header\">\n <kendo-textbox\n id=\"listSearch\"\n placeholder=\"Search Lists...\"\n kendoTextBox\n (valueChange)=\"onSearch($event)\"\n [clearButton]=\"true\"\n class=\"search-bar\"\n ></kendo-textbox>\n </div>\n <hr>\n <div class=\"overflow-y-scroll\">\n @if(showAddToListLoader){\n <kendo-loader type=\"converging-spinner\"></kendo-loader>\n }\n @else {\n @for(listEntity of listEntities; track listEntity){\n <div class=\"list-item\">\n <div class=\"list-text\" [ngClass]=\"{'list-selected': selectedListEntities.includes(listEntity)}\">\n {{listEntity.Name}}\n </div>\n @if(selectedListEntities.includes(listEntity)){\n <button kendoButton class=\"btn-no-border btn-selected\" (click)=\"removeFromList(listEntity)\">\n <span class=\"fa-solid fa-minus\"></span>\n Remove\n </button>\n }\n @else {\n <button kendoButton class=\"btn-no-border\" (click)=\"addToList(listEntity)\">\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\n\n <kendo-dialog-actions>\n <button kendoButton (click)=\"addRecordsToSelectedLists()\" [disabled]=\"showAddToListLoader\" themeColor=\"primary\">\n Save\n </button>\n <button kendoButton (click)=\"toggleAddToListDialog(false)\" [disabled]=\"showAddToListLoader\">\n Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Entity Form Dialog Component here for future use as needed -->\n <mj-entity-form-dialog\n #entityFormDialog\n Mode=\"complete\"\n [Visible]=\"showNewRecordDialog\"\n ></mj-entity-form-dialog>\n\n <mj-entity-communications-preview-window \n #templatePreviewDialog\n [DialogVisible]=\"showTemplatePreviewDialog\"\n (DialogClosed)=\"showTemplatePreviewDialog = false\"\n [entityInfo]=\"_entityInfo\"\n [runViewParams]=\"Params\"\n >\n </mj-entity-communications-preview-window> \n\n }\n</div>\n", styles: ["/* Grid container - match form cards */\n.user-view-grid-wrap {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n position: relative;\n}\n\n/* Loading container - contained within grid space (initial load) */\n.grid-loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 300px;\n padding: 40px;\n}\n\n/* Loading overlay - shown on top of grid during refresh */\n.grid-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n backdrop-filter: blur(2px);\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\n.title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.main-fav-wrapper {\n background: #fff;\n padding: 20px;\n}\n\n.filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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\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.k-table-td {\n border-right: none !important;\n}\n\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\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px;\n padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n\n/* Toolbar modernization - match form toolbar style */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n/* Toolbar buttons - match form toolbar style */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button {\n padding: 8px 14px !important;\n font-size: 14px !important;\n border: 1px solid #d1d5db !important;\n background: white !important;\n color: #374151 !important;\n border-radius: 6px !important;\n display: inline-flex !important;\n align-items: center !important;\n gap: 8px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n}\n\n/* Hide button text labels on toolbar buttons to save space, rely on icons + tooltips */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button .button-text {\n display: none !important;\n}\n\n/* Icon-only buttons need less horizontal padding */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button span[class*=\"fa-\"] {\n font-size: 16px !important;\n}\n\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button:hover {\n background: #f9fafb !important;\n border-color: #9ca3af !important;\n}\n\n/* Header styling */\n::ng-deep .user-view-grid-wrap .k-grid-header {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n}\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: #374151 !important;\n font-weight: 600 !important;\n font-size: 13px !important;\n padding: 12px 16px !important;\n}\n\n/* Row styling */\n::ng-deep .user-view-grid-wrap .k-grid tbody tr {\n border-bottom: 1px solid #f3f4f6 !important;\n transition: background-color 0.15s ease;\n}\n\n::ng-deep .user-view-grid-wrap .k-grid tbody tr:hover {\n background: #f9fafb !important;\n}\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: #1f2937 !important;\n font-weight: 500;\n border-bottom-width: 1px;\n font-size: 14px !important;\n padding: 12px 16px !important;\n}\n\n/* Footer styling */\n::ng-deep .user-view-grid-wrap .k-grid-footer {\n background: #f9fafb !important;\n border-top: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n font-size: 13px !important;\n color: #6b7280 !important;\n}\n\n/* Selection checkbox column */\n::ng-deep .user-view-grid-wrap .k-grid .k-checkbox-column {\n background: #fafbfc !important;\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\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}"] }]
|
|
1713
|
-
}], () => [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.
|
|
1740
|
+
args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" >\n @if (!AllowLoad || neverLoaded) {\n <div class=\"grid-loading-container\">\n <mj-loading [showText]=\"false\" size=\"large\"></mj-loading>\n </div>\n }\n @else {\n @if (isLoading) {\n <div class=\"grid-loading-overlay\">\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n </div>\n }\n <kendo-grid #kendoGrid\n \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]=\"UserCanEdit\"\n [sort]=\"sortSettings\" \n [resizable]=\"UserCanEdit\"\n [reorderable]=\"UserCanEdit\"\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 @if(!anyModeEnabled){\n @if(EntityInfo && ShowCreateNewRecordButton && UserCanCreateNewRecord) {\n <button kendoButton (click)=\"doCreateNewRecord()\" title=\"Create new record\">\n <span class=\"fa-solid fa-plus\"></span>\n <span class=\"button-text\">New</span>\n </button>\n }\n\n <button kendoButton (click)=\"doExcelExport()\" title=\"Export to Excel\">\n <span class=\"fa-solid fa-file-excel\"></span>\n <span class=\"button-text\">Export to Excel</span>\n </button>\n <button (click)=\"enableCheckbox(false, 'duplicate')\" kendoButton title=\"Search for duplicate records\">\n <span class=\"fa-solid fa-magnifying-glass-plus\"></span>\n <span class=\"button-text\">Search For Duplicates</span>\n </button>\n <button (click)=\"enableCheckbox(false, 'addToList')\" kendoButton title=\"Add selected records to a list\">\n <span class=\"fa-solid fa-list-check\"></span>\n <span class=\"button-text\">Add To List</span>\n </button>\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" kendoButton title=\"Merge selected records\">\n <span class=\"fa-solid fa-code-merge\"></span>\n <span class=\"button-text\">Merge</span>\n </button>\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" kendoButton title=\"Compare selected records\">\n <span class=\"fa-solid fa-code-compare\"></span>\n <span class=\"button-text\">Compare</span>\n </button>\n\n @if (ShowCommunicationButton && EntitySupportsCommunication) {\n <button (click)=\"doCommunication()\" kendoButton title=\"Send message to selected records\">\n <span class=\"fa-solid fa-envelope\"></span>\n <span class=\"button-text\">Send Message</span>\n </button>\n }\n\n @if (ShowEntityActionButtons && EntityActions && EntityActions.length > 0) {\n @for (action of EntityActions; track action) {\n <button (click)=\"doEntityAction(action)\" kendoButton [title]=\"action.Action\">\n <span class=\"fa-solid fa-bolt\"></span>\n <span class=\"button-text\">{{action.Action}}</span>\n </button>\n }\n }\n\n @if(showRefreshButton){\n <button kendoButton (click)=\"RefreshFromSavedParams()\" title=\"Refresh data\">\n <span class=\"fa-solid fa-arrows-rotate\"></span>\n <span class=\"button-text\">Refresh</span>\n </button>\n }\n }\n @if(duplicateMode){\n <button (click)=\"enableCheckbox(false, 'duplicate')\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-magnifying-glass-plus\"></span>\n <span class=\"button-text\">Search For Duplicates</span>\n </button>\n }\n @if(addToListMode){\n <button (click)=\"enableCheckbox(false, 'addToList')\" [disabled]=\"addToListMode && recordsToCompare.length === 0\" kendoButton>\n <span class=\"fa-solid fa-list-check\"></span>\n <span class=\"button-text\">Add To List</span>\n </button>\n }\n @if(compareMode){\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" [disabled]=\"compareMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-code-compare\"></span>\n <span class=\"button-text\">Compare</span>\n </button>\n }\n @if(mergeMode){\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" kendoButton>\n <span class=\"fa-solid fa-code-merge\"></span>\n <span class=\"button-text\">Merge</span>\n </button>\n }\n @if(anyModeEnabled){\n <button (click)=\"enableCheckbox(true, '')\" kendoButton>\n <span class=\"fa-solid fa-xmark\"></span>\n <span class=\"button-text\">Cancel</span>\n </button>\n }\n </ng-template>\n \n <kendo-grid-checkbox-column \n *ngIf=\"anyModeEnabled\" \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 \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>\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=\"mergeMode\" kendoButton themeColor=\"primary\" type=\"button\" (click)=\"closeCompareDialog('merge')\">\n Merge Records\n </button>\n <button *ngIf=\"duplicateMode\" kendoButton themeColor=\"primary\" type=\"button\" (click)=\"findDuplicateRecords()\">\n Search for Duplicates\n </button>\n <button *ngIf=\"compareMode\" kendoButton type=\"button\" (click)=\"closeCompareDialog('close')\">\n Close\n </button>\n <button *ngIf=\"mergeMode || duplicateMode\" kendoButton type=\"button\" (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 <kendo-dialog\n class=\"dialog-wrapper\"\n title=\"Select List(s) To Add Record(s) To\"\n *ngIf=\"showAddToListDialog\"\n (close)=\"toggleAddToListDialog(false)\"\n [minHeight]=\"500\"\n [maxHeight]=\"500\"\n [minWidth]=\"500\"\n [maxWidth]=\"650\"\n >\n <div class=\"search-header\">\n <kendo-textbox\n id=\"listSearch\"\n placeholder=\"Search Lists...\"\n kendoTextBox\n (valueChange)=\"onSearch($event)\"\n [clearButton]=\"true\"\n class=\"search-bar\"\n ></kendo-textbox>\n </div>\n <hr>\n <div class=\"overflow-y-scroll\">\n @if(showAddToListLoader){\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n }\n @else {\n @for(listEntity of listEntities; track listEntity){\n <div class=\"list-item\">\n <div class=\"list-text\" [ngClass]=\"{'list-selected': selectedListEntities.includes(listEntity)}\">\n {{listEntity.Name}}\n </div>\n @if(selectedListEntities.includes(listEntity)){\n <button kendoButton class=\"btn-no-border btn-selected\" (click)=\"removeFromList(listEntity)\">\n <span class=\"fa-solid fa-minus\"></span>\n Remove\n </button>\n }\n @else {\n <button kendoButton class=\"btn-no-border\" (click)=\"addToList(listEntity)\">\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\n\n <kendo-dialog-actions>\n <button kendoButton (click)=\"addRecordsToSelectedLists()\" [disabled]=\"showAddToListLoader\" themeColor=\"primary\">\n Save\n </button>\n <button kendoButton (click)=\"toggleAddToListDialog(false)\" [disabled]=\"showAddToListLoader\">\n Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n\n <!-- Entity Form Dialog Component here for future use as needed -->\n <mj-entity-form-dialog\n #entityFormDialog\n Mode=\"complete\"\n [Visible]=\"showNewRecordDialog\"\n ></mj-entity-form-dialog>\n\n <mj-entity-communications-preview-window \n #templatePreviewDialog\n [DialogVisible]=\"showTemplatePreviewDialog\"\n (DialogClosed)=\"showTemplatePreviewDialog = false\"\n [entityInfo]=\"_entityInfo\"\n [runViewParams]=\"Params\"\n >\n </mj-entity-communications-preview-window> \n\n }\n</div>\n", styles: ["/* Grid container - match form cards */\n.user-view-grid-wrap {\n background: white;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n position: relative;\n}\n\n/* Loading container - contained within grid space (initial load) */\n.grid-loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 300px;\n padding: 40px;\n}\n\n/* Loading overlay - shown on top of grid during refresh */\n.grid-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n backdrop-filter: blur(2px);\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\n.title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n}\n\n.main-fav-wrapper {\n background: #fff;\n padding: 20px;\n}\n\n.filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\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\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.k-table-td {\n border-right: none !important;\n}\n\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\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px;\n padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n\n/* Toolbar modernization - match form toolbar style */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n/* Toolbar buttons - match form toolbar style */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button {\n padding: 8px 14px !important;\n font-size: 14px !important;\n border: 1px solid #d1d5db !important;\n background: white !important;\n color: #374151 !important;\n border-radius: 6px !important;\n display: inline-flex !important;\n align-items: center !important;\n gap: 8px !important;\n font-weight: 500 !important;\n transition: all 0.2s ease !important;\n}\n\n/* Hide button text labels on toolbar buttons to save space, rely on icons + tooltips */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button .button-text {\n display: none !important;\n}\n\n/* Icon-only buttons need less horizontal padding */\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button span[class*=\"fa-\"] {\n font-size: 16px !important;\n}\n\n::ng-deep .user-view-grid-wrap .k-grid-toolbar button:hover {\n background: #f9fafb !important;\n border-color: #9ca3af !important;\n}\n\n/* Header styling */\n::ng-deep .user-view-grid-wrap .k-grid-header {\n background: #f9fafb !important;\n border-bottom: 2px solid #e5e7eb !important;\n}\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: #374151 !important;\n font-weight: 600 !important;\n font-size: 13px !important;\n padding: 12px 16px !important;\n}\n\n/* Row styling */\n::ng-deep .user-view-grid-wrap .k-grid tbody tr {\n border-bottom: 1px solid #f3f4f6 !important;\n transition: background-color 0.15s ease;\n}\n\n::ng-deep .user-view-grid-wrap .k-grid tbody tr:hover {\n background: #f9fafb !important;\n}\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: #1f2937 !important;\n font-weight: 500;\n border-bottom-width: 1px;\n font-size: 14px !important;\n padding: 12px 16px !important;\n}\n\n/* Footer styling */\n::ng-deep .user-view-grid-wrap .k-grid-footer {\n background: #f9fafb !important;\n border-top: 2px solid #e5e7eb !important;\n padding: 12px 16px !important;\n font-size: 13px !important;\n color: #6b7280 !important;\n}\n\n/* Selection checkbox column */\n::ng-deep .user-view-grid-wrap .k-grid .k-checkbox-column {\n background: #fafbfc !important;\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\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}"] }]
|
|
1741
|
+
}], () => [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.NavigationService }, { type: i0.Renderer2 }], { Params: [{
|
|
1742
|
+
type: Input
|
|
1743
|
+
}], AutoRefreshOnParamsChange: [{
|
|
1714
1744
|
type: Input
|
|
1715
1745
|
}], BottomMargin: [{
|
|
1716
1746
|
type: Input
|
|
@@ -1767,5 +1797,5 @@ export class UserViewGridComponent {
|
|
|
1767
1797
|
type: ViewChild,
|
|
1768
1798
|
args: ['entityFormDialog']
|
|
1769
1799
|
}] }); })();
|
|
1770
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserViewGridComponent, { className: "UserViewGridComponent", filePath: "src/lib/ng-user-view-grid.component.ts", lineNumber:
|
|
1800
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserViewGridComponent, { className: "UserViewGridComponent", filePath: "src/lib/ng-user-view-grid.component.ts", lineNumber: 53 }); })();
|
|
1771
1801
|
//# sourceMappingURL=ng-user-view-grid.component.js.map
|