@memberjunction/ng-user-view-grid 1.2.1 → 1.3.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.
@@ -1,7 +1,7 @@
1
1
  import { ElementRef, EventEmitter, OnInit, AfterViewInit, Renderer2 } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { Router } from '@angular/router';
4
- import { BaseEntity, RunViewParams, EntityFieldInfo, EntityInfo, PrimaryKeyValue } from '@memberjunction/core';
4
+ import { BaseEntity, RunViewParams, EntityFieldInfo, EntityInfo, CompositeKey } from '@memberjunction/core';
5
5
  import { ViewColumnInfo, UserViewEntityExtended } from '@memberjunction/core-entities';
6
6
  import { CellClickEvent, GridDataResult, PageChangeEvent, GridComponent, CellCloseEvent, ColumnReorderEvent, ColumnResizeArgs, SelectionEvent, SelectableSettings } from "@progress/kendo-angular-grid";
7
7
  import { ExcelExportComponent } from '@progress/kendo-angular-excel-export';
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  export type GridRowClickedEvent = {
12
12
  entityId: number;
13
13
  entityName: string;
14
- primaryKeyValues: PrimaryKeyValue[];
14
+ CompositeKey: CompositeKey;
15
15
  };
16
16
  export type GridRowEditedEvent = {
17
17
  record: BaseEntity;
@@ -92,7 +92,6 @@ export declare class UserViewGridComponent implements OnInit, AfterViewInit {
92
92
  columnResize(args: ColumnResizeArgs[]): Promise<void>;
93
93
  sortChanged(sort: any): Promise<void>;
94
94
  cellClickHandler(args: CellClickEvent): Promise<void>;
95
- GeneratePrimaryKeyValueString(pkVals: PrimaryKeyValue[]): string;
96
95
  createFormGroup(dataItem: any): FormGroup;
97
96
  getEditor(ef: EntityFieldInfo): "boolean" | "text" | "numeric" | "date";
98
97
  cellCloseHandler(args: CellCloseEvent): Promise<void>;
@@ -117,7 +116,7 @@ export declare class UserViewGridComponent implements OnInit, AfterViewInit {
117
116
  enableCheckbox(cancel: boolean | undefined, type: 'merge' | 'compare' | 'duplicate' | ''): void;
118
117
  closeConfirmMergeDialog(event: 'cancel' | 'yes' | 'no'): Promise<void>;
119
118
  closeCompareDialog(event: 'close' | 'cancel' | 'merge' | 'duplicate'): Promise<void>;
120
- fimdDuplicateRecords(): Promise<void>;
119
+ findDuplicateRecords(): Promise<void>;
121
120
  exportColumns: ViewColumnInfo[];
122
121
  exportData: any[];
123
122
  doExcelExport(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ng-user-view-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-user-view-grid.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-user-view-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-user-view-grid.component.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Component, ViewChild, ElementRef, Output, EventEmitter, Input } from '@angular/core';
11
- import { Metadata, RunView, EntityFieldTSType, LogError, ComparePrimaryKeys, PotentialDuplicateRequest } from '@memberjunction/core';
11
+ import { Metadata, RunView, EntityFieldTSType, LogError, CompositeKey, PotentialDuplicateRequest } from '@memberjunction/core';
12
12
  import { ViewInfo } from '@memberjunction/core-entities';
13
13
  import { GridComponent } from "@progress/kendo-angular-grid";
14
14
  import { Keys } from '@progress/kendo-angular-common';
@@ -26,206 +26,246 @@ import * as i6 from "@progress/kendo-angular-excel-export";
26
26
  import * as i7 from "@progress/kendo-angular-buttons";
27
27
  import * as i8 from "@memberjunction/ng-compare-records";
28
28
  import * as i9 from "@memberjunction/ng-container-directives";
29
- import * as i10 from "@progress/kendo-angular-inputs";
30
29
  const _c0 = ["kendoGrid"];
31
30
  const _c1 = ["excelExport"];
32
31
  const _c2 = ["recordCompareRef"];
33
32
  const _c3 = ["analysisQuestion"];
34
33
  const _c4 = ["analysisResults"];
35
34
  const _c5 = ["compareDialogContainer"];
36
- function UserViewGridComponent_ng_template_13_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelement(0, "span", 23);
38
- } }
39
- function UserViewGridComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
40
- const _r19 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "button", 24);
42
- i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.doExcelExport()); });
43
- i0.ɵɵelement(1, "span", 25);
35
+ function UserViewGridComponent_ng_template_3_button_0_Template(rf, ctx) { if (rf & 1) {
36
+ const _r18 = i0.ɵɵgetCurrentView();
37
+ i0.ɵɵelementStart(0, "button", 16);
38
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r17.doExcelExport()); });
39
+ i0.ɵɵelement(1, "span", 17);
44
40
  i0.ɵɵtext(2, " Export to Excel ");
45
41
  i0.ɵɵelementEnd();
46
42
  } }
47
- function UserViewGridComponent_button_16_Template(rf, ctx) { if (rf & 1) {
48
- const _r21 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "button", 26);
50
- i0.ɵɵlistener("click", function UserViewGridComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.enableCheckbox(false, "duplicate")); });
43
+ function UserViewGridComponent_ng_template_3_button_1_Template(rf, ctx) { if (rf & 1) {
44
+ const _r20 = i0.ɵɵgetCurrentView();
45
+ i0.ɵɵelementStart(0, "button", 18);
46
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r19.enableCheckbox(false, "duplicate")); });
51
47
  i0.ɵɵtext(1, " Search For Duplicates ");
52
48
  i0.ɵɵelementEnd();
53
49
  } if (rf & 2) {
54
- const ctx_r3 = i0.ɵɵnextContext();
55
- i0.ɵɵproperty("disabled", ctx_r3.duplicateMode && ctx_r3.recordsToCompare.length < 2);
50
+ const ctx_r9 = i0.ɵɵnextContext(2);
51
+ i0.ɵɵproperty("disabled", ctx_r9.duplicateMode && ctx_r9.recordsToCompare.length < 2);
56
52
  } }
57
- function UserViewGridComponent_button_17_Template(rf, ctx) { if (rf & 1) {
58
- const _r23 = i0.ɵɵgetCurrentView();
59
- i0.ɵɵelementStart(0, "button", 26);
60
- i0.ɵɵlistener("click", function UserViewGridComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.enableCheckbox(false, "duplicate")); });
53
+ function UserViewGridComponent_ng_template_3_button_2_Template(rf, ctx) { if (rf & 1) {
54
+ const _r22 = i0.ɵɵgetCurrentView();
55
+ i0.ɵɵelementStart(0, "button", 18);
56
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.enableCheckbox(false, "duplicate")); });
61
57
  i0.ɵɵtext(1, " Search For Duplicates ");
62
58
  i0.ɵɵelementEnd();
63
59
  } if (rf & 2) {
64
- const ctx_r4 = i0.ɵɵnextContext();
65
- i0.ɵɵproperty("disabled", ctx_r4.duplicateMode && ctx_r4.recordsToCompare.length < 2);
60
+ const ctx_r10 = i0.ɵɵnextContext(2);
61
+ i0.ɵɵproperty("disabled", ctx_r10.duplicateMode && ctx_r10.recordsToCompare.length < 2);
66
62
  } }
67
- function UserViewGridComponent_button_18_Template(rf, ctx) { if (rf & 1) {
68
- const _r25 = i0.ɵɵgetCurrentView();
69
- i0.ɵɵelementStart(0, "button", 26);
70
- i0.ɵɵlistener("click", function UserViewGridComponent_button_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r24.enableCheckbox(false, "compare")); });
63
+ function UserViewGridComponent_ng_template_3_button_3_Template(rf, ctx) { if (rf & 1) {
64
+ const _r24 = i0.ɵɵgetCurrentView();
65
+ i0.ɵɵelementStart(0, "button", 19);
66
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.enableMergeOrCompare(false, "compare")); });
71
67
  i0.ɵɵtext(1, "Compare");
72
68
  i0.ɵɵelementEnd();
73
69
  } if (rf & 2) {
74
- const ctx_r5 = i0.ɵɵnextContext();
75
- i0.ɵɵproperty("disabled", ctx_r5.compareMode && ctx_r5.recordsToCompare.length < 2);
70
+ const ctx_r11 = i0.ɵɵnextContext(2);
71
+ i0.ɵɵproperty("disabled", ctx_r11.compareMode && ctx_r11.recordsToCompare.length < 2);
76
72
  } }
77
- function UserViewGridComponent_button_19_Template(rf, ctx) { if (rf & 1) {
78
- const _r27 = i0.ɵɵgetCurrentView();
79
- i0.ɵɵelementStart(0, "button", 26);
80
- i0.ɵɵlistener("click", function UserViewGridComponent_button_19_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const ctx_r26 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r26.enableCheckbox(false, "compare")); });
73
+ function UserViewGridComponent_ng_template_3_button_4_Template(rf, ctx) { if (rf & 1) {
74
+ const _r26 = i0.ɵɵgetCurrentView();
75
+ i0.ɵɵelementStart(0, "button", 19);
76
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.enableMergeOrCompare(false, "compare")); });
81
77
  i0.ɵɵtext(1, "Compare");
82
78
  i0.ɵɵelementEnd();
83
79
  } if (rf & 2) {
84
- const ctx_r6 = i0.ɵɵnextContext();
85
- i0.ɵɵproperty("disabled", ctx_r6.compareMode && ctx_r6.recordsToCompare.length < 2);
80
+ const ctx_r12 = i0.ɵɵnextContext(2);
81
+ i0.ɵɵproperty("disabled", ctx_r12.compareMode && ctx_r12.recordsToCompare.length < 2);
86
82
  } }
87
- function UserViewGridComponent_button_20_Template(rf, ctx) { if (rf & 1) {
88
- const _r29 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "button", 26);
90
- i0.ɵɵlistener("click", function UserViewGridComponent_button_20_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.enableCheckbox(false, "merge")); });
83
+ function UserViewGridComponent_ng_template_3_button_5_Template(rf, ctx) { if (rf & 1) {
84
+ const _r28 = i0.ɵɵgetCurrentView();
85
+ i0.ɵɵelementStart(0, "button", 19);
86
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r27.enableMergeOrCompare(false, "merge")); });
91
87
  i0.ɵɵtext(1, "Merge");
92
88
  i0.ɵɵelementEnd();
93
89
  } if (rf & 2) {
94
- const ctx_r7 = i0.ɵɵnextContext();
95
- i0.ɵɵproperty("disabled", ctx_r7.mergeMode && ctx_r7.recordsToCompare.length < 2);
90
+ const ctx_r13 = i0.ɵɵnextContext(2);
91
+ i0.ɵɵproperty("disabled", ctx_r13.mergeMode && ctx_r13.recordsToCompare.length < 2);
96
92
  } }
97
- function UserViewGridComponent_button_21_Template(rf, ctx) { if (rf & 1) {
98
- const _r31 = i0.ɵɵgetCurrentView();
99
- i0.ɵɵelementStart(0, "button", 26);
100
- i0.ɵɵlistener("click", function UserViewGridComponent_button_21_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.enableCheckbox(false, "merge")); });
93
+ function UserViewGridComponent_ng_template_3_button_6_Template(rf, ctx) { if (rf & 1) {
94
+ const _r30 = i0.ɵɵgetCurrentView();
95
+ i0.ɵɵelementStart(0, "button", 19);
96
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r29.enableMergeOrCompare(false, "merge")); });
101
97
  i0.ɵɵtext(1, "Merge");
102
98
  i0.ɵɵelementEnd();
103
99
  } if (rf & 2) {
104
- const ctx_r8 = i0.ɵɵnextContext();
105
- i0.ɵɵproperty("disabled", ctx_r8.mergeMode && ctx_r8.recordsToCompare.length < 2);
100
+ const ctx_r14 = i0.ɵɵnextContext(2);
101
+ i0.ɵɵproperty("disabled", ctx_r14.mergeMode && ctx_r14.recordsToCompare.length < 2);
106
102
  } }
107
- function UserViewGridComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
108
- const _r33 = i0.ɵɵgetCurrentView();
109
- i0.ɵɵelementStart(0, "button", 24);
110
- i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.enableCheckbox(true, "")); });
103
+ function UserViewGridComponent_ng_template_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
104
+ const _r32 = i0.ɵɵgetCurrentView();
105
+ i0.ɵɵelementStart(0, "button", 20);
106
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r31.enableCheckbox(true, "")); });
111
107
  i0.ɵɵtext(1, " Cancel ");
112
108
  i0.ɵɵelementEnd();
113
109
  } }
114
- function UserViewGridComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
115
- const _r35 = i0.ɵɵgetCurrentView();
116
- i0.ɵɵelementStart(0, "button", 27);
117
- i0.ɵɵlistener("click", function UserViewGridComponent_Conditional_23_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.RefreshFromSavedParams()); });
118
- i0.ɵɵelement(1, "span", 28);
110
+ function UserViewGridComponent_ng_template_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
111
+ const _r34 = i0.ɵɵgetCurrentView();
112
+ i0.ɵɵelementStart(0, "button", 21);
113
+ i0.ɵɵlistener("click", function UserViewGridComponent_ng_template_3_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r33.RefreshFromSavedParams()); });
114
+ i0.ɵɵelement(1, "span", 22);
119
115
  i0.ɵɵtext(2, " Refresh ");
120
116
  i0.ɵɵelementEnd();
121
117
  } }
118
+ function UserViewGridComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
119
+ i0.ɵɵtemplate(0, UserViewGridComponent_ng_template_3_button_0_Template, 3, 0, "button", 11)(1, UserViewGridComponent_ng_template_3_button_1_Template, 2, 1, "button", 12)(2, UserViewGridComponent_ng_template_3_button_2_Template, 2, 1, "button", 12)(3, UserViewGridComponent_ng_template_3_button_3_Template, 2, 1, "button", 13)(4, UserViewGridComponent_ng_template_3_button_4_Template, 2, 1, "button", 13)(5, UserViewGridComponent_ng_template_3_button_5_Template, 2, 1, "button", 13)(6, UserViewGridComponent_ng_template_3_button_6_Template, 2, 1, "button", 13)(7, UserViewGridComponent_ng_template_3_Conditional_7_Template, 2, 0, "button", 14)(8, UserViewGridComponent_ng_template_3_Conditional_8_Template, 3, 0, "button", 15);
120
+ } if (rf & 2) {
121
+ const ctx_r1 = i0.ɵɵnextContext();
122
+ i0.ɵɵproperty("ngIf", !ctx_r1.compareMode && !ctx_r1.mergeMode);
123
+ i0.ɵɵadvance();
124
+ i0.ɵɵproperty("ngIf", !ctx_r1.compareMode && !ctx_r1.mergeMode && !ctx_r1.duplicateMode);
125
+ i0.ɵɵadvance();
126
+ i0.ɵɵproperty("ngIf", ctx_r1.duplicateMode);
127
+ i0.ɵɵadvance();
128
+ i0.ɵɵproperty("ngIf", !ctx_r1.compareMode && !ctx_r1.mergeMode && !ctx_r1.duplicateMode);
129
+ i0.ɵɵadvance();
130
+ i0.ɵɵproperty("ngIf", ctx_r1.compareMode);
131
+ i0.ɵɵadvance();
132
+ i0.ɵɵproperty("ngIf", !ctx_r1.mergeMode && !ctx_r1.compareMode && !ctx_r1.duplicateMode);
133
+ i0.ɵɵadvance();
134
+ i0.ɵɵproperty("ngIf", ctx_r1.mergeMode);
135
+ i0.ɵɵadvance();
136
+ i0.ɵɵconditional(7, ctx_r1.compareMode || ctx_r1.mergeMode || ctx_r1.duplicateMode ? 7 : -1);
137
+ i0.ɵɵadvance();
138
+ i0.ɵɵconditional(8, ctx_r1.showRefreshButton && !ctx_r1.compareMode && !ctx_r1.mergeMode && !ctx_r1.duplicateMode ? 8 : -1);
139
+ } }
122
140
  const _c6 = () => ({ "text-align": "center", "vertical-align": "center" });
123
141
  const _c7 = () => ({ "font-weight": "bold", "background-color": "white" });
124
- function UserViewGridComponent_kendo_grid_checkbox_column_26_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵelement(0, "kendo-grid-checkbox-column", 29);
142
+ function UserViewGridComponent_kendo_grid_checkbox_column_4_Template(rf, ctx) { if (rf & 1) {
143
+ i0.ɵɵelement(0, "kendo-grid-checkbox-column", 23);
126
144
  } if (rf & 2) {
127
145
  i0.ɵɵstyleMap(i0.ɵɵpureFunction0(4, _c6));
128
146
  i0.ɵɵproperty("width", 50)("headerStyle", i0.ɵɵpureFunction0(5, _c7));
129
147
  } }
130
- function UserViewGridComponent_kendo_grid_column_27_Template(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵelement(0, "kendo-grid-column", 30);
148
+ function UserViewGridComponent_kendo_grid_column_5_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
149
+ i0.ɵɵtext(0);
150
+ i0.ɵɵpipe(1, "number");
151
+ i0.ɵɵpipe(2, "number");
152
+ i0.ɵɵelement(3, "br");
153
+ i0.ɵɵelementStart(4, "span", 26);
154
+ i0.ɵɵtext(5);
155
+ i0.ɵɵpipe(6, "number");
156
+ i0.ɵɵelementEnd();
132
157
  } if (rf & 2) {
133
- const item_r36 = ctx.$implicit;
134
- const ctx_r13 = i0.ɵɵnextContext();
135
- i0.ɵɵstyleMap(ctx_r13.GetColumnCellStyle(item_r36));
136
- i0.ɵɵproperty("field", item_r36.Name)("title", ctx_r13.GetColumnTitle(item_r36))("width", item_r36.width ? item_r36.width : 100)("editable", item_r36.EntityField.AllowUpdateAPI)("editor", ctx_r13.getEditor(item_r36.EntityField))("headerStyle", i0.ɵɵpureFunction0(8, _c7));
158
+ const ctx_r37 = i0.ɵɵnextContext(3);
159
+ i0.ɵɵtextInterpolate2(" ", i0.ɵɵpipeBind1(1, 3, ctx_r37.viewData.length), "", ctx_r37.totalRowCount > ctx_r37.viewData.length ? " of " + i0.ɵɵpipeBind1(2, 5, ctx_r37.totalRowCount) : " rows", "");
160
+ i0.ɵɵadvance(5);
161
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(6, 7, ctx_r37.viewExecutionTime, "1.2-2"), " seconds");
162
+ } }
163
+ function UserViewGridComponent_kendo_grid_column_5_1_Template(rf, ctx) { if (rf & 1) {
164
+ i0.ɵɵtemplate(0, UserViewGridComponent_kendo_grid_column_5_1_ng_template_0_Template, 7, 10, "ng-template", 25);
137
165
  } }
138
- function UserViewGridComponent_kendo_excelexport_column_30_Template(rf, ctx) { if (rf & 1) {
139
- i0.ɵɵelement(0, "kendo-excelexport-column", 31);
166
+ function UserViewGridComponent_kendo_grid_column_5_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "kendo-grid-column", 24);
168
+ i0.ɵɵtemplate(1, UserViewGridComponent_kendo_grid_column_5_1_Template, 1, 0, null, 10);
169
+ i0.ɵɵelementEnd();
140
170
  } if (rf & 2) {
141
- const exportCol_r37 = ctx.$implicit;
142
- i0.ɵɵproperty("field", exportCol_r37.Name)("title", exportCol_r37.Name);
171
+ const item_r35 = ctx.$implicit;
172
+ const ctx_r3 = i0.ɵɵnextContext();
173
+ i0.ɵɵstyleMap(ctx_r3.GetColumnCellStyle(item_r35));
174
+ i0.ɵɵproperty("field", item_r35.Name)("title", ctx_r3.GetColumnTitle(item_r35))("width", item_r35.width ? item_r35.width : 100)("editable", item_r35.EntityField.AllowUpdateAPI)("editor", ctx_r3.getEditor(item_r35.EntityField))("headerStyle", i0.ɵɵpureFunction0(9, _c7));
175
+ i0.ɵɵadvance();
176
+ i0.ɵɵproperty("ngIf", item_r35 === ctx_r3.visibleColumns[0]);
143
177
  } }
144
- function UserViewGridComponent_div_33_kendo_window_2_button_5_Template(rf, ctx) { if (rf & 1) {
145
- const _r46 = i0.ɵɵgetCurrentView();
146
- i0.ɵɵelementStart(0, "button", 42);
147
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const ctx_r45 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r45.closeCompareDialog("merge")); });
178
+ function UserViewGridComponent_kendo_excelexport_column_8_Template(rf, ctx) { if (rf & 1) {
179
+ i0.ɵɵelement(0, "kendo-excelexport-column", 27);
180
+ } if (rf & 2) {
181
+ const exportCol_r38 = ctx.$implicit;
182
+ i0.ɵɵproperty("field", exportCol_r38.Name)("title", exportCol_r38.Name);
183
+ } }
184
+ function UserViewGridComponent_div_11_kendo_window_2_button_5_Template(rf, ctx) { if (rf & 1) {
185
+ const _r47 = i0.ɵɵgetCurrentView();
186
+ i0.ɵɵelementStart(0, "button", 38);
187
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r46.closeCompareDialog("merge")); });
148
188
  i0.ɵɵtext(1, " Merge Records ");
149
189
  i0.ɵɵelementEnd();
150
190
  } }
151
- function UserViewGridComponent_div_33_kendo_window_2_button_6_Template(rf, ctx) { if (rf & 1) {
152
- const _r48 = i0.ɵɵgetCurrentView();
153
- i0.ɵɵelementStart(0, "button", 42);
154
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const ctx_r47 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r47.fimdDuplicateRecords()); });
191
+ function UserViewGridComponent_div_11_kendo_window_2_button_6_Template(rf, ctx) { if (rf & 1) {
192
+ const _r49 = i0.ɵɵgetCurrentView();
193
+ i0.ɵɵelementStart(0, "button", 38);
194
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r48 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r48.findDuplicateRecords()); });
155
195
  i0.ɵɵtext(1, " Search for Duplicates ");
156
196
  i0.ɵɵelementEnd();
157
197
  } }
158
- function UserViewGridComponent_div_33_kendo_window_2_button_7_Template(rf, ctx) { if (rf & 1) {
159
- const _r50 = i0.ɵɵgetCurrentView();
160
- i0.ɵɵelementStart(0, "button", 43);
161
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r49 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r49.closeCompareDialog("close")); });
198
+ function UserViewGridComponent_div_11_kendo_window_2_button_7_Template(rf, ctx) { if (rf & 1) {
199
+ const _r51 = i0.ɵɵgetCurrentView();
200
+ i0.ɵɵelementStart(0, "button", 39);
201
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r50.closeCompareDialog("close")); });
162
202
  i0.ɵɵtext(1, " Close ");
163
203
  i0.ɵɵelementEnd();
164
204
  } }
165
- function UserViewGridComponent_div_33_kendo_window_2_button_8_Template(rf, ctx) { if (rf & 1) {
166
- const _r52 = i0.ɵɵgetCurrentView();
167
- i0.ɵɵelementStart(0, "button", 43);
168
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.closeCompareDialog("cancel")); });
205
+ function UserViewGridComponent_div_11_kendo_window_2_button_8_Template(rf, ctx) { if (rf & 1) {
206
+ const _r53 = i0.ɵɵgetCurrentView();
207
+ i0.ɵɵelementStart(0, "button", 39);
208
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r52.closeCompareDialog("cancel")); });
169
209
  i0.ɵɵtext(1, " Cancel ");
170
210
  i0.ɵɵelementEnd();
171
211
  } }
172
- function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template(rf, ctx) { if (rf & 1) {
173
- const _r54 = i0.ɵɵgetCurrentView();
174
- i0.ɵɵelementStart(0, "kendo-dialog", 44);
175
- i0.ɵɵlistener("close", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r53 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r53.closeConfirmMergeDialog("cancel")); });
176
- i0.ɵɵelementStart(1, "p", 45);
212
+ function UserViewGridComponent_div_11_kendo_window_2_kendo_dialog_9_Template(rf, ctx) { if (rf & 1) {
213
+ const _r55 = i0.ɵɵgetCurrentView();
214
+ i0.ɵɵelementStart(0, "kendo-dialog", 40);
215
+ i0.ɵɵlistener("close", function UserViewGridComponent_div_11_kendo_window_2_kendo_dialog_9_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r54.closeConfirmMergeDialog("cancel")); });
216
+ i0.ɵɵelementStart(1, "p", 41);
177
217
  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. ");
178
218
  i0.ɵɵelementEnd();
179
- i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 43);
180
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r54); const ctx_r55 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r55.closeConfirmMergeDialog("no")); });
219
+ i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 16);
220
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_kendo_dialog_9_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r55); const ctx_r56 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r56.closeConfirmMergeDialog("no")); });
181
221
  i0.ɵɵtext(5, "No");
182
222
  i0.ɵɵelementEnd();
183
- i0.ɵɵelementStart(6, "button", 46);
184
- i0.ɵɵlistener("click", function UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r54); const ctx_r56 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r56.closeConfirmMergeDialog("yes")); });
223
+ i0.ɵɵelementStart(6, "button", 42);
224
+ i0.ɵɵlistener("click", function UserViewGridComponent_div_11_kendo_window_2_kendo_dialog_9_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r55); const ctx_r57 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r57.closeConfirmMergeDialog("yes")); });
185
225
  i0.ɵɵtext(7, " Yes ");
186
226
  i0.ɵɵelementEnd()()();
187
227
  } if (rf & 2) {
188
228
  i0.ɵɵproperty("minWidth", 250)("width", 450);
189
229
  } }
190
- function UserViewGridComponent_div_33_kendo_window_2_Template(rf, ctx) { if (rf & 1) {
191
- const _r58 = i0.ɵɵgetCurrentView();
192
- i0.ɵɵelementStart(0, "kendo-window", 34);
193
- i0.ɵɵlistener("close", function UserViewGridComponent_div_33_kendo_window_2_Template_kendo_window_close_0_listener($event) { i0.ɵɵrestoreView(_r58); const ctx_r57 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r57.closeCompareDialog($event)); });
194
- i0.ɵɵelementStart(1, "div", 35);
195
- i0.ɵɵelement(2, "mj-compare-records", 36, 37);
230
+ function UserViewGridComponent_div_11_kendo_window_2_Template(rf, ctx) { if (rf & 1) {
231
+ const _r59 = i0.ɵɵgetCurrentView();
232
+ i0.ɵɵelementStart(0, "kendo-window", 30);
233
+ i0.ɵɵlistener("close", function UserViewGridComponent_div_11_kendo_window_2_Template_kendo_window_close_0_listener($event) { i0.ɵɵrestoreView(_r59); const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.closeCompareDialog($event)); });
234
+ i0.ɵɵelementStart(1, "div", 31);
235
+ i0.ɵɵelement(2, "mj-compare-records", 32, 33);
196
236
  i0.ɵɵelementEnd();
197
- i0.ɵɵelementStart(4, "div", 38);
198
- i0.ɵɵtemplate(5, UserViewGridComponent_div_33_kendo_window_2_button_5_Template, 2, 0, "button", 39)(6, UserViewGridComponent_div_33_kendo_window_2_button_6_Template, 2, 0, "button", 39)(7, UserViewGridComponent_div_33_kendo_window_2_button_7_Template, 2, 0, "button", 40)(8, UserViewGridComponent_div_33_kendo_window_2_button_8_Template, 2, 0, "button", 40);
237
+ i0.ɵɵelementStart(4, "div", 34);
238
+ i0.ɵɵtemplate(5, UserViewGridComponent_div_11_kendo_window_2_button_5_Template, 2, 0, "button", 35)(6, UserViewGridComponent_div_11_kendo_window_2_button_6_Template, 2, 0, "button", 35)(7, UserViewGridComponent_div_11_kendo_window_2_button_7_Template, 2, 0, "button", 36)(8, UserViewGridComponent_div_11_kendo_window_2_button_8_Template, 2, 0, "button", 36);
199
239
  i0.ɵɵelementEnd();
200
- i0.ɵɵtemplate(9, UserViewGridComponent_div_33_kendo_window_2_kendo_dialog_9_Template, 8, 2, "kendo-dialog", 41);
240
+ i0.ɵɵtemplate(9, UserViewGridComponent_div_11_kendo_window_2_kendo_dialog_9_Template, 8, 2, "kendo-dialog", 37);
201
241
  i0.ɵɵelementEnd();
202
242
  } if (rf & 2) {
203
- const ctx_r38 = i0.ɵɵnextContext(2);
243
+ const ctx_r39 = i0.ɵɵnextContext(2);
204
244
  i0.ɵɵproperty("minHeight", 300)("minWidth", 800)("top", 100)("left", 100)("width", 1200)("height", 675)("resizable", true);
205
245
  i0.ɵɵadvance();
206
246
  i0.ɵɵproperty("fillHeight", true)("bottomMargin", 100);
207
247
  i0.ɵɵadvance();
208
- i0.ɵɵproperty("entityName", ctx_r38._entityInfo ? ctx_r38._entityInfo.Name : "")("recordsToCompare", ctx_r38.recordsToCompare)("visibleColumns", ctx_r38.visibleColumns)("selectionMode", ctx_r38.mergeMode ? true : false);
248
+ i0.ɵɵproperty("entityName", ctx_r39._entityInfo ? ctx_r39._entityInfo.Name : "")("recordsToCompare", ctx_r39.recordsToCompare)("visibleColumns", ctx_r39.visibleColumns)("selectionMode", ctx_r39.mergeMode ? true : false);
209
249
  i0.ɵɵadvance(3);
210
- i0.ɵɵproperty("ngIf", ctx_r38.mergeMode);
250
+ i0.ɵɵproperty("ngIf", ctx_r39.mergeMode);
211
251
  i0.ɵɵadvance();
212
- i0.ɵɵproperty("ngIf", ctx_r38.duplicateMode);
252
+ i0.ɵɵproperty("ngIf", ctx_r39.duplicateMode);
213
253
  i0.ɵɵadvance();
214
- i0.ɵɵproperty("ngIf", ctx_r38.compareMode);
254
+ i0.ɵɵproperty("ngIf", ctx_r39.compareMode);
215
255
  i0.ɵɵadvance();
216
- i0.ɵɵproperty("ngIf", ctx_r38.mergeMode || ctx_r38.duplicateMode);
256
+ i0.ɵɵproperty("ngIf", ctx_r39.mergeMode || ctx_r39.duplicateMode);
217
257
  i0.ɵɵadvance();
218
- i0.ɵɵproperty("ngIf", ctx_r38.isConfirmDialogOpen);
258
+ i0.ɵɵproperty("ngIf", ctx_r39.isConfirmDialogOpen);
219
259
  } }
220
- function UserViewGridComponent_div_33_Template(rf, ctx) { if (rf & 1) {
260
+ function UserViewGridComponent_div_11_Template(rf, ctx) { if (rf & 1) {
221
261
  i0.ɵɵelementStart(0, "div");
222
- i0.ɵɵelement(1, "div", 32);
223
- i0.ɵɵtemplate(2, UserViewGridComponent_div_33_kendo_window_2_Template, 10, 18, "kendo-window", 33);
262
+ i0.ɵɵelement(1, "div", 28);
263
+ i0.ɵɵtemplate(2, UserViewGridComponent_div_11_kendo_window_2_Template, 10, 18, "kendo-window", 29);
224
264
  i0.ɵɵelementEnd();
225
265
  } if (rf & 2) {
226
- const ctx_r17 = i0.ɵɵnextContext();
266
+ const ctx_r7 = i0.ɵɵnextContext();
227
267
  i0.ɵɵadvance(2);
228
- i0.ɵɵproperty("ngIf", ctx_r17.isCompareDialogOpened);
268
+ i0.ɵɵproperty("ngIf", ctx_r7.isCompareDialogOpened);
229
269
  } }
230
270
  export class UserViewGridComponent {
231
271
  get PendingRecords() {
@@ -523,14 +563,12 @@ export class UserViewGridComponent {
523
563
  if (this.compareMode || this.mergeMode)
524
564
  return;
525
565
  if (this._entityInfo) {
526
- const pkeyVals = [];
527
- this._entityInfo.PrimaryKeys.forEach((pkey) => {
528
- pkeyVals.push({ FieldName: pkey.Name, Value: this.viewData[args.rowIndex][pkey.Name] });
529
- });
566
+ const compositeKey = new CompositeKey();
567
+ compositeKey.LoadFromEntityInfoAndRecord(this._entityInfo, this.viewData[args.rowIndex]);
530
568
  this.rowClicked.emit({
531
569
  entityId: this._entityInfo.ID,
532
570
  entityName: this._entityInfo.Name,
533
- primaryKeyValues: pkeyVals
571
+ CompositeKey: compositeKey
534
572
  });
535
573
  if (this._entityInfo.AllowUpdateAPI &&
536
574
  this.EditMode !== "None") {
@@ -542,15 +580,11 @@ export class UserViewGridComponent {
542
580
  }
543
581
  if (this.EditMode === 'None' && this.AutoNavigate) {
544
582
  // tell app router to go to this record
545
- const pkVals = this.GeneratePrimaryKeyValueString(pkeyVals);
546
- this.router.navigate(['resource', 'record', pkVals], { queryParams: { Entity: this._entityInfo.Name } });
583
+ this.router.navigate(['resource', 'record', compositeKey.ToURLSegment()], { queryParams: { Entity: this._entityInfo.Name } });
547
584
  }
548
585
  }
549
586
  });
550
587
  }
551
- GeneratePrimaryKeyValueString(pkVals) {
552
- return pkVals.map(pk => pk.FieldName + '|' + pk.Value).join('||');
553
- }
554
588
  createFormGroup(dataItem) {
555
589
  const groupFields = {};
556
590
  this.viewColumns.forEach((vc) => {
@@ -593,13 +627,10 @@ export class UserViewGridComponent {
593
627
  let record;
594
628
  let bSaved = false;
595
629
  if (this.EditMode === "Save") {
630
+ let compositeKey = new CompositeKey();
631
+ compositeKey.LoadFromEntityInfoAndRecord(this._entityInfo, dataItem);
596
632
  record = yield md.GetEntityObject(this._entityInfo.Name);
597
- yield record.InnerLoad(this._entityInfo.PrimaryKeys.map(pk => {
598
- return {
599
- FieldName: pk.Name,
600
- Value: dataItem[pk.Name]
601
- };
602
- }));
633
+ yield record.InnerLoad(compositeKey);
603
634
  record.SetMany(formGroup.value);
604
635
  bSaved = yield record.Save();
605
636
  if (!bSaved)
@@ -609,12 +640,9 @@ export class UserViewGridComponent {
609
640
  record = (_a = this._pendingRecords.find((r) => r.record.Get(pkey) === dataItem[pkey])) === null || _a === void 0 ? void 0 : _a.record;
610
641
  if (!record) { // haven't edited this one before
611
642
  record = yield md.GetEntityObject(this._viewEntity.Get('Entity'));
612
- yield record.InnerLoad(this._entityInfo.PrimaryKeys.map(pk => {
613
- return {
614
- FieldName: pk.Name,
615
- Value: dataItem[pk.Name]
616
- };
617
- }));
643
+ let compositeKey = new CompositeKey();
644
+ compositeKey.LoadFromEntityInfoAndRecord(this._entityInfo, dataItem);
645
+ yield record.InnerLoad(compositeKey);
618
646
  this._pendingRecords.push({ record,
619
647
  row: args.rowIndex,
620
648
  dataItem }); // don't save - put the changed record on a queue for saving later by our container
@@ -882,20 +910,14 @@ export class UserViewGridComponent {
882
910
  const result = yield md.MergeRecords({
883
911
  EntityName: this._entityInfo.Name,
884
912
  RecordsToMerge: this.recordsToCompare.map((r) => {
885
- // return an array of primary key values for each record to merge
886
- return pkeys.map((pkey) => {
887
- return {
888
- FieldName: pkey.Name,
889
- Value: r.Get(pkey.Name)
890
- };
891
- });
892
- }).filter((pkeyVals) => {
893
- if (!this.recordCompareComponent)
913
+ return r.CompositeKey;
914
+ }).filter((compositeKey) => {
915
+ if (!this.recordCompareComponent) {
894
916
  return false;
895
- else
896
- return !ComparePrimaryKeys(pkeyVals, this.recordCompareComponent.selectedRecordPKeyVal);
917
+ }
918
+ return this.recordCompareComponent.selectedRecordCompositeKey.Equals(compositeKey);
897
919
  }),
898
- SurvivingRecordPrimaryKeyValues: this.recordCompareComponent.selectedRecordPKeyVal,
920
+ SurvivingRecordCompositeKey: this.recordCompareComponent.selectedRecordCompositeKey,
899
921
  FieldMap: this.recordCompareComponent.fieldMap.map((fm) => {
900
922
  return {
901
923
  FieldName: fm.fieldName,
@@ -948,26 +970,43 @@ export class UserViewGridComponent {
948
970
  }
949
971
  });
950
972
  }
951
- fimdDuplicateRecords() {
952
- var _a, _b;
973
+ findDuplicateRecords() {
974
+ var _a;
953
975
  return __awaiter(this, void 0, void 0, function* () {
954
976
  if (!this._entityInfo) {
955
977
  console.error("Entity Info is not available");
956
978
  this.closeCompareDialog('duplicate');
957
979
  return;
958
980
  }
981
+ const md = new Metadata();
982
+ const list = yield md.GetEntityObject('Lists');
983
+ list.NewRecord();
984
+ list.Name = `Potential Duplicate Run`;
985
+ list.Description = `Potential Duplicate Run for ${this._entityInfo.Name} Entity`;
986
+ list.EntityID = this._entityInfo.ID;
987
+ list.UserID = md.CurrentUser.ID;
988
+ const saveResult = yield list.Save();
989
+ if (!saveResult) {
990
+ console.error(`Failed to save list for Potential Duplicate Run`);
991
+ return;
992
+ }
959
993
  let params = new PotentialDuplicateRequest();
960
- params.EntityName = (_a = this._entityInfo) === null || _a === void 0 ? void 0 : _a.Name;
961
- params.EntityID = (_b = this._entityInfo) === null || _b === void 0 ? void 0 : _b.ID;
962
- params.PrimaryKeyValues = [];
994
+ params.EntityID = (_a = this._entityInfo) === null || _a === void 0 ? void 0 : _a.ID;
995
+ params.ListID = list.ID;
996
+ params.RecordIDs = [];
963
997
  for (const index of this.selectedKeys) {
964
998
  const viewData = this.viewData[index];
965
999
  const idField = viewData.ID;
966
- params.PrimaryKeyValues.push({ FieldName: "ID", Value: idField });
1000
+ const listDetail = yield md.GetEntityObject('List Details');
1001
+ listDetail.NewRecord();
1002
+ listDetail.ListID = list.ID;
1003
+ listDetail.RecordID = idField.toString();
1004
+ yield listDetail.Save();
967
1005
  }
968
- //const md: Metadata = new Metadata();
969
- //await md.GetRecordDuplicates(params);
1006
+ this.closeCompareDialog('duplicate');
970
1007
  this.CreateSimpleNotification("Working on finding duplicates, will notify you when it is complete...", 'info', 2000);
1008
+ let response = yield md.GetRecordDuplicates(params, md.CurrentUser);
1009
+ console.log(response);
971
1010
  });
972
1011
  }
973
1012
  doExcelExport() {
@@ -1027,62 +1066,23 @@ UserViewGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserV
1027
1066
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analysisQuestion = _t.first);
1028
1067
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.analysisResults = _t.first);
1029
1068
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.compareDialogContainer = _t.first);
1030
- } }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited" }, decls: 34, vars: 33, consts: [["mjFillContainer", "", 1, "user-view-grid-wrap"], [1, "flex-direction-row"], [1, "flex-direction-row", "gap-large"], [1, "flex-direction-column"], [2, "font-size", "smaller", "font-weight", "normal"], [1, "title-wrapper"], [1, "search"], ["type", "text", "placeholder", "Search in view...", "size", "large", "rounded", "large", "fillMode", "solid", 3, "clearButton"], ["searchInput", ""], ["kendoTextBoxPrefixTemplate", "", 3, "showSeparator"], [1, "flex-direction-row", "gap-small"], ["kendoButton", "", "class", "k-button-solid-base list-button"], ["kendoButton", "", "class", "k-button-solid-base list-button", 3, "disabled", "click", 4, "ngIf"], ["kendoButton", "", "class", "list-button"], ["mjFillContainer", "", "scrollable", "virtual", "kendoGridSelectBy", "", 3, "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "sort", "reorderable", "selectable", "selectedKeys", "pageChange", "selectedKeysChange", "cellClick", "cellClose", "columnReorder", "columnResize", "selectionChange", "sortChange"], ["kendoGrid", ""], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "data", "fileName"], ["excelExport", ""], [3, "field", "title", 4, "ngFor", "ngForOf"], ["compareDialogContainer", ""], [4, "ngIf"], [1, "fa-solid", "fa-magnifying-glass", "margin-left-small"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "click"], ["Title", "Export to Excel", 1, "fa-solid", "fa-file-excel", "fa-lg"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "disabled", "click"], ["kendoButton", "", 1, "list-button", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], [3, "width", "headerStyle"], [3, "field", "title", "width", "editable", "editor", "headerStyle"], [3, "field", "title"], [1, "k-overlay"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close", 4, "ngIf"], ["title", "Compare Records", 3, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close"], ["mjFillContainer", "", 3, "fillHeight", "bottomMargin"], [3, "entityName", "recordsToCompare", "visibleColumns", "selectionMode"], ["recordCompareRef", ""], [1, "k-actions", "k-actions-end"], ["kendoButton", "", "class", "k-button-solid-base-filled", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["title", "Confirm Choice", 3, "minWidth", "width", "close", 4, "ngIf"], ["kendoButton", "", 1, "k-button-solid-base-filled", 3, "click"], ["kendoButton", "", 3, "click"], ["title", "Confirm Choice", 3, "minWidth", "width", "close"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function UserViewGridComponent_Template(rf, ctx) { if (rf & 1) {
1031
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "b");
1032
- i0.ɵɵtext(5);
1033
- i0.ɵɵelementEnd();
1034
- i0.ɵɵelement(6, "br");
1035
- i0.ɵɵelementStart(7, "span", 4);
1036
- i0.ɵɵtext(8);
1037
- i0.ɵɵelementEnd()();
1038
- i0.ɵɵelementStart(9, "div", 5)(10, "div", 6)(11, "kendo-textbox", 7, 8);
1039
- i0.ɵɵtemplate(13, UserViewGridComponent_ng_template_13_Template, 1, 0, "ng-template", 9);
1040
- i0.ɵɵelementEnd()()()();
1041
- i0.ɵɵelementStart(14, "div", 10);
1042
- i0.ɵɵtemplate(15, UserViewGridComponent_Conditional_15_Template, 3, 0, "button", 11)(16, UserViewGridComponent_button_16_Template, 2, 1, "button", 12)(17, UserViewGridComponent_button_17_Template, 2, 1, "button", 12)(18, UserViewGridComponent_button_18_Template, 2, 1, "button", 12)(19, UserViewGridComponent_button_19_Template, 2, 1, "button", 12)(20, UserViewGridComponent_button_20_Template, 2, 1, "button", 12)(21, UserViewGridComponent_button_21_Template, 2, 1, "button", 12)(22, UserViewGridComponent_Conditional_22_Template, 2, 0, "button", 11)(23, UserViewGridComponent_Conditional_23_Template, 3, 0, "button", 13);
1043
- i0.ɵɵelementEnd()();
1044
- i0.ɵɵelementStart(24, "kendo-grid", 14, 15);
1045
- i0.ɵɵlistener("pageChange", function UserViewGridComponent_Template_kendo_grid_pageChange_24_listener($event) { return ctx.pageChange($event); });
1046
- i0.ɵɵtwoWayListener("selectedKeysChange", function UserViewGridComponent_Template_kendo_grid_selectedKeysChange_24_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedKeys, $event) || (ctx.selectedKeys = $event); return $event; });
1047
- i0.ɵɵlistener("cellClick", function UserViewGridComponent_Template_kendo_grid_cellClick_24_listener($event) { return ctx.cellClickHandler($event); })("cellClose", function UserViewGridComponent_Template_kendo_grid_cellClose_24_listener($event) { return ctx.cellCloseHandler($event); })("columnReorder", function UserViewGridComponent_Template_kendo_grid_columnReorder_24_listener($event) { return ctx.columnReorder($event); })("columnResize", function UserViewGridComponent_Template_kendo_grid_columnResize_24_listener($event) { return ctx.columnResize($event); })("selectionChange", function UserViewGridComponent_Template_kendo_grid_selectionChange_24_listener($event) { return ctx.selectionChange($event); })("sortChange", function UserViewGridComponent_Template_kendo_grid_sortChange_24_listener($event) { return ctx.sortChanged($event); });
1048
- i0.ɵɵtemplate(26, UserViewGridComponent_kendo_grid_checkbox_column_26_Template, 1, 6, "kendo-grid-checkbox-column", 16)(27, UserViewGridComponent_kendo_grid_column_27_Template, 1, 9, "kendo-grid-column", 17);
1049
- i0.ɵɵelementStart(28, "kendo-excelexport", 18, 19);
1050
- i0.ɵɵtemplate(30, UserViewGridComponent_kendo_excelexport_column_30_Template, 1, 2, "kendo-excelexport-column", 20);
1069
+ } }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked", rowEdited: "rowEdited" }, decls: 12, vars: 19, consts: [["mjFillContainer", "", 1, "user-view-grid-wrap"], ["mjFillContainer", "", "scrollable", "virtual", "kendoGridSelectBy", "", 3, "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "sort", "reorderable", "selectable", "selectedKeys", "pageChange", "selectedKeysChange", "cellClick", "cellClose", "columnReorder", "columnResize", "selectionChange", "sortChange"], ["kendoGrid", ""], ["kendoGridToolbarTemplate", ""], [3, "width", "headerStyle", "style", 4, "ngIf"], [3, "field", "title", "width", "editable", "editor", "headerStyle", "style", 4, "ngFor", "ngForOf"], [3, "data", "fileName"], ["excelExport", ""], [3, "field", "title", 4, "ngFor", "ngForOf"], ["compareDialogContainer", ""], [4, "ngIf"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["kendoButton", "", "class", "k-button-solid-base list-button", 3, "disabled", "click", 4, "ngIf"], ["class", "k-button k-button-md k-rounded-md k-button-solid-base k-button-solid", 3, "disabled", "click", 4, "ngIf"], ["kendoButton", "", "class", "k-button-solid-base list-button"], ["kendoButton", "", "class", "list-button"], ["kendoButton", "", 3, "click"], [1, "fa-regular", "fa-file-excel"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "disabled", "click"], [1, "k-button", "k-button-md", "k-rounded-md", "k-button-solid-base", "k-button-solid", 3, "disabled", "click"], ["kendoButton", "", 1, "k-button-solid-base", "list-button", 3, "click"], ["kendoButton", "", 1, "list-button", 3, "click"], [1, "fa-solid", "fa-arrows-rotate"], [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, "minHeight", "minWidth", "top", "left", "width", "height", "resizable", "close"], ["mjFillContainer", "", 3, "fillHeight", "bottomMargin"], [3, "entityName", "recordsToCompare", "visibleColumns", "selectionMode"], ["recordCompareRef", ""], [1, "k-actions", "k-actions-end"], ["kendoButton", "", "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, "minWidth", "width", "close"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"]], template: function UserViewGridComponent_Template(rf, ctx) { if (rf & 1) {
1070
+ i0.ɵɵelementStart(0, "div", 0)(1, "kendo-grid", 1, 2);
1071
+ i0.ɵɵlistener("pageChange", function UserViewGridComponent_Template_kendo_grid_pageChange_1_listener($event) { return ctx.pageChange($event); });
1072
+ i0.ɵɵtwoWayListener("selectedKeysChange", function UserViewGridComponent_Template_kendo_grid_selectedKeysChange_1_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedKeys, $event) || (ctx.selectedKeys = $event); return $event; });
1073
+ i0.ɵɵlistener("cellClick", function UserViewGridComponent_Template_kendo_grid_cellClick_1_listener($event) { return ctx.cellClickHandler($event); })("cellClose", function UserViewGridComponent_Template_kendo_grid_cellClose_1_listener($event) { return ctx.cellCloseHandler($event); })("columnReorder", function UserViewGridComponent_Template_kendo_grid_columnReorder_1_listener($event) { return ctx.columnReorder($event); })("columnResize", function UserViewGridComponent_Template_kendo_grid_columnResize_1_listener($event) { return ctx.columnResize($event); })("selectionChange", function UserViewGridComponent_Template_kendo_grid_selectionChange_1_listener($event) { return ctx.selectionChange($event); })("sortChange", function UserViewGridComponent_Template_kendo_grid_sortChange_1_listener($event) { return ctx.sortChanged($event); });
1074
+ i0.ɵɵtemplate(3, UserViewGridComponent_ng_template_3_Template, 9, 9, "ng-template", 3)(4, UserViewGridComponent_kendo_grid_checkbox_column_4_Template, 1, 6, "kendo-grid-checkbox-column", 4)(5, UserViewGridComponent_kendo_grid_column_5_Template, 2, 10, "kendo-grid-column", 5);
1075
+ i0.ɵɵelementStart(6, "kendo-excelexport", 6, 7);
1076
+ i0.ɵɵtemplate(8, UserViewGridComponent_kendo_excelexport_column_8_Template, 1, 2, "kendo-excelexport-column", 8);
1051
1077
  i0.ɵɵelementEnd()();
1052
- i0.ɵɵelementStart(31, "div", null, 21);
1053
- i0.ɵɵtemplate(33, UserViewGridComponent_div_33_Template, 3, 1, "div", 22);
1078
+ i0.ɵɵelementStart(9, "div", null, 9);
1079
+ i0.ɵɵtemplate(11, UserViewGridComponent_div_11_Template, 3, 1, "div", 10);
1054
1080
  i0.ɵɵelementEnd()();
1055
1081
  } if (rf & 2) {
1056
- i0.ɵɵadvance(5);
1057
- i0.ɵɵtextInterpolate2("Showing ", ctx.viewData.length, " of ", ctx.totalRowCount, " rows");
1058
- i0.ɵɵadvance(3);
1059
- i0.ɵɵtextInterpolate1(" ", ctx.viewExecutionTime, " seconds ");
1060
- i0.ɵɵadvance(3);
1061
- i0.ɵɵproperty("clearButton", true);
1062
- i0.ɵɵadvance(2);
1063
- i0.ɵɵproperty("showSeparator", true);
1064
- i0.ɵɵadvance(2);
1065
- i0.ɵɵconditional(15, !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode ? 15 : -1);
1066
- i0.ɵɵadvance();
1067
- i0.ɵɵproperty("ngIf", !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode);
1068
- i0.ɵɵadvance();
1069
- i0.ɵɵproperty("ngIf", ctx.duplicateMode);
1070
- i0.ɵɵadvance();
1071
- i0.ɵɵproperty("ngIf", !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode);
1072
- i0.ɵɵadvance();
1073
- i0.ɵɵproperty("ngIf", ctx.compareMode);
1074
- i0.ɵɵadvance();
1075
- i0.ɵɵproperty("ngIf", !ctx.mergeMode && !ctx.compareMode && !ctx.duplicateMode);
1076
- i0.ɵɵadvance();
1077
- i0.ɵɵproperty("ngIf", ctx.mergeMode);
1078
- i0.ɵɵadvance();
1079
- i0.ɵɵconditional(22, ctx.compareMode || ctx.mergeMode || ctx.duplicateMode ? 22 : -1);
1080
- i0.ɵɵadvance();
1081
- i0.ɵɵconditional(23, ctx.showRefreshButton && !ctx.compareMode && !ctx.mergeMode && !ctx.duplicateMode ? 23 : -1);
1082
1082
  i0.ɵɵadvance();
1083
1083
  i0.ɵɵproperty("resizable", true)("data", ctx.gridView)("skip", ctx.skip)("pageSize", ctx.pageSize)("rowHeight", 36)("loading", ctx.isLoading)("height", ctx.gridHeight)("sortable", true)("sort", ctx.sortSettings)("resizable", true)("reorderable", true)("selectable", true);
1084
1084
  i0.ɵɵtwoWayProperty("selectedKeys", ctx.selectedKeys);
1085
- i0.ɵɵadvance(2);
1085
+ i0.ɵɵadvance(3);
1086
1086
  i0.ɵɵproperty("ngIf", ctx.compareMode || ctx.mergeMode || ctx.duplicateMode);
1087
1087
  i0.ɵɵadvance();
1088
1088
  i0.ɵɵproperty("ngForOf", ctx.visibleColumns);
@@ -1092,10 +1092,10 @@ UserViewGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserV
1092
1092
  i0.ɵɵproperty("ngForOf", ctx.exportColumns);
1093
1093
  i0.ɵɵadvance(3);
1094
1094
  i0.ɵɵproperty("ngIf", ctx.isCompareDialogOpened);
1095
- } }, dependencies: [i3.NgForOf, i3.NgIf, i4.GridComponent, i4.SelectionDirective, i4.ColumnComponent, i4.CheckboxColumnComponent, i5.DialogComponent, i5.DialogActionsComponent, i5.WindowComponent, i6.ExcelExportComponent, i6.ColumnComponent, i7.ButtonComponent, i8.CompareRecordsComponent, i9.FillContainer, i10.TextBoxComponent, i10.TextBoxPrefixTemplateDirective], styles: [".user-view-grid-wrap[_ngcontent-%COMP%] {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header[_ngcontent-%COMP%] {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\n}\n\n.title-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper[_ngcontent-%COMP%] {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td[_ngcontent-%COMP%] {\n border-right: none !important;\n}.btn-cmn[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active[_ngcontent-%COMP%] {\n border: 1px solid var(--border-blue);\n}\n .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}\n\n.gap-small[_ngcontent-%COMP%]{\n gap: 8px; \n}\n\n.gap-large[_ngcontent-%COMP%] {\n gap: 20px; \n}\n\n.flex-direction-row[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.flex-direction-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: start;\n}\n\n.search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.search[_ngcontent-%COMP%] .fa-magnifying-glass[_ngcontent-%COMP%] {\n margin-left: 10px;\n}\n\n.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n}\n\n.search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n .list-button {\n min-width: 120px;\n width: auto;\n}\n \n .k-button-solid-base {\n border: 1px solid var(--border-blue) !important;\n color: var(--border-blue) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n\n .k-button-solid-base-black {\n border: 1px solid grey !important;\n color: black !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n \n .k-button-solid-base-filled {\n border: 1px solid var(--border-blue) !important;\n color: var(--white-color) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--border-blue);\n }\n \n .k-button-solid-base-filled:hover {\n background: var(--border-blue);\n filter: brightness(85%);\n }"] });
1095
+ } }, dependencies: [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.FillContainer, i3.DecimalPipe], styles: [".user-view-grid-wrap[_ngcontent-%COMP%] {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header[_ngcontent-%COMP%] {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\n}\n\n.title-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper[_ngcontent-%COMP%] {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td[_ngcontent-%COMP%] {\n border-right: none !important;\n}.btn-cmn[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active[_ngcontent-%COMP%] {\n border: 1px solid var(--border-blue);\n}\n .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}"] });
1096
1096
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewGridComponent, [{
1097
1097
  type: Component,
1098
- args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" mjFillContainer>\n <div class=\"flex-direction-row\">\n <div class=\"flex-direction-row gap-large\">\n <div class=\"flex-direction-column\">\n <b>Showing {{this.viewData.length}} of {{this.totalRowCount}} rows</b>\n <br/>\n <span style=\"font-size: smaller; font-weight: normal;\">\n {{viewExecutionTime}} seconds\n </span> \n <!--\n {{this.viewData.length | number}}{{this.totalRowCount > this.viewData.length ? ' of ' + (this.totalRowCount | number) : ' rows'}}<br/><span style=\"font-size: smaller; font-weight: normal;\">{{viewExecutionTime | number:'1.2-2'}} seconds</span>\n -->\n </div>\n <div class=\"title-wrapper\">\n <div class=\"search\">\n <kendo-textbox \n type=\"text\" \n #searchInput \n placeholder=\"Search in view...\" \n [clearButton]=\"true\"\n size=\"large\"\n rounded=\"large\"\n fillMode=\"solid\"\n >\n <ng-template kendoTextBoxPrefixTemplate [showSeparator]=\"true\">\n <span class=\"fa-solid fa-magnifying-glass margin-left-small\"></span>\n </ng-template>\n </kendo-textbox>\n </div>\n </div>\n </div>\n <div class=\"flex-direction-row gap-small\">\n @if(!compareMode && !mergeMode && !duplicateMode){\n <button kendoButton (click)=\"doExcelExport()\" class=\"k-button-solid-base list-button\">\n <span Title=\"Export to Excel\" class=\"fa-solid fa-file-excel fa-lg\"></span> Export to Excel\n </button>\n <!--\n <button kendoButton class=\"k-button-solid-base list-button\">\n Analysis\n </button>\n -->\n }\n \n <!-- 3 buttons for duplicate. First one only shows when duplication is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending duple. -->\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"(!compareMode && !mergeMode && !duplicateMode)\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"duplicateMode\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <!--\n <button (click)=\"enableCheckbox(true, 'duplicate')\" *ngIf=\"duplicateMode\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n -->\n\n <!-- 3 buttons for compare. First one only shows when comparison is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending compare. -->\n <button kendoButton (click)=\"enableCheckbox(false, 'compare')\" *ngIf=\"(!compareMode && !mergeMode && !duplicateMode)\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Compare</button>\n <button kendoButton (click)=\"enableCheckbox(false, 'compare')\" *ngIf=\"compareMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Compare</button>\n <!--\n <button kendoButton (click)=\"enableCheckbox(true, 'compare')\" *ngIf=\"compareMode\" class=\"k-button-solid-base list-button\">Cancel</button>\n -->\n \n <!-- 3 buttons for merge. First one only shows when merge is getting goin in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending merge. -->\n <button kendoButton (click)=\"enableCheckbox(false, 'merge')\" *ngIf=\"(!mergeMode && !compareMode && !duplicateMode)\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Merge</button>\n <button kendoButton (click)=\"enableCheckbox(false, 'merge')\" *ngIf=\"mergeMode\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button-solid-base list-button\">Merge</button>\n <!--\n <button kendoButton (click)=\"enableCheckbox(true, 'merge')\" *ngIf=\"mergeMode\" class=\"k-button-solid-base list-button\">Cancel</button>\n -->\n @if(compareMode || mergeMode || duplicateMode){\n <button (click)=\"enableCheckbox(true, '')\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n }\n @if(showRefreshButton && !compareMode && !mergeMode && !duplicateMode){\n <button\n kendoButton\n class=\"list-button\"\n (click)=\"RefreshFromSavedParams()\">\n <span class=\"fa-solid fa-arrows-rotate\"></span>\n Refresh\n </button>\n }\n </div>\n </div>\n <kendo-grid #kendoGrid\n mjFillContainer\n [resizable]=\"true\"\n [data]=\"gridView\" \n [skip]=\"skip\"\n [pageSize]=\"pageSize\"\n scrollable=\"virtual\"\n [rowHeight]=\"36\"\n (pageChange)=\"pageChange($event)\"\n [loading]=\"isLoading\"\n [height]=\"gridHeight\"\n [sortable]=\"true\"\n [sort]=\"sortSettings\" \n [resizable]=\"true\"\n [reorderable]=\"true\"\n [selectable]=\"true\"\n kendoGridSelectBy\n [(selectedKeys)]=\"selectedKeys\"\n (cellClick)=\"cellClickHandler($event)\"\n (cellClose)=\"cellCloseHandler($event)\"\n (columnReorder)=\"columnReorder($event)\"\n (columnResize)=\"columnResize($event)\"\n (selectionChange)=\"selectionChange($event)\"\n (sortChange)=\"sortChanged($event)\"\n > \n <kendo-grid-checkbox-column \n *ngIf=\"compareMode || mergeMode || duplicateMode\" \n [width]=\"50\" \n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\" \n [style]=\"{'text-align': 'center', 'vertical-align': 'center'}\">\n </kendo-grid-checkbox-column> \n <kendo-grid-column \n *ngFor=\"let item of visibleColumns\" \n [field]=\"item.Name\" \n [title]=\"GetColumnTitle(item)\"\n [width]=\"item.width ? item.width : 100\"\n [editable]=\"item.EntityField.AllowUpdateAPI\"\n [editor]=\"getEditor(item.EntityField)\"\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\"\n [style]=\"this.GetColumnCellStyle(item)\"\n />\n <kendo-excelexport #excelExport [data]=\"exportData\" [fileName]=\"(_viewEntity ? _viewEntity.Get('Name') : _entityInfo?.Name) + '.xlsx'\">\n <kendo-excelexport-column *ngFor=\"let exportCol of exportColumns\" [field]=\"exportCol.Name\" [title]=\"exportCol.Name\">\n </kendo-excelexport-column>\n </kendo-excelexport>\n </kendo-grid>\n \n <div #compareDialogContainer>\n <div *ngIf=\"isCompareDialogOpened\">\n <div class=\"k-overlay\"></div>\n <kendo-window\n [minHeight]=\"300\"\n [minWidth]=\"800\"\n [top]=\"100\"\n [left]=\"100\"\n [width]=\"1200\"\n [height]=\"675\"\n [resizable]=\"true\"\n (close)=\"closeCompareDialog($event)\"\n title=\"Compare Records\"\n *ngIf=\"isCompareDialogOpened\"\n >\n <div mjFillContainer [fillHeight]=\"true\" [bottomMargin]=\"100\">\n <mj-compare-records\n #recordCompareRef\n [entityName]=\"_entityInfo ? _entityInfo.Name : ''\"\n [recordsToCompare]=\"recordsToCompare\" \n [visibleColumns]=\"visibleColumns\" \n [selectionMode]=\"mergeMode ? true : false\"\n />\n </div>\n <div class=\"k-actions k-actions-end\">\n <button kendoButton *ngIf=\"mergeMode\" (click)=\"closeCompareDialog('merge')\" class=\"k-button-solid-base-filled\">\n Merge Records \n </button>\n <button kendoButton *ngIf=\"duplicateMode\" (click)=\"fimdDuplicateRecords()\" class=\"k-button-solid-base-filled\">\n Search for Duplicates\n </button>\n <button kendoButton *ngIf=\"compareMode\" (click)=\"closeCompareDialog('close')\">\n Close\n </button>\n <button kendoButton *ngIf=\"mergeMode || duplicateMode\" (click)=\"closeCompareDialog('cancel')\">\n Cancel\n </button>\n </div> \n <kendo-dialog\n title=\"Confirm Choice\"\n *ngIf=\"isConfirmDialogOpen\"\n (close)=\"closeConfirmMergeDialog('cancel')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n >\n <p style=\"margin: 30px; text-align: center;\">\n Are you sure you want to merge the records? This action cannot be undone. If you select \"Yes\", the records will be merged and the duplicate records will be deleted.\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeConfirmMergeDialog('no')\">No</button>\n <button kendoButton (click)=\"closeConfirmMergeDialog('yes')\" themeColor=\"primary\">\n Yes\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n </kendo-window>\n </div> \n </div>\n </div>\n ", styles: [".user-view-grid-wrap {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\n}\n\n.title-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper .search input {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper .search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td {\n border-right: none !important;\n}.btn-cmn {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}\n\n.gap-small{\n gap: 8px; \n}\n\n.gap-large {\n gap: 20px; \n}\n\n.flex-direction-row {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.flex-direction-column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: start;\n}\n\n.search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n}\n\n.search .fa-magnifying-glass {\n margin-left: 10px;\n}\n\n.search input {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n}\n\n.search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n\n::ng-deep .list-button {\n min-width: 120px;\n width: auto;\n}\n \n ::ng-deep .k-button-solid-base {\n border: 1px solid var(--border-blue) !important;\n color: var(--border-blue) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n\n ::ng-deep .k-button-solid-base-black {\n border: 1px solid grey !important;\n color: black !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--white-color);\n }\n \n ::ng-deep .k-button-solid-base-filled {\n border: 1px solid var(--border-blue) !important;\n color: var(--white-color) !important;\n border-radius: 10px;\n line-height: 34px;\n background: var(--border-blue);\n }\n \n ::ng-deep .k-button-solid-base-filled:hover {\n background: var(--border-blue);\n filter: brightness(85%);\n }"] }]
1098
+ args: [{ selector: 'mj-user-view-grid', template: "<div class=\"user-view-grid-wrap\" mjFillContainer>\n <kendo-grid #kendoGrid\n mjFillContainer\n [resizable]=\"true\"\n [data]=\"gridView\" \n [skip]=\"skip\"\n [pageSize]=\"pageSize\"\n scrollable=\"virtual\"\n [rowHeight]=\"36\"\n (pageChange)=\"pageChange($event)\"\n [loading]=\"isLoading\"\n [height]=\"gridHeight\"\n [sortable]=\"true\"\n [sort]=\"sortSettings\" \n [resizable]=\"true\"\n [reorderable]=\"true\"\n [selectable]=\"true\"\n kendoGridSelectBy\n [(selectedKeys)]=\"selectedKeys\"\n (cellClick)=\"cellClickHandler($event)\"\n (cellClose)=\"cellCloseHandler($event)\"\n (columnReorder)=\"columnReorder($event)\"\n (columnResize)=\"columnResize($event)\"\n (selectionChange)=\"selectionChange($event)\"\n (sortChange)=\"sortChanged($event)\"\n >\n <ng-template kendoGridToolbarTemplate>\n \n <button kendoButton *ngIf=\"!compareMode && !mergeMode\" (click)=\"doExcelExport()\" >\n <span class=\"fa-regular fa-file-excel\"></span>\n Export to Excel\n </button>\n\n <!-- 3 buttons for duplicate. First one only shows when duplication is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending duple. -->\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"(!compareMode && !mergeMode && !duplicateMode)\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <button (click)=\"enableCheckbox(false, 'duplicate')\" *ngIf=\"duplicateMode\" [disabled]=\"duplicateMode && recordsToCompare.length < 2\" kendoButton class=\"k-button-solid-base list-button\">\n Search For Duplicates\n </button>\n <!--\n <button (click)=\"enableCheckbox(true, 'duplicate')\" *ngIf=\"duplicateMode\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n -->\n\n\n <!-- 3 buttons for compare. First one only shows when comparison is going on in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending compare. -->\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" *ngIf=\"!compareMode && !mergeMode && !duplicateMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Compare</button>\n <button (click)=\"enableMergeOrCompare(false, 'compare')\" *ngIf=\"compareMode\" [disabled]=\"compareMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Compare</button>\n <!--\n <button (click)=\"enableMergeOrCompare(true, 'compare')\" *ngIf=\"compareMode\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Cancel</button>\n -->\n\n <!-- 3 buttons for merge. First one only shows when merge is getting goin in the grid, the next one is the one the user starts the process with before records are selected, last one is to cancel the pending merge. -->\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" *ngIf=\"!mergeMode && !compareMode && !duplicateMode\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Merge</button>\n <button (click)=\"enableMergeOrCompare(false, 'merge')\" *ngIf=\"mergeMode\" [disabled]=\"mergeMode && recordsToCompare.length < 2\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Merge</button>\n <!--\n <button (click)=\"enableMergeOrCompare(true, 'merge')\" *ngIf=\"mergeMode\" class=\"k-button k-button-md k-rounded-md k-button-solid-base k-button-solid\">Cancel</button>\n -->\n \n @if(compareMode || mergeMode || duplicateMode){\n <button (click)=\"enableCheckbox(true, '')\" kendoButton class=\"k-button-solid-base list-button\">\n Cancel\n </button>\n }\n @if(showRefreshButton && !compareMode && !mergeMode && !duplicateMode){\n <button\n kendoButton\n class=\"list-button\"\n (click)=\"RefreshFromSavedParams()\">\n <span class=\"fa-solid fa-arrows-rotate\"></span>\n Refresh\n </button>\n }\n </ng-template>\n \n <kendo-grid-checkbox-column \n *ngIf=\"compareMode || mergeMode || duplicateMode\" \n [width]=\"50\" \n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\" \n [style]=\"{'text-align': 'center', 'vertical-align': 'center'}\">\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column \n *ngFor=\"let item of visibleColumns\" \n [field]=\"item.Name\" \n [title]=\"GetColumnTitle(item)\"\n [width]=\"item.width ? item.width : 100\"\n [editable]=\"item.EntityField.AllowUpdateAPI\"\n [editor]=\"getEditor(item.EntityField)\"\n [headerStyle]=\"{ 'font-weight' : 'bold', 'background-color': 'white' }\"\n [style]=\"this.GetColumnCellStyle(item)\"\n >\n <ng-template *ngIf=\"item===visibleColumns[0]\" kendoGridFooterTemplate >\n {{this.viewData.length | number}}{{this.totalRowCount > this.viewData.length ? ' of ' + (this.totalRowCount | number) : ' rows'}}<br/><span style=\"font-size: smaller; font-weight: normal;\">{{viewExecutionTime | number:'1.2-2'}} seconds</span>\n </ng-template>\n </kendo-grid-column>\n \n <kendo-excelexport #excelExport [data]=\"exportData\" [fileName]=\"(_viewEntity ? _viewEntity.Get('Name') : _entityInfo?.Name) + '.xlsx'\">\n <kendo-excelexport-column *ngFor=\"let exportCol of exportColumns\" [field]=\"exportCol.Name\" [title]=\"exportCol.Name\">\n </kendo-excelexport-column>\n </kendo-excelexport>\n </kendo-grid>\n \n <div #compareDialogContainer>\n <div *ngIf=\"isCompareDialogOpened\">\n <div class=\"k-overlay\"></div>\n <kendo-window\n [minHeight]=\"300\"\n [minWidth]=\"800\"\n [top]=\"100\"\n [left]=\"100\"\n [width]=\"1200\"\n [height]=\"675\"\n [resizable]=\"true\"\n (close)=\"closeCompareDialog($event)\"\n title=\"Compare Records\"\n *ngIf=\"isCompareDialogOpened\"\n >\n <div mjFillContainer [fillHeight]=\"true\" [bottomMargin]=\"100\">\n <mj-compare-records\n #recordCompareRef\n [entityName]=\"_entityInfo ? _entityInfo.Name : ''\"\n [recordsToCompare]=\"recordsToCompare\" \n [visibleColumns]=\"visibleColumns\" \n [selectionMode]=\"mergeMode ? true : false\"\n >\n </mj-compare-records>\n </div>\n <div class=\"k-actions k-actions-end\">\n <button *ngIf=\"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 </div>\n ", styles: [".user-view-grid-wrap {\n height: calc(100vh - 20px);\n}\n\n.user-view-grid-column-header {\n background-color: #fff;\n font-size: 20pt;\n font-weight: bold;\n}\n\n.title-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid var(--med-gray);\n}\n .title-wrapper h4 {\n margin: 0;\n font-size: 24px;\n line-height: 28px;\n }\n .main-fav-wrapper {\n background: #fff;\n padding: 20px;\n }\n .filter-wrapper {\n display: flex;\n justify-content: flex-start;\n gap: 14px;\n align-items: center;\n}\n .title-wrapper .search input {\n width: 100%;\n height: 100%;\n font-size: 16px;\n background: transparent;\n border: none;\n box-sizing: border-box;\n padding-left: 40px;\n\n }\n .title-wrapper .search {\n background: var(--light-shade);\n width: 360px;\n height: 44px;\n position: relative;\n border-radius: 10px;\n }\n .title-wrapper .search svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 12px;\n}\n.k-table-td {\n border-right: none !important;\n}.btn-cmn {\n width: 44px;\n height: 44px;\n min-width: 44px;\n background: transparent;\n border-radius: 8px;\n border: 1px solid var(--gray-color);\n}\n.btn-cmn.active {\n border: 1px solid var(--border-blue);\n}\n::ng-deep .title-wrapper .filter-wrapper .k-dropdown-button .k-button {\n border: 1px solid var(--gray-color);\n border-radius: 8px; padding: 10px 25px;\n background: var(--white-color);\n color: var(--sideNav);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n::ng-deep .user-view-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n} "] }]
1099
1099
  }], () => [{ type: i1.FormBuilder }, { type: i2.Router }, { type: i0.Renderer2 }], { Params: [{
1100
1100
  type: Input
1101
1101
  }], BottomMargin: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-user-view-grid",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "MemberJunction: Angular Grid to display dynamic and saved user views for any entity in MemberJunction.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,12 +25,12 @@
25
25
  "@angular/router": "~17.2.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core-entities": "~1.2.1",
29
- "@memberjunction/global": "~1.2.1",
30
- "@memberjunction/core": "~1.2.1",
31
- "@memberjunction/ng-shared": "~1.2.1",
32
- "@memberjunction/ng-compare-records": "~1.2.1",
33
- "@memberjunction/ng-container-directives": "~1.2.1",
28
+ "@memberjunction/core-entities": "~1.3.0",
29
+ "@memberjunction/global": "~1.3.0",
30
+ "@memberjunction/core": "~1.3.0",
31
+ "@memberjunction/ng-shared": "~1.3.0",
32
+ "@memberjunction/ng-compare-records": "~1.3.0",
33
+ "@memberjunction/ng-container-directives": "~1.3.0",
34
34
  "@progress/kendo-angular-grid": "~15.1.0",
35
35
  "@progress/kendo-angular-layout": "~15.1.0",
36
36
  "@progress/kendo-angular-inputs": "~15.1.0",