@memberjunction/ng-explorer-core 1.0.4 → 1.0.7-next.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.
Files changed (75) hide show
  1. package/dist/lib/app-view/application-view.component.js +3 -3
  2. package/dist/lib/auth-button/auth-button.component.js +2 -2
  3. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +3 -3
  4. package/dist/lib/data-browser-component/data-browser.component.js +3 -3
  5. package/dist/lib/expansion-panel-component/expansion-panel-component.js +3 -3
  6. package/dist/lib/favorites/favorites.component.js +3 -3
  7. package/dist/lib/files/files.component.js +3 -3
  8. package/dist/lib/generic/form-toolbar.js +10 -10
  9. package/dist/lib/generic/resource-container-component.js +1 -1
  10. package/dist/lib/generic/section-loader-component.js +1 -1
  11. package/dist/lib/generic-browse-list/generic-browse-list.component.js +3 -3
  12. package/dist/lib/generic-browser-list/generic-browser-list.component.js +4 -4
  13. package/dist/lib/header/header.component.js +3 -3
  14. package/dist/lib/home-component/home.component.js +3 -3
  15. package/dist/lib/join-grid/join-grid.component.js +2 -2
  16. package/dist/lib/navigation/navigation.component.js +3 -3
  17. package/dist/lib/query-browser-component/query-browser.component.js +3 -3
  18. package/dist/lib/report-browser-component/report-browser.component.js +3 -3
  19. package/dist/lib/resource-wrappers/dashboard-resource.component.js +1 -1
  20. package/dist/lib/resource-wrappers/query-resource.component.js +1 -1
  21. package/dist/lib/resource-wrappers/record-resource.component.js +1 -1
  22. package/dist/lib/resource-wrappers/report-resource.component.js +1 -1
  23. package/dist/lib/resource-wrappers/search-results-resource.component.js +1 -1
  24. package/dist/lib/resource-wrappers/view-resource.component.js +6 -6
  25. package/dist/lib/single-application/single-application.component.js +3 -3
  26. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +3 -3
  27. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +3 -3
  28. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +3 -3
  29. package/dist/lib/single-dashboard/single-dashboard.component.js +3 -3
  30. package/dist/lib/single-entity/single-entity.component.js +3 -3
  31. package/dist/lib/single-query/single-query.component.js +1 -1
  32. package/dist/lib/single-record/single-record.component.js +2 -2
  33. package/dist/lib/single-report/single-report.component.js +2 -2
  34. package/dist/lib/single-search-result/single-search-result.component.js +2 -2
  35. package/dist/lib/single-view/single-view.component.js +3 -3
  36. package/dist/lib/user-notifications/user-notifications.component.js +3 -3
  37. package/dist/lib/user-profile/user-profile.component.js +2 -2
  38. package/package.json +59 -59
  39. package/dist/lib/ask-skip/ask-skip.component.d.ts +0 -87
  40. package/dist/lib/ask-skip/ask-skip.component.js +0 -626
  41. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.d.ts +0 -12
  42. package/dist/lib/ask-skip/skip-dynamic-report-wrapper.js +0 -50
  43. package/dist/lib/expansion-panel-component/components/expansion-panel-item-component.d.ts +0 -14
  44. package/dist/lib/expansion-panel-component/components/expansion-panel-item-component.d.ts.map +0 -1
  45. package/dist/lib/expansion-panel-component/components/expansion-panel-item-component.js +0 -33
  46. package/dist/lib/generic/base-form-component.d.ts +0 -77
  47. package/dist/lib/generic/base-form-component.d.ts.map +0 -1
  48. package/dist/lib/generic/base-form-component.js +0 -436
  49. package/dist/lib/generic/base-form-section-component.d.ts +0 -7
  50. package/dist/lib/generic/base-form-section-component.d.ts.map +0 -1
  51. package/dist/lib/generic/base-form-section-component.js +0 -9
  52. package/dist/lib/generic/base-record-component.d.ts +0 -7
  53. package/dist/lib/generic/base-record-component.d.ts.map +0 -1
  54. package/dist/lib/generic/base-record-component.js +0 -15
  55. package/dist/lib/generic/base-resource-component.d.ts +0 -34
  56. package/dist/lib/generic/base-resource-component.js +0 -75
  57. package/dist/lib/generic/dynamic-chart.d.ts +0 -33
  58. package/dist/lib/generic/dynamic-chart.js +0 -252
  59. package/dist/lib/generic/dynamic-grid.d.ts +0 -25
  60. package/dist/lib/generic/dynamic-grid.js +0 -142
  61. package/dist/lib/generic/dynamic-report.d.ts +0 -38
  62. package/dist/lib/generic/dynamic-report.js +0 -405
  63. package/dist/lib/generic-browser-list/components/resource/resource.d.ts +0 -1
  64. package/dist/lib/generic-browser-list/components/resource/resource.d.ts.map +0 -1
  65. package/dist/lib/generic-browser-list/components/resource/resource.js +0 -1
  66. package/dist/lib/settings/settings.component.d.ts +0 -8
  67. package/dist/lib/settings/settings.component.d.ts.map +0 -1
  68. package/dist/lib/settings/settings.component.js +0 -64
  69. package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts +0 -72
  70. package/dist/lib/user-view-properties/view-properties-dialog.component.d.ts.map +0 -1
  71. package/dist/lib/user-view-properties/view-properties-dialog.component.js +0 -605
  72. package/dist/shared/shared.service.d.ts +0 -94
  73. package/dist/shared/shared.service.js +0 -324
  74. package/dist/shared/urlPipe.d.ts +0 -7
  75. package/dist/shared/urlPipe.js +0 -16
@@ -1,605 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
11
- import { Metadata } from "@memberjunction/core";
12
- import { BaseFormComponent } from '@memberjunction/ng-base-forms';
13
- import { ResourceData } from '@memberjunction/ng-shared';
14
- import { WindowComponent } from '@progress/kendo-angular-dialog';
15
- import { TabComponent } from '@progress/kendo-angular-layout';
16
- import { MJEventType, MJGlobal } from '@memberjunction/global';
17
- import { EventCodes } from '@memberjunction/ng-shared';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/router";
20
- import * as i2 from "@memberjunction/ng-shared";
21
- import * as i3 from "@angular/forms";
22
- import * as i4 from "@angular/common";
23
- import * as i5 from "@progress/kendo-angular-dialog";
24
- import * as i6 from "@progress/kendo-angular-buttons";
25
- import * as i7 from "@progress/kendo-angular-indicators";
26
- import * as i8 from "@progress/kendo-angular-layout";
27
- import * as i9 from "@progress/kendo-angular-inputs";
28
- import * as i10 from "@progress/kendo-angular-label";
29
- import * as i11 from "@progress/kendo-angular-icons";
30
- import * as i12 from "@memberjunction/ng-container-directives";
31
- import * as i13 from "@progress/kendo-angular-sortable";
32
- import * as i14 from "@progress/kendo-angular-filter";
33
- import * as i15 from "@progress/kendo-angular-dropdowns";
34
- const _c0 = ["nameField"];
35
- const _c1 = ["dialogContainer"];
36
- function ViewPropertiesDialogComponent_button_1_Template(rf, ctx) { if (rf & 1) {
37
- const _r4 = i0.ɵɵgetCurrentView();
38
- i0.ɵɵelementStart(0, "button", 3);
39
- i0.ɵɵlistener("click", function ViewPropertiesDialogComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.Open()); });
40
- i0.ɵɵelement(1, "kendo-svgicon", 4);
41
- i0.ɵɵtext(2, " Properties");
42
- i0.ɵɵelementEnd();
43
- } if (rf & 2) {
44
- const ctx_r0 = i0.ɵɵnextContext();
45
- i0.ɵɵadvance();
46
- i0.ɵɵproperty("icon", ctx_r0.sharedService.kendoSVGIcon("gear"));
47
- } }
48
- function ViewPropertiesDialogComponent_div_2_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵelement(0, "div", 5);
50
- } }
51
- function ViewPropertiesDialogComponent_kendo_window_3_kendo_loader_1_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelement(0, "kendo-loader", 20);
53
- } }
54
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template(rf, ctx) { if (rf & 1) {
55
- const _r14 = i0.ɵɵgetCurrentView();
56
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 22);
57
- i0.ɵɵelement(2, "kendo-label", 23);
58
- i0.ɵɵelementStart(3, "kendo-textbox", 24, 25);
59
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template_kendo_textbox_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r13.record.Name, $event) || (ctx_r13.record.Name = $event); return i0.ɵɵresetView($event); });
60
- i0.ɵɵelementEnd()();
61
- i0.ɵɵelementStart(5, "div", 26);
62
- i0.ɵɵelement(6, "kendo-label", 27);
63
- i0.ɵɵelementStart(7, "textarea", 28);
64
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r15.record.Description, $event) || (ctx_r15.record.Description = $event); return i0.ɵɵresetView($event); });
65
- i0.ɵɵelementEnd()()();
66
- } if (rf & 2) {
67
- const ctx_r7 = i0.ɵɵnextContext(2);
68
- i0.ɵɵadvance(3);
69
- i0.ɵɵtwoWayProperty("ngModel", ctx_r7.record.Name);
70
- i0.ɵɵadvance(4);
71
- i0.ɵɵtwoWayProperty("ngModel", ctx_r7.record.Description);
72
- } }
73
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_1_Template(rf, ctx) { if (rf & 1) {
74
- const _r19 = i0.ɵɵgetCurrentView();
75
- i0.ɵɵelementStart(0, "div", 30)(1, "div")(2, "input", 31);
76
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_1_Template_input_ngModelChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r19); const col_r17 = restoredCtx.item; i0.ɵɵtwoWayBindingSet(col_r17.hidden, $event) || (col_r17.hidden = $event); return i0.ɵɵresetView($event); });
77
- i0.ɵɵlistener("change", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_1_Template_input_change_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r19); const col_r17 = restoredCtx.item; const ctx_r20 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r20.toggleColumn(col_r17)); });
78
- i0.ɵɵelementEnd();
79
- i0.ɵɵelement(3, "kendo-label", 32);
80
- i0.ɵɵelementEnd();
81
- i0.ɵɵelement(4, "kendo-svgicon", 4);
82
- i0.ɵɵelementEnd();
83
- } if (rf & 2) {
84
- const col_r17 = ctx.item;
85
- const ctx_r16 = i0.ɵɵnextContext(3);
86
- i0.ɵɵadvance(2);
87
- i0.ɵɵpropertyInterpolate1("id", "column_", col_r17.ID, "");
88
- i0.ɵɵtwoWayProperty("ngModel", !col_r17.hidden);
89
- i0.ɵɵadvance();
90
- i0.ɵɵproperty("for", "column_" + col_r17.ID)("text", col_r17.DisplayName ? col_r17.DisplayName : col_r17.Name);
91
- i0.ɵɵadvance();
92
- i0.ɵɵproperty("icon", ctx_r16.sharedService.kendoSVGIcon("reorder"));
93
- } }
94
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_Template(rf, ctx) { if (rf & 1) {
95
- const _r22 = i0.ɵɵgetCurrentView();
96
- i0.ɵɵelementStart(0, "kendo-sortable", 29);
97
- i0.ɵɵlistener("dragEnd", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_Template_kendo_sortable_dragEnd_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onDragEnd($event)); });
98
- i0.ɵɵtemplate(1, ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_1_Template, 5, 5, "ng-template");
99
- i0.ɵɵelementEnd();
100
- } if (rf & 2) {
101
- const ctx_r8 = i0.ɵɵnextContext(2);
102
- i0.ɵɵproperty("kendoSortableBinding", ctx_r8.localGridState.columnSettings)("animation", true);
103
- } }
104
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_3_Template(rf, ctx) { if (rf & 1) {
105
- const _r26 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "div", 38)(1, "kendo-textarea", 39);
107
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_3_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r25.record.SmartFilterPrompt, $event) || (ctx_r25.record.SmartFilterPrompt = $event); return i0.ɵɵresetView($event); });
108
- i0.ɵɵelementEnd()();
109
- } if (rf & 2) {
110
- const ctx_r23 = i0.ɵɵnextContext(3);
111
- i0.ɵɵproperty("fillHeight", true);
112
- i0.ɵɵadvance();
113
- i0.ɵɵproperty("rows", 10);
114
- i0.ɵɵtwoWayProperty("ngModel", ctx_r23.record.SmartFilterPrompt);
115
- } }
116
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_4_Template(rf, ctx) { if (rf & 1) {
117
- const _r28 = i0.ɵɵgetCurrentView();
118
- i0.ɵɵelementStart(0, "div")(1, "kendo-filter", 40);
119
- i0.ɵɵlistener("valueChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_4_Template_kendo_filter_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.onFilterChange($event)); });
120
- i0.ɵɵelementEnd()();
121
- } if (rf & 2) {
122
- const ctx_r24 = i0.ɵɵnextContext(3);
123
- i0.ɵɵadvance();
124
- i0.ɵɵproperty("filters", ctx_r24.ViewEntityInfo.Fields.map(ctx_r24.toKendoFilterField))("value", ctx_r24.defaultFilterState);
125
- } }
126
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template(rf, ctx) { if (rf & 1) {
127
- const _r30 = i0.ɵɵgetCurrentView();
128
- i0.ɵɵelementStart(0, "div", 33);
129
- i0.ɵɵelement(1, "kendo-label", 34);
130
- i0.ɵɵelementStart(2, "kendo-switch", 35);
131
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template_kendo_switch_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r29.record.SmartFilterEnabled, $event) || (ctx_r29.record.SmartFilterEnabled = $event); return i0.ɵɵresetView($event); });
132
- i0.ɵɵelementEnd()();
133
- i0.ɵɵtemplate(3, ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_3_Template, 2, 3, "div", 36)(4, ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_4_Template, 2, 2, "div", 37);
134
- } if (rf & 2) {
135
- const ctx_r9 = i0.ɵɵnextContext(2);
136
- i0.ɵɵadvance(2);
137
- i0.ɵɵtwoWayProperty("ngModel", ctx_r9.record.SmartFilterEnabled);
138
- i0.ɵɵadvance();
139
- i0.ɵɵproperty("ngIf", ctx_r9.record.SmartFilterEnabled);
140
- i0.ɵɵadvance();
141
- i0.ɵɵproperty("ngIf", !ctx_r9.record.SmartFilterEnabled);
142
- } }
143
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template(rf, ctx) { if (rf & 1) {
144
- const _r34 = i0.ɵɵgetCurrentView();
145
- i0.ɵɵelementStart(0, "div")(1, "kendo-dropdownlist", 44);
146
- i0.ɵɵlistener("valueChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template_kendo_dropdownlist_valueChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r34); const s_r32 = restoredCtx.$implicit; const ctx_r33 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r33.sortColumnValueChange(s_r32, $event)); });
147
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template_kendo_dropdownlist_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r34); const s_r32 = restoredCtx.$implicit; i0.ɵɵtwoWayBindingSet(s_r32.field, $event) || (s_r32.field = $event); return i0.ɵɵresetView($event); });
148
- i0.ɵɵelementEnd();
149
- i0.ɵɵelementStart(2, "kendo-dropdownlist", 45);
150
- i0.ɵɵlistener("valueChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template_kendo_dropdownlist_valueChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r34); const s_r32 = restoredCtx.$implicit; const ctx_r36 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r36.sortDirectionValueChange(s_r32, $event)); });
151
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r34); const s_r32 = restoredCtx.$implicit; i0.ɵɵtwoWayBindingSet(s_r32.direction, $event) || (s_r32.direction = $event); return i0.ɵɵresetView($event); });
152
- i0.ɵɵelementEnd();
153
- i0.ɵɵelementStart(3, "button", 42);
154
- i0.ɵɵlistener("click", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template_button_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r34); const s_r32 = restoredCtx.$implicit; const ctx_r38 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r38.removeSort(s_r32)); });
155
- i0.ɵɵelement(4, "kendo-svgicon", 4);
156
- i0.ɵɵelementEnd()();
157
- } if (rf & 2) {
158
- const s_r32 = ctx.$implicit;
159
- const ctx_r31 = i0.ɵɵnextContext(3);
160
- i0.ɵɵadvance();
161
- i0.ɵɵproperty("data", ctx_r31.sortFields);
162
- i0.ɵɵtwoWayProperty("ngModel", s_r32.field);
163
- i0.ɵɵadvance();
164
- i0.ɵɵproperty("data", ctx_r31.sortDirections);
165
- i0.ɵɵtwoWayProperty("ngModel", s_r32.direction);
166
- i0.ɵɵadvance(2);
167
- i0.ɵɵproperty("icon", ctx_r31.sharedService.kendoSVGIcon("sortClear"));
168
- } }
169
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_Template(rf, ctx) { if (rf & 1) {
170
- const _r40 = i0.ɵɵgetCurrentView();
171
- i0.ɵɵelementStart(0, "div", 41)(1, "button", 42);
172
- i0.ɵɵlistener("click", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r39.addSort()); });
173
- i0.ɵɵelement(2, "kendo-svgicon", 4);
174
- i0.ɵɵelementEnd()();
175
- i0.ɵɵtemplate(3, ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template, 5, 5, "div", 43);
176
- } if (rf & 2) {
177
- const ctx_r10 = i0.ɵɵnextContext(2);
178
- i0.ɵɵadvance(2);
179
- i0.ɵɵproperty("icon", ctx_r10.sharedService.kendoSVGIcon("filterAddExpression"));
180
- i0.ɵɵadvance();
181
- i0.ɵɵproperty("ngForOf", ctx_r10.sortState);
182
- } }
183
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_0_Template(rf, ctx) { if (rf & 1) {
184
- const _r44 = i0.ɵɵgetCurrentView();
185
- i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 47);
186
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_0_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r43.record.SmartFilterExplanation, $event) || (ctx_r43.record.SmartFilterExplanation = $event); return i0.ɵɵresetView($event); });
187
- i0.ɵɵelementEnd();
188
- i0.ɵɵelementStart(2, "kendo-textarea", 47);
189
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_0_Template_kendo_textarea_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r45 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r45.record.SmartFilterWhereClause, $event) || (ctx_r45.record.SmartFilterWhereClause = $event); return i0.ɵɵresetView($event); });
190
- i0.ɵɵelementEnd()();
191
- } if (rf & 2) {
192
- const ctx_r41 = i0.ɵɵnextContext(3);
193
- i0.ɵɵadvance();
194
- i0.ɵɵproperty("readonly", true)("rows", 5);
195
- i0.ɵɵtwoWayProperty("ngModel", ctx_r41.record.SmartFilterExplanation);
196
- i0.ɵɵadvance();
197
- i0.ɵɵproperty("readonly", true)("rows", 5);
198
- i0.ɵɵtwoWayProperty("ngModel", ctx_r41.record.SmartFilterWhereClause);
199
- } }
200
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_1_Template(rf, ctx) { if (rf & 1) {
201
- const _r47 = i0.ɵɵgetCurrentView();
202
- i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 47);
203
- i0.ɵɵtwoWayListener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_1_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r46.record.WhereClause, $event) || (ctx_r46.record.WhereClause = $event); return i0.ɵɵresetView($event); });
204
- i0.ɵɵelementEnd()();
205
- } if (rf & 2) {
206
- const ctx_r42 = i0.ɵɵnextContext(3);
207
- i0.ɵɵadvance();
208
- i0.ɵɵproperty("readonly", true)("rows", 7);
209
- i0.ɵɵtwoWayProperty("ngModel", ctx_r42.record.WhereClause);
210
- } }
211
- function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_Template(rf, ctx) { if (rf & 1) {
212
- i0.ɵɵtemplate(0, ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_0_Template, 3, 6, "div", 37)(1, ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_1_Template, 2, 3, "div", 46);
213
- } if (rf & 2) {
214
- const ctx_r11 = i0.ɵɵnextContext(2);
215
- i0.ɵɵproperty("ngIf", ctx_r11.record.SmartFilterEnabled);
216
- } }
217
- function ViewPropertiesDialogComponent_kendo_window_3_Template(rf, ctx) { if (rf & 1) {
218
- const _r49 = i0.ɵɵgetCurrentView();
219
- i0.ɵɵelementStart(0, "kendo-window", 6);
220
- i0.ɵɵlistener("close", function ViewPropertiesDialogComponent_kendo_window_3_Template_kendo_window_close_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.closePropertiesDialog()); })("resizeEnd", function ViewPropertiesDialogComponent_kendo_window_3_Template_kendo_window_resizeEnd_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r50 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r50.ResizeTab()); })("heightChange", function ViewPropertiesDialogComponent_kendo_window_3_Template_kendo_window_heightChange_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r51 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r51.ResizeTab()); })("widthChange", function ViewPropertiesDialogComponent_kendo_window_3_Template_kendo_window_widthChange_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r52 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r52.ResizeTab()); });
221
- i0.ɵɵtemplate(1, ViewPropertiesDialogComponent_kendo_window_3_kendo_loader_1_Template, 1, 0, "kendo-loader", 7);
222
- i0.ɵɵelementStart(2, "div", 8, 9)(4, "div")(5, "kendo-tabstrip", 10)(6, "kendo-tabstrip-tab", 11);
223
- i0.ɵɵtemplate(7, ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template, 8, 2, "ng-template", 12);
224
- i0.ɵɵelementEnd();
225
- i0.ɵɵelementStart(8, "kendo-tabstrip-tab", 13);
226
- i0.ɵɵtemplate(9, ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_Template, 2, 2, "ng-template", 12);
227
- i0.ɵɵelementEnd();
228
- i0.ɵɵelementStart(10, "kendo-tabstrip-tab", 14);
229
- i0.ɵɵtemplate(11, ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template, 5, 3, "ng-template", 12);
230
- i0.ɵɵelementEnd();
231
- i0.ɵɵelementStart(12, "kendo-tabstrip-tab", 15);
232
- i0.ɵɵtemplate(13, ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_Template, 4, 2, "ng-template", 12);
233
- i0.ɵɵelementEnd();
234
- i0.ɵɵelementStart(14, "kendo-tabstrip-tab", 16);
235
- i0.ɵɵtemplate(15, ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_Template, 2, 1, "ng-template", 12);
236
- i0.ɵɵelementEnd()();
237
- i0.ɵɵelementStart(16, "div", 17)(17, "button", 18);
238
- i0.ɵɵlistener("click", function ViewPropertiesDialogComponent_kendo_window_3_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r49); const ctx_r53 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r53.closePropertiesDialog()); });
239
- i0.ɵɵtext(18, "Cancel");
240
- i0.ɵɵelementEnd();
241
- i0.ɵɵelementStart(19, "button", 19);
242
- i0.ɵɵlistener("click", function ViewPropertiesDialogComponent_kendo_window_3_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r49); const ctx_r54 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r54.saveProperties()); });
243
- i0.ɵɵelement(20, "kendo-svgicon", 4);
244
- i0.ɵɵtext(21, " Save ");
245
- i0.ɵɵelementEnd()()()()();
246
- } if (rf & 2) {
247
- const ctx_r2 = i0.ɵɵnextContext();
248
- i0.ɵɵproperty("width", 668)("height", 525)("minHeight", 300)("minWidth", 400)("resizable", true);
249
- i0.ɵɵadvance();
250
- i0.ɵɵproperty("ngIf", ctx_r2.showloader);
251
- i0.ɵɵadvance(3);
252
- i0.ɵɵclassMap(ctx_r2.showloader ? "disabled-div" : "");
253
- i0.ɵɵadvance();
254
- i0.ɵɵproperty("keepTabContent", true)("animate", false)("height", ctx_r2.TabHeight);
255
- i0.ɵɵadvance();
256
- i0.ɵɵproperty("selected", true);
257
- i0.ɵɵadvance(14);
258
- i0.ɵɵproperty("icon", ctx_r2.sharedService.kendoSVGIcon("save"));
259
- } }
260
- export class ViewPropertiesDialogComponent extends BaseFormComponent {
261
- constructor(route, elRef, ss, formBuilder, router) {
262
- super(elRef, ss, router, route);
263
- this.route = route;
264
- this.elRef = elRef;
265
- this.ss = ss;
266
- this.formBuilder = formBuilder;
267
- this.router = router;
268
- this.ShowPropertiesButton = true;
269
- this.dialogClosed = new EventEmitter();
270
- this.isDialogOpened = false;
271
- this.showloader = true;
272
- // public localViewColumns: ViewColumnInfo[] = [];
273
- this.localGridState = {};
274
- this.localFilterState = {};
275
- this.defaultFilterState = {};
276
- this.usedFields = new Set(); // Track used fields
277
- this.sortFields = [];
278
- this.sortState = [];
279
- this.sortDirections = [
280
- { Name: 'Up', Value: 'asc' },
281
- { Name: 'Down', Value: 'desc' }
282
- ];
283
- this.defaultOperators = {
284
- string: ["contains", "doesnotcontain", "eq", "neq", "startswith", "endswith", "isnull", "isnotnull", "isempty", "isnotempty"],
285
- number: ["neq", "eq", "gte", "gt", "lte", "lt", "isnull", "isnotnull"],
286
- date: ["neq", "eq", "gte", "gt", "lte", "lt", "isnull", "isnotnull"],
287
- boolean: ["eq", "neq"]
288
- };
289
- this.toKendoFilterField = ({ DisplayName, Name, Type, }) => {
290
- return Object.assign({ field: Name, title: DisplayName !== null && DisplayName !== void 0 ? DisplayName : Name }, this.getFilterTypeAndOperators(this.toKendoFieldType(Type)));
291
- };
292
- this.toKendoFieldType = (entityFieldType) => {
293
- if (entityFieldType) {
294
- return ['int', 'money', 'decimal', 'smallint', 'bigint'].includes(entityFieldType)
295
- ? 'numeric'
296
- : ['nchar', 'char', 'nvarchar'].includes(entityFieldType)
297
- ? 'text'
298
- : ['tinyint', 'bit'].includes(entityFieldType)
299
- ? 'boolean'
300
- : ['datetimeoffset', 'datetime'].includes(entityFieldType)
301
- ? 'date'
302
- : 'string';
303
- }
304
- else {
305
- return 'string';
306
- }
307
- };
308
- this.getFilterTypeAndOperators = (kendoFieldType = '') => {
309
- switch (kendoFieldType) {
310
- case 'numeric':
311
- return { editor: 'number', operators: this.defaultOperators.number };
312
- case 'text':
313
- return { editor: 'string', operators: this.defaultOperators.string };
314
- case 'boolean':
315
- return { editor: 'boolean', operators: this.defaultOperators.boolean };
316
- case 'date':
317
- return { editor: 'date', operators: this.defaultOperators.date };
318
- default:
319
- return { editor: 'string', operators: this.defaultOperators.string };
320
- }
321
- };
322
- this.BottomMargin = 75;
323
- }
324
- onKeyPress(event) {
325
- if (event.key === 'Enter') {
326
- this.saveProperties();
327
- }
328
- }
329
- GetTabTopPosition() {
330
- return 50; // for this dialog, we don't want to offset the tab position related to where it is on the page, this is relative to top of dialog
331
- }
332
- CreateView(entityName) {
333
- this.EntityName = entityName;
334
- this.ViewID = undefined;
335
- this.Open();
336
- }
337
- Open(ViewID = this.ViewID) {
338
- return __awaiter(this, void 0, void 0, function* () {
339
- this.ViewID = ViewID;
340
- yield this.Load();
341
- this.isDialogOpened = true; // binding causes the kendo window to open from this method call
342
- });
343
- }
344
- Load() {
345
- return __awaiter(this, void 0, void 0, function* () {
346
- const md = new Metadata();
347
- this.record = (yield md.GetEntityObject('User Views'));
348
- if (this.ViewID) {
349
- // load the view
350
- yield this.record.Load(this.ViewID);
351
- }
352
- else if (this.EntityName) {
353
- // We don't have a View ID, we are creating a NEW view, so do NewRecord()
354
- this.record.NewRecord();
355
- const e = md.Entities.find(e => e.Name == this.EntityName);
356
- if (e) {
357
- this.record.SetDefaultsFromEntity(e);
358
- console.log("e found: ", e);
359
- }
360
- else {
361
- throw new Error(`Entity ${this.EntityName} not found in metadata`);
362
- }
363
- }
364
- // now we load up the columns
365
- this.FinishLoad(md);
366
- this.showloader = false;
367
- setTimeout(() => {
368
- this.ResizeTab();
369
- }, 200);
370
- });
371
- }
372
- closePropertiesDialog() {
373
- this.dialogClosed.emit({});
374
- this.isDialogOpened = false; // binding causes the kendo window to close from this method call
375
- if (this.keyPressListener) { // removing the keypress listener when the dialog closes
376
- this.dialogContainer.nativeElement.removeEventListener('keypress', this.keyPressListener);
377
- }
378
- }
379
- FinishLoad(md) {
380
- return __awaiter(this, void 0, void 0, function* () {
381
- this.ViewEntityInfo = md.Entities.find(e => e.ID == this.record.EntityID);
382
- // using all these local variables because the VSCode debugger doesn't know what "this" is all of a sudden
383
- if (!this.ViewEntityInfo)
384
- throw new Error(`Entity ${this.record.EntityID} not found in metadata`);
385
- // prepare the sorting state
386
- this.sortFields = this.ViewEntityInfo.Fields;
387
- if (this.record.SortState === null || this.record.SortState === undefined || this.record.SortState.trim().length === 0)
388
- this.sortState = [];
389
- else
390
- this.sortState = JSON.parse(this.record.SortState);
391
- // now translate the sortState into the UI format by swapping out the primitve field names and sort direction with the data objects that the kendo ui will bind to
392
- this.sortState = this.sortState.map((s) => {
393
- var _a;
394
- let dir;
395
- if (typeof s.direction === 'string') {
396
- dir = s.direction;
397
- }
398
- else if (typeof s.direction === 'number' && s.direction === 1) { // some legacy views have 1 and 2 for asc and desc
399
- dir = 'asc';
400
- }
401
- else if (typeof s.direction === 'number' && s.direction === 2) {
402
- dir = 'desc';
403
- }
404
- else {
405
- dir = '';
406
- }
407
- return {
408
- field: (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.find((f) => f.Name === s.field),
409
- direction: this.sortDirections.find((d) => d.Value.trim().toLowerCase() === dir)
410
- };
411
- });
412
- this.localGridState = JSON.parse(this.record.GridState);
413
- const temp = this.localGridState;
414
- this.localFilterState = JSON.parse(this.record.FilterState);
415
- this.defaultFilterState = this.localFilterState; // adding a duplicate filter state for populating the default filter state
416
- this.appendUnusedColumnsToColumnSettings(this.localGridState);
417
- this.localGridState.columnSettings.sort((a, b) => {
418
- if (a.hidden && !b.hidden)
419
- return 1;
420
- if (!a.hidden && b.hidden)
421
- return -1;
422
- // if we get here, they're both hidden, or both not hidden, so sort by orderIndex
423
- return a.orderIndex - b.orderIndex;
424
- });
425
- setTimeout(() => {
426
- this.keyPressListener = this.onKeyPress.bind(this);
427
- this.dialogContainer.nativeElement.addEventListener('keypress', this.onKeyPress.bind(this));
428
- this.nameField.focus();
429
- }, 200);
430
- });
431
- }
432
- appendUnusedColumnsToColumnSettings(gridState) {
433
- var _a;
434
- // we go through our EntityFields and add any that aren't already in the columnSettings
435
- // this is so that we can add new columns to the view that were not previously used in this view
436
- const unusedFields = (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.filter(f => {
437
- if (gridState.columnSettings.find((col) => col.Name.trim().toLowerCase() === f.Name.trim().toLowerCase()))
438
- return false; // this entity field is already in the columnSettings
439
- else
440
- return true; // this entity field is not in the columnSettings
441
- });
442
- // now we add the unused fields to the columnSettings
443
- unusedFields === null || unusedFields === void 0 ? void 0 : unusedFields.forEach((f) => {
444
- gridState.columnSettings.push({
445
- ID: f.ID,
446
- DisplayName: f.DisplayName,
447
- Name: f.Name,
448
- orderIndex: gridState.columnSettings.length,
449
- width: f.DefaultColumnWidth ? f.DefaultColumnWidth : 100,
450
- EntityField: f,
451
- hidden: true
452
- });
453
- });
454
- }
455
- onDragEnd(e) {
456
- if (e.index >= 0) {
457
- // const column = this.localViewColumns[e.index];
458
- if (this.localGridState) {
459
- const lvc = this.localGridState.columnSettings;
460
- for (let i = 0; i < lvc.length; i++) {
461
- const col = lvc[i];
462
- col.orderIndex = i; // the orderIndex inside the column is what is actually used to drive this, the order in the ARRAY gets updated by KendoSortable but orderIndex isn't automatically updated
463
- }
464
- this.updateRecordGridState();
465
- }
466
- }
467
- }
468
- updateRecordGridState() {
469
- const temp = JSON.stringify(this.localGridState);
470
- const tempO = JSON.parse(temp); // make sure we have a clean object that is NOT linked in memory to the localGridState
471
- // now strip the EntityField from the columnSettings in the tempO object
472
- tempO.columnSettings.forEach((col) => {
473
- delete col.EntityField;
474
- });
475
- this.record.GridState = JSON.stringify(tempO); // stringify the state into the record
476
- }
477
- onFilterChange(value) {
478
- this.localFilterState = value;
479
- }
480
- toggleColumn(column) {
481
- return __awaiter(this, void 0, void 0, function* () {
482
- column.hidden = !column.hidden; // do the toggle
483
- if (this.localGridState)
484
- this.updateRecordGridState();
485
- });
486
- }
487
- saveProperties() {
488
- return __awaiter(this, void 0, void 0, function* () {
489
- const bNewRecord = !(this.record.PrimaryKey.Value);
490
- this.showloader = true;
491
- const lfs = JSON.stringify(this.localFilterState);
492
- this.record.FilterState = JSON.stringify(this.localFilterState); // pass this along as as string, not directly bound since Kendo Filter is bound to a local object we need to translate to a string
493
- // need to convert the UI format to the data format.
494
- const sortMap = this.sortState.map((s) => {
495
- return {
496
- field: s.field.Name,
497
- direction: s.direction.Value
498
- };
499
- });
500
- this.record.SortState = JSON.stringify(sortMap);
501
- // validate the record first
502
- const rec = this.record;
503
- const valResults = this.record.Validate();
504
- if (valResults.Success === false) {
505
- this.showloader = false;
506
- this.sharedService.CreateSimpleNotification('Validation Errors: ' + valResults.Errors.map((e) => e.Message).join('\n'), 'warning', 7500);
507
- }
508
- else if (yield this.record.Save()) {
509
- this.dialogClosed.emit({ Saved: true, ViewEntity: this.record });
510
- this.isDialogOpened = false; // close the kendo window - this works through ngIf binding
511
- this.showloader = false;
512
- if (!bNewRecord) // view already exists so we're not changing the route as it is alreayd on the view, but we fire an event to let people know that it's changed
513
- MJGlobal.Instance.RaiseEvent({
514
- event: MJEventType.ComponentEvent,
515
- eventCode: EventCodes.ViewUpdated,
516
- args: new ResourceData({
517
- ResourceTypeID: this.sharedService.ViewResourceType.ID,
518
- ResourceRecordID: this.record.PrimaryKey.Value,
519
- Configuration: {
520
- ViewEntity: this.record
521
- }
522
- }),
523
- component: this
524
- });
525
- else
526
- // we route to the new view using the router
527
- this.router.navigate(['resource', 'view', this.record.PrimaryKey.Value]);
528
- }
529
- else {
530
- // it failed, so don't close the dialog
531
- this.showloader = false;
532
- this.sharedService.CreateSimpleNotification('Saving the view failed, please try again and if this persists contact your administrator.', 'error', 5000);
533
- }
534
- });
535
- }
536
- get ContainerObjectHeight() {
537
- if (this.kendoWindow)
538
- return this.kendoWindow.height;
539
- else
540
- return 0;
541
- }
542
- addSort() {
543
- var _a;
544
- this.sortState = this.sortState.concat({ field: (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields[0], direction: this.sortDirections[0] }); // add a new sort item
545
- }
546
- removeSort(item) {
547
- this.sortState = this.sortState.filter((i) => i !== item);
548
- }
549
- sortColumnValueChange(sortItem, newValue) {
550
- const idx = this.sortState.findIndex((i) => i === sortItem);
551
- console.log(this.sortState);
552
- console.log(newValue);
553
- }
554
- sortDirectionValueChange(sortItem, newValue) {
555
- }
556
- }
557
- ViewPropertiesDialogComponent.ɵfac = function ViewPropertiesDialogComponent_Factory(t) { return new (t || ViewPropertiesDialogComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.SharedService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(i1.Router)); };
558
- ViewPropertiesDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ViewPropertiesDialogComponent, selectors: [["app-view-properties-dialog"]], viewQuery: function ViewPropertiesDialogComponent_Query(rf, ctx) { if (rf & 1) {
559
- i0.ɵɵviewQuery(WindowComponent, 5);
560
- i0.ɵɵviewQuery(TabComponent, 5);
561
- i0.ɵɵviewQuery(_c0, 5);
562
- i0.ɵɵviewQuery(_c1, 5);
563
- } if (rf & 2) {
564
- let _t;
565
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoWindow = _t.first);
566
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoTab = _t.first);
567
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nameField = _t.first);
568
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dialogContainer = _t.first);
569
- } }, inputs: { ViewID: "ViewID", EntityName: "EntityName", ShowPropertiesButton: "ShowPropertiesButton" }, outputs: { dialogClosed: "dialogClosed" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [["kendoButton", "", "themeColor", "info", "class", "view-properties-button", 3, "click", 4, "ngIf"], ["class", "k-overlay", 4, "ngIf"], ["title", "View Properties", 3, "width", "height", "minHeight", "minWidth", "resizable", "close", "resizeEnd", "heightChange", "widthChange", 4, "ngIf"], ["kendoButton", "", "themeColor", "info", 1, "view-properties-button", 3, "click"], [3, "icon"], [1, "k-overlay"], ["title", "View Properties", 3, "width", "height", "minHeight", "minWidth", "resizable", "close", "resizeEnd", "heightChange", "widthChange"], ["type", "converging-spinner", 4, "ngIf"], [1, "k-d-flex", "k-flex-col", "k-justify-content-between", "k-h-full"], ["dialogContainer", ""], [1, "popup-content", 3, "keepTabContent", "animate", "height"], ["title", "General", 3, "selected"], ["kendoTabContent", ""], ["title", "Fields"], ["title", "Filters"], ["title", "Sorting"], ["title", "Advanced"], [1, "k-actions", "k-actions-end", "customBtn", "popup-actions"], ["fillMode", "outline", "themeColor", "info", "kendoButton", "", 3, "click"], ["kendoButton", "", "themeColor", "info", 3, "click"], ["type", "converging-spinner"], [1, "view-prop-tab-contents"], [1, "form-group"], ["text", "Name", 1, "k-form-label"], [1, "view-name", 3, "ngModel", "ngModelChange"], ["nameField", ""], [1, "form-group", "form-group-description"], ["text", "Description", 1, "k-form-label"], [1, "k-input", "k-input-solid", "view-description", 3, "ngModel", "ngModelChange"], ["itemClass", "item", "activeItemClass", "item active", 3, "kendoSortableBinding", "animation", "dragEnd"], [1, "item-content"], ["type", "checkbox", "kendoCheckBox", "", 3, "ngModel", "id", "ngModelChange", "change"], [1, "k-checkbox-label", 3, "for", "text"], [1, "smart-filter-container"], ["text", "Smart Filter", 1, "smart-filter-label"], [3, "ngModel", "ngModelChange"], ["class", "smart-filter-prompt", "mjFillContainer", "", 3, "fillHeight", 4, "ngIf"], [4, "ngIf"], ["mjFillContainer", "", 1, "smart-filter-prompt", 3, "fillHeight"], ["placeholder", "Describe how you would like the data filtered", "resizable", "vertical", 3, "rows", "ngModel", "ngModelChange"], [3, "filters", "value", "valueChange"], [1, "sort-header"], ["kendoButton", "", 3, "click"], [4, "ngFor", "ngForOf"], ["textField", "Name", "valueField", "Name", 1, "sort-column", 3, "data", "ngModel", "valueChange", "ngModelChange"], ["textField", "Name", "valueField", "Value", 1, "sort-direction", 3, "data", "ngModel", "valueChange", "ngModelChange"], [4, "ngElse"], ["resizable", "vertical", 1, "advanced-tab-details", 3, "readonly", "rows", "ngModel", "ngModelChange"]], template: function ViewPropertiesDialogComponent_Template(rf, ctx) { if (rf & 1) {
570
- i0.ɵɵelementStart(0, "div");
571
- i0.ɵɵtemplate(1, ViewPropertiesDialogComponent_button_1_Template, 3, 1, "button", 0)(2, ViewPropertiesDialogComponent_div_2_Template, 1, 0, "div", 1)(3, ViewPropertiesDialogComponent_kendo_window_3_Template, 22, 13, "kendo-window", 2);
572
- i0.ɵɵelementEnd();
573
- } if (rf & 2) {
574
- i0.ɵɵadvance();
575
- i0.ɵɵproperty("ngIf", ctx.ShowPropertiesButton);
576
- i0.ɵɵadvance();
577
- i0.ɵɵproperty("ngIf", ctx.isDialogOpened);
578
- i0.ɵɵadvance();
579
- i0.ɵɵproperty("ngIf", ctx.isDialogOpened);
580
- } }, dependencies: [i4.NgForOf, i4.NgIf, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.NgControlStatus, i3.NgModel, i5.WindowComponent, i6.ButtonComponent, i7.LoaderComponent, i8.TabStripComponent, i8.TabStripTabComponent, i8.TabContentDirective, i9.TextAreaComponent, i9.TextBoxComponent, i9.SwitchComponent, i9.CheckBoxDirective, i10.LabelComponent, i11.SVGIconComponent, i12.FillContainer, i13.SortableComponent, i13.SortableBindingDirective, i14.FilterComponent, i15.DropDownListComponent], styles: [".view-properties-button[_ngcontent-%COMP%] {\r\n margin-left: 0px;\r\n}\r\n.view-prop-tab-contents[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%; \n\r\n}\r\n\r\n.form-group[_ngcontent-%COMP%] {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.form-group-description[_ngcontent-%COMP%] {\r\n flex-grow: 1;\r\n}\r\n\r\n.k-form-label[_ngcontent-%COMP%] {\r\n width: 150px; \n\r\n margin-right: 10px;\r\n}\r\n\r\n.view-description[_ngcontent-%COMP%] {\r\n flex-grow: 1;\r\n height: 100%;\r\n padding: 5px;\r\n resize: none;\r\n}\r\n\r\n\r\n\r\n.item-content[_ngcontent-%COMP%] {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.popup-content[_ngcontent-%COMP%] {\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.popup-actions[_ngcontent-%COMP%] {\r\n padding: 16px 0 0;\r\n}\r\n\r\n.view-prop-tab-contents[_ngcontent-%COMP%] {\r\n overflow: hidden;\r\n}\r\n\r\n.sort-column[_ngcontent-%COMP%] {\r\n width: 300px;\r\n}\r\n\r\n.sort-direction[_ngcontent-%COMP%] {\r\n width: 125px;\r\n}\r\n\r\n.sort-header[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n width: 75px;\r\n}\r\n\r\n.smart-filter-label[_ngcontent-%COMP%] {\r\n margin-right: 10px;\r\n}\r\n\r\n.smart-filter-prompt[_ngcontent-%COMP%] {\r\n margin-top: 15px;\r\n}\r\n\r\n.advanced-tab-details[_ngcontent-%COMP%]\r\n{\r\n margin-bottom: 10px;\r\n}\r\n .customBtn button {\r\n flex: 1;\r\n border-radius: 10px;\r\n line-height: 34px;\r\n}\r\n .popup-content .k-tabstrip-items-wrapper {\r\n background: var(--white-color) !important;\r\n padding-left: 0 !important;\r\n}\r\n .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item.k-active {\r\n border-bottom: 3px solid var(--border-blue) !important;\r\n}\r\n .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item {\r\n background: var(--white-color) !important;\r\n border-right: 0 !important;\r\n}"] });
581
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ViewPropertiesDialogComponent, [{
582
- type: Component,
583
- args: [{ selector: 'app-view-properties-dialog', template: "<div>\r\n <button *ngIf=\"ShowPropertiesButton\"\r\n kendoButton\r\n themeColor=\"info\"\r\n (click)=\"this.Open()\"\r\n class=\"view-properties-button\"\r\n >\r\n <kendo-svgicon [icon]=\"sharedService.kendoSVGIcon('gear')\"></kendo-svgicon>\r\n Properties</button>\r\n <div class=\"k-overlay\" *ngIf=\"isDialogOpened\"></div>\r\n <kendo-window\r\n [width]=\"668\"\r\n [height]=\"525\"\r\n [minHeight]=\"300\"\r\n [minWidth]=\"400\"\r\n [resizable]=\"true\"\r\n title=\"View Properties\"\r\n *ngIf=\"isDialogOpened\"\r\n (close)=\"closePropertiesDialog()\"\r\n (resizeEnd)=\"this.ResizeTab()\"\r\n (heightChange)=\"this.ResizeTab()\"\r\n (widthChange)=\"this.ResizeTab()\"\r\n >\r\n <kendo-loader *ngIf=\"showloader\" type=\"converging-spinner\" ></kendo-loader>\r\n <div class=\"k-d-flex k-flex-col k-justify-content-between k-h-full\" #dialogContainer>\r\n <div [class]=\"showloader ? 'disabled-div' : ''\">\r\n <kendo-tabstrip class=\"popup-content\" [keepTabContent]=\"true\" [animate] = \"false\" [height]=\"TabHeight\" >\r\n\r\n <kendo-tabstrip-tab title=\"General\" [selected]=\"true\">\r\n <ng-template kendoTabContent>\r\n <div class=\"view-prop-tab-contents\">\r\n <div class=\"form-group\">\r\n <kendo-label class=\"k-form-label\" text=\"Name\"></kendo-label>\r\n <kendo-textbox #nameField class=\"view-name\" [(ngModel)]=\"record.Name\"></kendo-textbox>\r\n </div>\r\n <div class=\"form-group form-group-description\">\r\n <kendo-label class=\"k-form-label\" text=\"Description\"></kendo-label>\r\n <textarea class=\"k-input k-input-solid view-description\" [(ngModel)]=\"record.Description\"></textarea>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Fields\">\r\n <ng-template kendoTabContent>\r\n \r\n <kendo-sortable\r\n [kendoSortableBinding]=\"this.localGridState.columnSettings\"\r\n [animation]=\"true\"\r\n itemClass=\"item\"\r\n activeItemClass=\"item active\"\r\n (dragEnd)=\"onDragEnd($event)\"\r\n >\r\n <ng-template let-col=\"item\">\r\n <div class=\"item-content\">\r\n <div>\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"!col.hidden\"\r\n id=\"column_{{col.ID}}\"\r\n kendoCheckBox\r\n (change)=\"toggleColumn(col)\"\r\n />\r\n <kendo-label\r\n [for]=\"'column_'+col.ID\"\r\n [text]=\"col.DisplayName ? col.DisplayName : col.Name\"\r\n class=\"k-checkbox-label\"\r\n ></kendo-label>\r\n </div>\r\n <kendo-svgicon [icon]=\"sharedService.kendoSVGIcon('reorder')\"></kendo-svgicon>\r\n </div>\r\n </ng-template>\r\n </kendo-sortable>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n \r\n <kendo-tabstrip-tab title=\"Filters\">\r\n <ng-template kendoTabContent>\r\n <div class=\"smart-filter-container\">\r\n <kendo-label text=\"Smart Filter\" class=\"smart-filter-label\"></kendo-label>\r\n <kendo-switch [(ngModel)]=\"record.SmartFilterEnabled\"></kendo-switch>\r\n </div>\r\n <div *ngIf=\"record.SmartFilterEnabled\" class=\"smart-filter-prompt\" mjFillContainer [fillHeight]=\"true\">\r\n <kendo-textarea\r\n placeholder=\"Describe how you would like the data filtered\"\r\n [rows]=\"10\"\r\n [(ngModel)]=\"record.SmartFilterPrompt\"\r\n resizable=\"vertical\"\r\n ></kendo-textarea>\r\n </div>\r\n <div *ngIf=\"!record.SmartFilterEnabled\">\r\n <kendo-filter\r\n [filters]=\"ViewEntityInfo!.Fields.map(toKendoFilterField)\"\r\n [value]=\"defaultFilterState\"\r\n (valueChange)=\"onFilterChange($event)\"\r\n >\r\n </kendo-filter>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Sorting\">\r\n <ng-template kendoTabContent>\r\n <div class=\"sort-header\">\r\n <button kendoButton (click)=\"addSort()\">\r\n <kendo-svgicon [icon]=\"sharedService.kendoSVGIcon('filterAddExpression')\"></kendo-svgicon>\r\n </button>\r\n \r\n </div>\r\n <div *ngFor=\"let s of this.sortState\"> \r\n <kendo-dropdownlist \r\n class=\"sort-column\"\r\n [data]=\"sortFields\"\r\n textField=\"Name\"\r\n valueField=\"Name\"\r\n (valueChange)=\"sortColumnValueChange(s, $event)\"\r\n [(ngModel)]=\"s.field\"\r\n >\r\n </kendo-dropdownlist>\r\n <kendo-dropdownlist\r\n class=\"sort-direction\"\r\n [data]=\"sortDirections\"\r\n textField=\"Name\"\r\n valueField=\"Value\"\r\n (valueChange)=\"sortDirectionValueChange(s, $event)\"\r\n [(ngModel)]=\"s.direction\"\r\n >\r\n </kendo-dropdownlist>\r\n <button kendoButton (click)=\"removeSort(s)\"><kendo-svgicon [icon]=\"sharedService.kendoSVGIcon('sortClear')\"></kendo-svgicon></button>\r\n </div> \r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n <kendo-tabstrip-tab title=\"Advanced\">\r\n <ng-template kendoTabContent>\r\n <div *ngIf=\"record.SmartFilterEnabled\">\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterExplanation\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"5\"\r\n [(ngModel)]=\"record.SmartFilterWhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea> \r\n </div>\r\n <div *ngElse>\r\n <kendo-textarea\r\n [readonly]=\"true\"\r\n [rows]=\"7\"\r\n [(ngModel)]=\"record.WhereClause\"\r\n resizable=\"vertical\"\r\n class=\"advanced-tab-details\"\r\n ></kendo-textarea>\r\n </div>\r\n\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n\r\n </kendo-tabstrip>\r\n \r\n <div class=\"k-actions k-actions-end customBtn popup-actions\">\r\n <button fillMode=\"outline\" themeColor=\"info\" kendoButton (click)=\"closePropertiesDialog()\">Cancel</button>\r\n <button kendoButton (click)=\"saveProperties()\" themeColor=\"info\">\r\n <kendo-svgicon [icon]=\"sharedService.kendoSVGIcon('save')\"></kendo-svgicon>\r\n Save\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </kendo-window>\r\n</div>\r\n", styles: [".view-properties-button {\r\n margin-left: 0px;\r\n}\r\n.view-prop-tab-contents {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%; /* Set to the height you want */\r\n}\r\n\r\n.form-group {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.form-group-description {\r\n flex-grow: 1;\r\n}\r\n\r\n.k-form-label {\r\n width: 150px; /* Adjust as needed */\r\n margin-right: 10px;\r\n}\r\n\r\n.view-description {\r\n flex-grow: 1;\r\n height: 100%;\r\n padding: 5px;\r\n resize: none;\r\n}\r\n\r\n\r\n\r\n.item-content {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.popup-content {\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.popup-actions {\r\n padding: 16px 0 0;\r\n}\r\n\r\n.view-prop-tab-contents {\r\n overflow: hidden;\r\n}\r\n\r\n.sort-column {\r\n width: 300px;\r\n}\r\n\r\n.sort-direction {\r\n width: 125px;\r\n}\r\n\r\n.sort-header > button {\r\n margin-left: 5px;\r\n margin-bottom: 5px;\r\n width: 75px;\r\n}\r\n\r\n.smart-filter-label {\r\n margin-right: 10px;\r\n}\r\n\r\n.smart-filter-prompt {\r\n margin-top: 15px;\r\n}\r\n\r\n.advanced-tab-details\r\n{\r\n margin-bottom: 10px;\r\n}\r\n::ng-deep .customBtn button {\r\n flex: 1;\r\n border-radius: 10px;\r\n line-height: 34px;\r\n}\r\n::ng-deep .popup-content .k-tabstrip-items-wrapper {\r\n background: var(--white-color) !important;\r\n padding-left: 0 !important;\r\n}\r\n::ng-deep .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item.k-active {\r\n border-bottom: 3px solid var(--border-blue) !important;\r\n}\r\n ::ng-deep .popup-content .k-tabstrip-items-wrapper .k-tabstrip-items .k-tabstrip-item {\r\n background: var(--white-color) !important;\r\n border-right: 0 !important;\r\n}"] }]
584
- }], () => [{ type: i1.ActivatedRoute }, { type: i0.ElementRef }, { type: i2.SharedService }, { type: i3.FormBuilder }, { type: i1.Router }], { ViewID: [{
585
- type: Input
586
- }], EntityName: [{
587
- type: Input
588
- }], ShowPropertiesButton: [{
589
- type: Input
590
- }], dialogClosed: [{
591
- type: Output
592
- }], kendoWindow: [{
593
- type: ViewChild,
594
- args: [WindowComponent]
595
- }], kendoTab: [{
596
- type: ViewChild,
597
- args: [TabComponent]
598
- }], nameField: [{
599
- type: ViewChild,
600
- args: ['nameField']
601
- }], dialogContainer: [{
602
- type: ViewChild,
603
- args: ['dialogContainer']
604
- }] }); })();
605
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewPropertiesDialogComponent, { className: "ViewPropertiesDialogComponent", filePath: "src\\lib\\user-view-properties\\view-properties-dialog.component.ts", lineNumber: 21 }); })();