@memberjunction/ng-user-view-properties 0.9.2

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.
@@ -0,0 +1,75 @@
1
+ import { EventEmitter, AfterViewInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
2
+ import { ActivatedRoute, Router } from "@angular/router";
3
+ import { Metadata, EntityFieldInfo, EntityInfo } from "@memberjunction/core";
4
+ import { DragEndEvent } from '@progress/kendo-angular-sortable';
5
+ import { UserViewEntityExtended } from '@memberjunction/core-entities';
6
+ import { BaseFormComponent } from '@memberjunction/ng-base-forms';
7
+ import { WindowComponent } from '@progress/kendo-angular-dialog';
8
+ import { TabComponent } from '@progress/kendo-angular-layout';
9
+ import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
10
+ import { TextBoxComponent } from '@progress/kendo-angular-inputs';
11
+ import { SharedService } from '@memberjunction/ng-shared';
12
+ import { FormBuilder } from "@angular/forms";
13
+ import * as i0 from "@angular/core";
14
+ export declare class UserViewPropertiesDialogComponent extends BaseFormComponent implements AfterViewInit, OnDestroy {
15
+ protected route: ActivatedRoute;
16
+ private elRef;
17
+ private ss;
18
+ private formBuilder;
19
+ protected router: Router;
20
+ private renderer;
21
+ ViewID: number | undefined;
22
+ EntityName: string | undefined;
23
+ ShowPropertiesButton: boolean;
24
+ dialogClosed: EventEmitter<any>;
25
+ isDialogOpened: boolean;
26
+ showloader: boolean;
27
+ localGridState: any;
28
+ localFilterState: any;
29
+ defaultFilterState: any;
30
+ record: UserViewEntityExtended;
31
+ ViewEntityInfo: EntityInfo;
32
+ private keyPressListener;
33
+ usedFields: Set<string>;
34
+ sortFields: any[];
35
+ sortState: any[];
36
+ sortDirections: {
37
+ Name: string;
38
+ Value: string;
39
+ }[];
40
+ kendoWindow: WindowComponent;
41
+ kendoTab: TabComponent;
42
+ nameField: TextBoxComponent;
43
+ dialogContainer: ElementRef;
44
+ private outerDialogContainer;
45
+ constructor(route: ActivatedRoute, elRef: ElementRef, ss: SharedService, formBuilder: FormBuilder, router: Router, renderer: Renderer2);
46
+ onKeyPress(event: KeyboardEvent): void;
47
+ GetTabTopPosition(): number;
48
+ CreateView(entityName: string): void;
49
+ Open(ViewID?: number | undefined): Promise<void>;
50
+ Load(): Promise<void>;
51
+ closePropertiesDialog(): void;
52
+ FinishLoad(md: Metadata): Promise<void>;
53
+ private appendUnusedColumnsToColumnSettings;
54
+ onDragEnd(e: DragEndEvent): void;
55
+ protected updateRecordGridState(): void;
56
+ onFilterChange(value: CompositeFilterDescriptor): void;
57
+ toggleColumn(column: any): Promise<void>;
58
+ saveProperties(): Promise<void>;
59
+ defaultOperators: any;
60
+ private _savedFilters;
61
+ setupFilters(): any;
62
+ toKendoFilterField: (f: EntityFieldInfo) => any;
63
+ getKendoEditor(field: EntityFieldInfo): "string" | "number" | "date" | "boolean";
64
+ getKendoOperators(field: EntityFieldInfo): any;
65
+ protected get ContainerObjectHeight(): number;
66
+ addSort(): void;
67
+ removeSort(item: any): void;
68
+ sortColumnValueChange(sortItem: any, newValue: EntityFieldInfo): void;
69
+ sortDirectionValueChange(sortItem: any, newValue: any): void;
70
+ private _movedToBody;
71
+ moveDialogToBody(): void;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserViewPropertiesDialogComponent, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserViewPropertiesDialogComponent, "mj-user-view-properties-dialog", never, { "ViewID": { "alias": "ViewID"; "required": false; }; "EntityName": { "alias": "EntityName"; "required": false; }; "ShowPropertiesButton": { "alias": "ShowPropertiesButton"; "required": false; }; }, { "dialogClosed": "dialogClosed"; }, never, never, false, never>;
74
+ }
75
+ //# sourceMappingURL=user-view-properties.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-view-properties.component.d.ts","sourceRoot":"","sources":["../../src/lib/user-view-properties.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAkB,aAAa,EAAE,SAAS,EAAa,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AACnI,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAiB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAc,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;;AAE7C,qBAKa,iCAAkC,SAAQ,iBAAkB,YAAW,aAAa,EAAE,SAAS;cAoC1E,KAAK,EAAE,cAAc;IAAE,OAAO,CAAC,KAAK;IAAc,OAAO,CAAC,EAAE;IAAiB,OAAO,CAAC,WAAW;cAAkC,MAAM,EAAE,MAAM;IAAE,OAAO,CAAC,QAAQ;IAnClL,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAQ;IAE3C,YAAY,oBAAsB;IAGrC,cAAc,EAAE,OAAO,CAAS;IAChC,UAAU,EAAE,OAAO,CAAQ;IAG3B,cAAc,EAAE,GAAG,CAAK;IACxB,gBAAgB,EAAE,GAAG,CAAK;IAC1B,kBAAkB,EAAE,GAAG,CAAK;IAC5B,MAAM,EAAG,sBAAsB,CAAC;IAEhC,cAAc,EAAG,UAAU,CAAC;IAEnC,OAAO,CAAC,gBAAgB,CAAM;IACvB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEpC,UAAU,EAAE,GAAG,EAAE,CAAM;IACvB,SAAS,EAAE,GAAG,EAAE,CAAM;IACtB,cAAc;;;QAGnB;IAE0B,WAAW,EAAG,eAAe,CAAC;IACjC,QAAQ,EAAG,YAAY,CAAC;IACzB,SAAS,EAAG,gBAAgB,CAAC;IACvB,eAAe,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,oBAAoB,CAAc;gBAG7C,KAAK,EAAE,cAAc,EAAU,KAAK,EAAE,UAAU,EAAU,EAAE,EAAE,aAAa,EAAU,WAAW,EAAE,WAAW,EAAqB,MAAM,EAAE,MAAM,EAAU,QAAQ,EAAE,SAAS;IAM7M,UAAU,CAAC,KAAK,EAAE,aAAa;IAMtB,iBAAiB,IAAI,MAAM;IAI7B,UAAU,CAAC,UAAU,EAAE,MAAM;IAMvB,IAAI,CAAC,MAAM,GAAE,MAAM,GAAG,SAAuB;IAOpD,IAAI;IA4BH,qBAAqB;IAQf,UAAU,CAAC,EAAE,EAAE,QAAQ;IAsDpC,OAAO,CAAC,mCAAmC;IAwBpC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAcvC,SAAS,CAAC,qBAAqB;IAYxB,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAIhD,YAAY,CAAC,MAAM,EAAE,GAAG;IAOxB,cAAc;IAkDpB,gBAAgB,EAAE,GAAG,CAK1B;IAGF,OAAO,CAAC,aAAa,CAAa;IAC3B,YAAY;IAUZ,kBAAkB,MAAO,eAAe,KAAG,GAAG,CAOpD;IAEM,cAAc,CAAE,KAAK,EAAE,eAAe;IAatC,iBAAiB,CAAE,KAAK,EAAE,eAAe;IAchD,cAAuB,qBAAqB,IAAI,MAAM,CAKrD;IAED,OAAO;IAIP,UAAU,CAAC,IAAI,EAAE,GAAG;IAIpB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe;IAM9D,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;IAIrD,OAAO,CAAC,YAAY,CAAkB;IACtC,gBAAgB;yCA3VL,iCAAiC;2CAAjC,iCAAiC;CAmW7C"}
@@ -0,0 +1,627 @@
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, EntityFieldTSType } 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-inputs";
24
+ import * as i6 from "@progress/kendo-angular-label";
25
+ import * as i7 from "@progress/kendo-angular-buttons";
26
+ import * as i8 from "@progress/kendo-angular-dialog";
27
+ import * as i9 from "@progress/kendo-angular-layout";
28
+ import * as i10 from "@progress/kendo-angular-sortable";
29
+ import * as i11 from "@progress/kendo-angular-filter";
30
+ const _c0 = ["nameField"];
31
+ const _c1 = ["dialogContainer"];
32
+ const _c2 = ["outerDialogContainer"];
33
+ function UserViewPropertiesDialogComponent_button_1_Template(rf, ctx) { if (rf & 1) {
34
+ const _r5 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "button", 4);
36
+ i0.ɵɵlistener("click", function UserViewPropertiesDialogComponent_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.Open()); });
37
+ i0.ɵɵelement(1, "kendo-svgicon", 5);
38
+ i0.ɵɵtext(2, " Properties ");
39
+ i0.ɵɵelementEnd();
40
+ } if (rf & 2) {
41
+ const ctx_r0 = i0.ɵɵnextContext();
42
+ i0.ɵɵadvance();
43
+ i0.ɵɵproperty("icon", ctx_r0.sharedService.kendoSVGIcon("gear"));
44
+ } }
45
+ function UserViewPropertiesDialogComponent_div_4_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelement(0, "div", 6);
47
+ } }
48
+ function UserViewPropertiesDialogComponent_kendo_window_5_kendo_loader_1_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelement(0, "kendo-loader", 21);
50
+ } }
51
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_7_Template(rf, ctx) { if (rf & 1) {
52
+ const _r15 = i0.ɵɵgetCurrentView();
53
+ i0.ɵɵelementStart(0, "div", 22)(1, "div", 23);
54
+ i0.ɵɵelement(2, "kendo-label", 24);
55
+ i0.ɵɵelementStart(3, "kendo-textbox", 25, 26);
56
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_7_Template_kendo_textbox_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r14.record.Name, $event) || (ctx_r14.record.Name = $event); return i0.ɵɵresetView($event); });
57
+ i0.ɵɵelementEnd()();
58
+ i0.ɵɵelementStart(5, "div", 27);
59
+ i0.ɵɵelement(6, "kendo-label", 28);
60
+ i0.ɵɵelementStart(7, "textarea", 29);
61
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_7_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r16.record.Description, $event) || (ctx_r16.record.Description = $event); return i0.ɵɵresetView($event); });
62
+ i0.ɵɵelementEnd()()();
63
+ } if (rf & 2) {
64
+ const ctx_r8 = i0.ɵɵnextContext(2);
65
+ i0.ɵɵadvance(3);
66
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r8.record.Name);
67
+ i0.ɵɵadvance(4);
68
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r8.record.Description);
69
+ } }
70
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_ng_template_1_Template(rf, ctx) { if (rf & 1) {
71
+ const _r20 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "div", 31)(1, "div")(2, "input", 32);
73
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_ng_template_1_Template_input_ngModelChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r20); const col_r18 = restoredCtx.item; i0.ɵɵtwoWayBindingSet(col_r18.hidden, $event) || (col_r18.hidden = $event); return i0.ɵɵresetView($event); });
74
+ i0.ɵɵlistener("change", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_ng_template_1_Template_input_change_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r20); const col_r18 = restoredCtx.item; const ctx_r21 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r21.toggleColumn(col_r18)); });
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelement(3, "kendo-label", 33);
77
+ i0.ɵɵelementEnd();
78
+ i0.ɵɵelement(4, "kendo-svgicon", 5);
79
+ i0.ɵɵelementEnd();
80
+ } if (rf & 2) {
81
+ const col_r18 = ctx.item;
82
+ const ctx_r17 = i0.ɵɵnextContext(3);
83
+ i0.ɵɵadvance(2);
84
+ i0.ɵɵpropertyInterpolate1("id", "column_", col_r18.ID, "");
85
+ i0.ɵɵtwoWayProperty("ngModel", !col_r18.hidden);
86
+ i0.ɵɵadvance();
87
+ i0.ɵɵproperty("for", "column_" + col_r18.ID)("text", col_r18.DisplayName ? col_r18.DisplayName : col_r18.Name);
88
+ i0.ɵɵadvance();
89
+ i0.ɵɵproperty("icon", ctx_r17.sharedService.kendoSVGIcon("reorder"));
90
+ } }
91
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_Template(rf, ctx) { if (rf & 1) {
92
+ const _r23 = i0.ɵɵgetCurrentView();
93
+ i0.ɵɵelementStart(0, "kendo-sortable", 30);
94
+ i0.ɵɵlistener("dragEnd", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_Template_kendo_sortable_dragEnd_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r22.onDragEnd($event)); });
95
+ i0.ɵɵtemplate(1, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_ng_template_1_Template, 5, 5, "ng-template");
96
+ i0.ɵɵelementEnd();
97
+ } if (rf & 2) {
98
+ const ctx_r9 = i0.ɵɵnextContext(2);
99
+ i0.ɵɵproperty("kendoSortableBinding", ctx_r9.localGridState.columnSettings)("animation", true);
100
+ } }
101
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_3_Template(rf, ctx) { if (rf & 1) {
102
+ const _r27 = i0.ɵɵgetCurrentView();
103
+ i0.ɵɵelementStart(0, "div", 39)(1, "kendo-textarea", 40);
104
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_3_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r26 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r26.record.SmartFilterPrompt, $event) || (ctx_r26.record.SmartFilterPrompt = $event); return i0.ɵɵresetView($event); });
105
+ i0.ɵɵelementEnd()();
106
+ } if (rf & 2) {
107
+ const ctx_r24 = i0.ɵɵnextContext(3);
108
+ i0.ɵɵproperty("fillHeight", true);
109
+ i0.ɵɵadvance();
110
+ i0.ɵɵproperty("rows", 10);
111
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r24.record.SmartFilterPrompt);
112
+ } }
113
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_4_Template(rf, ctx) { if (rf & 1) {
114
+ const _r29 = i0.ɵɵgetCurrentView();
115
+ i0.ɵɵelementStart(0, "div")(1, "kendo-filter", 41);
116
+ i0.ɵɵlistener("valueChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_4_Template_kendo_filter_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r28.onFilterChange($event)); });
117
+ i0.ɵɵelementEnd()();
118
+ } if (rf & 2) {
119
+ const ctx_r25 = i0.ɵɵnextContext(3);
120
+ i0.ɵɵadvance();
121
+ i0.ɵɵproperty("filters", ctx_r25.setupFilters())("value", ctx_r25.defaultFilterState);
122
+ } }
123
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_Template(rf, ctx) { if (rf & 1) {
124
+ const _r31 = i0.ɵɵgetCurrentView();
125
+ i0.ɵɵelementStart(0, "div", 34);
126
+ i0.ɵɵelement(1, "kendo-label", 35);
127
+ i0.ɵɵelementStart(2, "kendo-switch", 36);
128
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_Template_kendo_switch_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r30.record.SmartFilterEnabled, $event) || (ctx_r30.record.SmartFilterEnabled = $event); return i0.ɵɵresetView($event); });
129
+ i0.ɵɵelementEnd()();
130
+ i0.ɵɵtemplate(3, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_3_Template, 2, 3, "div", 37)(4, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_div_4_Template, 2, 2, "div", 38);
131
+ } if (rf & 2) {
132
+ const ctx_r10 = i0.ɵɵnextContext(2);
133
+ i0.ɵɵadvance(2);
134
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r10.record.SmartFilterEnabled);
135
+ i0.ɵɵadvance();
136
+ i0.ɵɵproperty("ngIf", ctx_r10.record.SmartFilterEnabled);
137
+ i0.ɵɵadvance();
138
+ i0.ɵɵproperty("ngIf", !ctx_r10.record.SmartFilterEnabled);
139
+ } }
140
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template(rf, ctx) { if (rf & 1) {
141
+ const _r35 = i0.ɵɵgetCurrentView();
142
+ i0.ɵɵelementStart(0, "div")(1, "kendo-dropdownlist", 45);
143
+ i0.ɵɵlistener("valueChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template_kendo_dropdownlist_valueChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r35); const s_r33 = restoredCtx.$implicit; const ctx_r34 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r34.sortColumnValueChange(s_r33, $event)); });
144
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template_kendo_dropdownlist_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r35); const s_r33 = restoredCtx.$implicit; i0.ɵɵtwoWayBindingSet(s_r33.field, $event) || (s_r33.field = $event); return i0.ɵɵresetView($event); });
145
+ i0.ɵɵelementEnd();
146
+ i0.ɵɵelementStart(2, "kendo-dropdownlist", 46);
147
+ i0.ɵɵlistener("valueChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template_kendo_dropdownlist_valueChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r35); const s_r33 = restoredCtx.$implicit; const ctx_r37 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r37.sortDirectionValueChange(s_r33, $event)); });
148
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r35); const s_r33 = restoredCtx.$implicit; i0.ɵɵtwoWayBindingSet(s_r33.direction, $event) || (s_r33.direction = $event); return i0.ɵɵresetView($event); });
149
+ i0.ɵɵelementEnd();
150
+ i0.ɵɵelementStart(3, "button", 43);
151
+ i0.ɵɵlistener("click", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template_button_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r35); const s_r33 = restoredCtx.$implicit; const ctx_r39 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r39.removeSort(s_r33)); });
152
+ i0.ɵɵelement(4, "kendo-svgicon", 5);
153
+ i0.ɵɵelementEnd()();
154
+ } if (rf & 2) {
155
+ const s_r33 = ctx.$implicit;
156
+ const ctx_r32 = i0.ɵɵnextContext(3);
157
+ i0.ɵɵadvance();
158
+ i0.ɵɵproperty("data", ctx_r32.sortFields);
159
+ i0.ɵɵtwoWayProperty("ngModel", s_r33.field);
160
+ i0.ɵɵadvance();
161
+ i0.ɵɵproperty("data", ctx_r32.sortDirections);
162
+ i0.ɵɵtwoWayProperty("ngModel", s_r33.direction);
163
+ i0.ɵɵadvance(2);
164
+ i0.ɵɵproperty("icon", ctx_r32.sharedService.kendoSVGIcon("sortClear"));
165
+ } }
166
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_Template(rf, ctx) { if (rf & 1) {
167
+ const _r41 = i0.ɵɵgetCurrentView();
168
+ i0.ɵɵelementStart(0, "div", 42)(1, "button", 43);
169
+ i0.ɵɵlistener("click", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r40.addSort()); });
170
+ i0.ɵɵelement(2, "kendo-svgicon", 5);
171
+ i0.ɵɵelementEnd()();
172
+ i0.ɵɵtemplate(3, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_div_3_Template, 5, 5, "div", 44);
173
+ } if (rf & 2) {
174
+ const ctx_r11 = i0.ɵɵnextContext(2);
175
+ i0.ɵɵadvance(2);
176
+ i0.ɵɵproperty("icon", ctx_r11.sharedService.kendoSVGIcon("filterAddExpression"));
177
+ i0.ɵɵadvance();
178
+ i0.ɵɵproperty("ngForOf", ctx_r11.sortState);
179
+ } }
180
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_0_Template(rf, ctx) { if (rf & 1) {
181
+ const _r45 = i0.ɵɵgetCurrentView();
182
+ i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 48);
183
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_0_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r44.record.SmartFilterExplanation, $event) || (ctx_r44.record.SmartFilterExplanation = $event); return i0.ɵɵresetView($event); });
184
+ i0.ɵɵelementEnd();
185
+ i0.ɵɵelementStart(2, "kendo-textarea", 48);
186
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_0_Template_kendo_textarea_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r46 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r46.record.SmartFilterWhereClause, $event) || (ctx_r46.record.SmartFilterWhereClause = $event); return i0.ɵɵresetView($event); });
187
+ i0.ɵɵelementEnd()();
188
+ } if (rf & 2) {
189
+ const ctx_r42 = i0.ɵɵnextContext(3);
190
+ i0.ɵɵadvance();
191
+ i0.ɵɵproperty("readonly", true)("rows", 5);
192
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r42.record.SmartFilterExplanation);
193
+ i0.ɵɵadvance();
194
+ i0.ɵɵproperty("readonly", true)("rows", 5);
195
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r42.record.SmartFilterWhereClause);
196
+ } }
197
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_1_Template(rf, ctx) { if (rf & 1) {
198
+ const _r48 = i0.ɵɵgetCurrentView();
199
+ i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 48);
200
+ i0.ɵɵtwoWayListener("ngModelChange", function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_1_Template_kendo_textarea_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r48); const ctx_r47 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r47.record.WhereClause, $event) || (ctx_r47.record.WhereClause = $event); return i0.ɵɵresetView($event); });
201
+ i0.ɵɵelementEnd()();
202
+ } if (rf & 2) {
203
+ const ctx_r43 = i0.ɵɵnextContext(3);
204
+ i0.ɵɵadvance();
205
+ i0.ɵɵproperty("readonly", true)("rows", 7);
206
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r43.record.WhereClause);
207
+ } }
208
+ function UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_Template(rf, ctx) { if (rf & 1) {
209
+ i0.ɵɵtemplate(0, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_0_Template, 3, 6, "div", 38)(1, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_div_1_Template, 2, 3, "div", 47);
210
+ } if (rf & 2) {
211
+ const ctx_r12 = i0.ɵɵnextContext(2);
212
+ i0.ɵɵproperty("ngIf", ctx_r12.record.SmartFilterEnabled);
213
+ } }
214
+ function UserViewPropertiesDialogComponent_kendo_window_5_Template(rf, ctx) { if (rf & 1) {
215
+ const _r50 = i0.ɵɵgetCurrentView();
216
+ i0.ɵɵelementStart(0, "kendo-window", 7);
217
+ i0.ɵɵlistener("close", function UserViewPropertiesDialogComponent_kendo_window_5_Template_kendo_window_close_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r49 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r49.closePropertiesDialog()); })("resizeEnd", function UserViewPropertiesDialogComponent_kendo_window_5_Template_kendo_window_resizeEnd_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r51 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r51.ResizeTab()); })("heightChange", function UserViewPropertiesDialogComponent_kendo_window_5_Template_kendo_window_heightChange_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r52 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r52.ResizeTab()); })("widthChange", function UserViewPropertiesDialogComponent_kendo_window_5_Template_kendo_window_widthChange_0_listener() { i0.ɵɵrestoreView(_r50); const ctx_r53 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r53.ResizeTab()); });
218
+ i0.ɵɵtemplate(1, UserViewPropertiesDialogComponent_kendo_window_5_kendo_loader_1_Template, 1, 0, "kendo-loader", 8);
219
+ i0.ɵɵelementStart(2, "div", 9, 10)(4, "div")(5, "kendo-tabstrip", 11)(6, "kendo-tabstrip-tab", 12);
220
+ i0.ɵɵtemplate(7, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_7_Template, 8, 2, "ng-template", 13);
221
+ i0.ɵɵelementEnd();
222
+ i0.ɵɵelementStart(8, "kendo-tabstrip-tab", 14);
223
+ i0.ɵɵtemplate(9, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_9_Template, 2, 2, "ng-template", 13);
224
+ i0.ɵɵelementEnd();
225
+ i0.ɵɵelementStart(10, "kendo-tabstrip-tab", 15);
226
+ i0.ɵɵtemplate(11, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_11_Template, 5, 3, "ng-template", 13);
227
+ i0.ɵɵelementEnd();
228
+ i0.ɵɵelementStart(12, "kendo-tabstrip-tab", 16);
229
+ i0.ɵɵtemplate(13, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_13_Template, 4, 2, "ng-template", 13);
230
+ i0.ɵɵelementEnd();
231
+ i0.ɵɵelementStart(14, "kendo-tabstrip-tab", 17);
232
+ i0.ɵɵtemplate(15, UserViewPropertiesDialogComponent_kendo_window_5_ng_template_15_Template, 2, 1, "ng-template", 13);
233
+ i0.ɵɵelementEnd()();
234
+ i0.ɵɵelementStart(16, "div", 18)(17, "button", 19);
235
+ i0.ɵɵlistener("click", function UserViewPropertiesDialogComponent_kendo_window_5_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r50); const ctx_r54 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r54.saveProperties()); });
236
+ i0.ɵɵelement(18, "kendo-svgicon", 5);
237
+ i0.ɵɵtext(19, " Save ");
238
+ i0.ɵɵelementEnd();
239
+ i0.ɵɵelementStart(20, "button", 20);
240
+ i0.ɵɵlistener("click", function UserViewPropertiesDialogComponent_kendo_window_5_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r50); const ctx_r55 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r55.closePropertiesDialog()); });
241
+ i0.ɵɵtext(21, "Cancel");
242
+ i0.ɵɵelementEnd()()()()();
243
+ } if (rf & 2) {
244
+ const ctx_r3 = i0.ɵɵnextContext();
245
+ i0.ɵɵproperty("minHeight", 300)("minWidth", 800)("top", 100)("left", 100)("width", 668)("height", 525)("resizable", true);
246
+ i0.ɵɵadvance();
247
+ i0.ɵɵproperty("ngIf", ctx_r3.showloader);
248
+ i0.ɵɵadvance(3);
249
+ i0.ɵɵclassMap(ctx_r3.showloader ? "disabled-div" : "");
250
+ i0.ɵɵadvance();
251
+ i0.ɵɵproperty("keepTabContent", true)("animate", false)("height", ctx_r3.TabHeight);
252
+ i0.ɵɵadvance();
253
+ i0.ɵɵproperty("selected", true);
254
+ i0.ɵɵadvance(12);
255
+ i0.ɵɵproperty("icon", ctx_r3.sharedService.kendoSVGIcon("save"));
256
+ } }
257
+ export class UserViewPropertiesDialogComponent extends BaseFormComponent {
258
+ constructor(route, elRef, ss, formBuilder, router, renderer) {
259
+ super(elRef, ss, router, route);
260
+ this.route = route;
261
+ this.elRef = elRef;
262
+ this.ss = ss;
263
+ this.formBuilder = formBuilder;
264
+ this.router = router;
265
+ this.renderer = renderer;
266
+ this.ShowPropertiesButton = true;
267
+ this.dialogClosed = new EventEmitter();
268
+ this.isDialogOpened = false;
269
+ this.showloader = true;
270
+ // public localViewColumns: ViewColumnInfo[] = [];
271
+ this.localGridState = {};
272
+ this.localFilterState = {};
273
+ this.defaultFilterState = {};
274
+ this.usedFields = new Set(); // Track used fields
275
+ this.sortFields = [];
276
+ this.sortState = [];
277
+ this.sortDirections = [
278
+ { Name: 'Up', Value: 'asc' },
279
+ { Name: 'Down', Value: 'desc' }
280
+ ];
281
+ this.defaultOperators = {
282
+ string: ["contains", "doesnotcontain", "eq", "neq", "startswith", "endswith", "isnull", "isnotnull", "isempty", "isnotempty"],
283
+ number: ["neq", "eq", "gte", "gt", "lte", "lt", "isnull", "isnotnull"],
284
+ date: ["neq", "eq", "gte", "gt", "lte", "lt", "isnull", "isnotnull"],
285
+ boolean: ["eq", "neq"]
286
+ };
287
+ this._savedFilters = null;
288
+ this.toKendoFilterField = (f) => {
289
+ var _a;
290
+ return {
291
+ field: f.Name,
292
+ title: (_a = f.DisplayName) !== null && _a !== void 0 ? _a : f.Name,
293
+ editor: this.getKendoEditor(f),
294
+ operators: this.getKendoOperators(f)
295
+ };
296
+ };
297
+ this._movedToBody = false;
298
+ this.BottomMargin = 75;
299
+ }
300
+ onKeyPress(event) {
301
+ if (event.key === 'Enter') {
302
+ this.saveProperties();
303
+ }
304
+ }
305
+ GetTabTopPosition() {
306
+ 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
307
+ }
308
+ CreateView(entityName) {
309
+ this.EntityName = entityName;
310
+ this.ViewID = undefined;
311
+ this.Open();
312
+ }
313
+ Open(ViewID = this.ViewID) {
314
+ return __awaiter(this, void 0, void 0, function* () {
315
+ this.ViewID = ViewID;
316
+ yield this.Load();
317
+ this.isDialogOpened = true; // binding causes the kendo window to open from this method call
318
+ this.moveDialogToBody();
319
+ });
320
+ }
321
+ Load() {
322
+ return __awaiter(this, void 0, void 0, function* () {
323
+ const md = new Metadata();
324
+ this.record = (yield md.GetEntityObject('User Views'));
325
+ if (this.ViewID) {
326
+ // load the view
327
+ yield this.record.Load(this.ViewID);
328
+ }
329
+ else if (this.EntityName) {
330
+ // We don't have a View ID, we are creating a NEW view, so do NewRecord()
331
+ this.record.NewRecord();
332
+ const e = md.Entities.find(e => e.Name == this.EntityName);
333
+ if (e) {
334
+ this.record.SetDefaultsFromEntity(e);
335
+ }
336
+ else {
337
+ throw new Error(`Entity ${this.EntityName} not found in metadata`);
338
+ }
339
+ }
340
+ // now we load up the columns
341
+ this.FinishLoad(md);
342
+ this.showloader = false;
343
+ setTimeout(() => {
344
+ this.ResizeTab();
345
+ }, 200);
346
+ });
347
+ }
348
+ closePropertiesDialog() {
349
+ this.dialogClosed.emit({});
350
+ this.isDialogOpened = false; // binding causes the kendo window to close from this method call
351
+ if (this.keyPressListener) { // removing the keypress listener when the dialog closes
352
+ this.dialogContainer.nativeElement.removeEventListener('keypress', this.keyPressListener);
353
+ }
354
+ }
355
+ FinishLoad(md) {
356
+ return __awaiter(this, void 0, void 0, function* () {
357
+ this.ViewEntityInfo = md.Entities.find(e => e.ID == this.record.EntityID);
358
+ // using all these local variables because the VSCode debugger doesn't know what "this" is all of a sudden
359
+ if (!this.ViewEntityInfo)
360
+ throw new Error(`Entity ${this.record.EntityID} not found in metadata`);
361
+ // prepare the sorting state
362
+ this.sortFields = this.ViewEntityInfo.Fields;
363
+ if (this.record.SortState === null || this.record.SortState === undefined || this.record.SortState.trim().length === 0)
364
+ this.sortState = [];
365
+ else
366
+ this.sortState = JSON.parse(this.record.SortState);
367
+ // 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
368
+ this.sortState = this.sortState.map((s) => {
369
+ var _a;
370
+ let dir;
371
+ if (typeof s.direction === 'string') {
372
+ dir = s.direction;
373
+ }
374
+ else if (typeof s.direction === 'number' && s.direction === 1) { // some legacy views have 1 and 2 for asc and desc
375
+ dir = 'asc';
376
+ }
377
+ else if (typeof s.direction === 'number' && s.direction === 2) {
378
+ dir = 'desc';
379
+ }
380
+ else {
381
+ dir = '';
382
+ }
383
+ return {
384
+ field: (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.find((f) => f.Name === s.field),
385
+ direction: this.sortDirections.find((d) => d.Value.trim().toLowerCase() === dir)
386
+ };
387
+ });
388
+ this.localGridState = JSON.parse(this.record.GridState);
389
+ const temp = this.localGridState;
390
+ this.localFilterState = JSON.parse(this.record.FilterState);
391
+ this.defaultFilterState = this.localFilterState; // adding a duplicate filter state for populating the default filter state
392
+ this.appendUnusedColumnsToColumnSettings(this.localGridState);
393
+ this.localGridState.columnSettings.sort((a, b) => {
394
+ if (a.hidden && !b.hidden)
395
+ return 1;
396
+ if (!a.hidden && b.hidden)
397
+ return -1;
398
+ // if we get here, they're both hidden, or both not hidden, so sort by orderIndex
399
+ return a.orderIndex - b.orderIndex;
400
+ });
401
+ setTimeout(() => {
402
+ this.keyPressListener = this.onKeyPress.bind(this);
403
+ this.dialogContainer.nativeElement.addEventListener('keypress', this.onKeyPress.bind(this));
404
+ this.nameField.focus();
405
+ }, 200);
406
+ });
407
+ }
408
+ appendUnusedColumnsToColumnSettings(gridState) {
409
+ var _a;
410
+ // we go through our EntityFields and add any that aren't already in the columnSettings
411
+ // this is so that we can add new columns to the view that were not previously used in this view
412
+ const unusedFields = (_a = this.ViewEntityInfo) === null || _a === void 0 ? void 0 : _a.Fields.filter(f => {
413
+ if (gridState.columnSettings.find((col) => col.Name.trim().toLowerCase() === f.Name.trim().toLowerCase()))
414
+ return false; // this entity field is already in the columnSettings
415
+ else
416
+ return true; // this entity field is not in the columnSettings
417
+ });
418
+ // now we add the unused fields to the columnSettings
419
+ unusedFields === null || unusedFields === void 0 ? void 0 : unusedFields.forEach((f) => {
420
+ gridState.columnSettings.push({
421
+ ID: f.ID,
422
+ DisplayName: f.DisplayName,
423
+ Name: f.Name,
424
+ orderIndex: gridState.columnSettings.length,
425
+ width: f.DefaultColumnWidth ? f.DefaultColumnWidth : 100,
426
+ EntityField: f,
427
+ hidden: true
428
+ });
429
+ });
430
+ }
431
+ onDragEnd(e) {
432
+ if (e.index >= 0) {
433
+ // const column = this.localViewColumns[e.index];
434
+ if (this.localGridState) {
435
+ const lvc = this.localGridState.columnSettings;
436
+ for (let i = 0; i < lvc.length; i++) {
437
+ const col = lvc[i];
438
+ 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
439
+ }
440
+ this.updateRecordGridState();
441
+ }
442
+ }
443
+ }
444
+ updateRecordGridState() {
445
+ const temp = JSON.stringify(this.localGridState);
446
+ const tempO = JSON.parse(temp); // make sure we have a clean object that is NOT linked in memory to the localGridState
447
+ // now strip the EntityField from the columnSettings in the tempO object
448
+ tempO.columnSettings.forEach((col) => {
449
+ delete col.EntityField;
450
+ });
451
+ this.record.GridState = JSON.stringify(tempO); // stringify the state into the record
452
+ }
453
+ onFilterChange(value) {
454
+ this.localFilterState = value;
455
+ }
456
+ toggleColumn(column) {
457
+ return __awaiter(this, void 0, void 0, function* () {
458
+ column.hidden = !column.hidden; // do the toggle
459
+ if (this.localGridState)
460
+ this.updateRecordGridState();
461
+ });
462
+ }
463
+ saveProperties() {
464
+ return __awaiter(this, void 0, void 0, function* () {
465
+ const bNewRecord = !(this.record.PrimaryKey.Value);
466
+ this.showloader = true;
467
+ const lfs = JSON.stringify(this.localFilterState);
468
+ 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
469
+ // need to convert the UI format to the data format.
470
+ const sortMap = this.sortState.map((s) => {
471
+ return {
472
+ field: s.field.Name,
473
+ direction: s.direction.Value
474
+ };
475
+ });
476
+ this.record.SortState = JSON.stringify(sortMap);
477
+ // validate the record first
478
+ const valResults = this.record.Validate();
479
+ if (valResults.Success === false) {
480
+ this.showloader = false;
481
+ this.sharedService.CreateSimpleNotification('Validation Errors: ' + valResults.Errors.map((e) => e.Message).join('\n'), 'warning', 7500);
482
+ }
483
+ else if (yield this.record.Save()) {
484
+ this.dialogClosed.emit({ Saved: true, ViewEntity: this.record });
485
+ this.isDialogOpened = false; // close the kendo window - this works through ngIf binding
486
+ this.showloader = false;
487
+ 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
488
+ MJGlobal.Instance.RaiseEvent({
489
+ event: MJEventType.ComponentEvent,
490
+ eventCode: EventCodes.ViewUpdated,
491
+ args: new ResourceData({
492
+ ResourceTypeID: this.sharedService.ViewResourceType.ID,
493
+ ResourceRecordID: this.record.PrimaryKey.Value,
494
+ Configuration: {
495
+ ViewEntity: this.record
496
+ }
497
+ }),
498
+ component: this
499
+ });
500
+ else
501
+ // we route to the new view using the router
502
+ this.router.navigate(['resource', 'view', this.record.PrimaryKey.Value]);
503
+ }
504
+ else {
505
+ // it failed, so don't close the dialog
506
+ this.showloader = false;
507
+ this.sharedService.CreateSimpleNotification('Saving the view failed, please try again and if this persists contact your administrator.', 'error', 5000);
508
+ }
509
+ });
510
+ }
511
+ setupFilters() {
512
+ if (this._savedFilters === null) {
513
+ const filters = this.ViewEntityInfo.Fields.map((f) => this.toKendoFilterField(f));
514
+ this._savedFilters = filters;
515
+ return filters;
516
+ }
517
+ else
518
+ return this._savedFilters;
519
+ }
520
+ getKendoEditor(field) {
521
+ switch (field.TSType) {
522
+ case EntityFieldTSType.Boolean:
523
+ return 'boolean';
524
+ case EntityFieldTSType.Date:
525
+ return 'date';
526
+ case EntityFieldTSType.Number:
527
+ return 'number';
528
+ default:
529
+ return 'string';
530
+ }
531
+ }
532
+ getKendoOperators(field) {
533
+ switch (field.TSType) {
534
+ case EntityFieldTSType.Boolean:
535
+ return this.defaultOperators.boolean;
536
+ case EntityFieldTSType.Date:
537
+ return this.defaultOperators.date;
538
+ case EntityFieldTSType.Number:
539
+ return this.defaultOperators.number;
540
+ default:
541
+ return this.defaultOperators.string;
542
+ }
543
+ }
544
+ get ContainerObjectHeight() {
545
+ if (this.kendoWindow)
546
+ return this.kendoWindow.height;
547
+ else
548
+ return 0;
549
+ }
550
+ addSort() {
551
+ var _a;
552
+ 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
553
+ }
554
+ removeSort(item) {
555
+ this.sortState = this.sortState.filter((i) => i !== item);
556
+ }
557
+ sortColumnValueChange(sortItem, newValue) {
558
+ const idx = this.sortState.findIndex((i) => i === sortItem);
559
+ console.log(this.sortState);
560
+ console.log(newValue);
561
+ }
562
+ sortDirectionValueChange(sortItem, newValue) {
563
+ }
564
+ moveDialogToBody() {
565
+ if (this._movedToBody)
566
+ return;
567
+ const dialogElement = this.outerDialogContainer.nativeElement;
568
+ this.renderer.appendChild(document.body, dialogElement);
569
+ this._movedToBody = true;
570
+ }
571
+ }
572
+ UserViewPropertiesDialogComponent.ɵfac = function UserViewPropertiesDialogComponent_Factory(t) { return new (t || UserViewPropertiesDialogComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.SharedService), i0.ɵɵdirectiveInject(i3.FormBuilder), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i0.Renderer2)); };
573
+ UserViewPropertiesDialogComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserViewPropertiesDialogComponent, selectors: [["mj-user-view-properties-dialog"]], viewQuery: function UserViewPropertiesDialogComponent_Query(rf, ctx) { if (rf & 1) {
574
+ i0.ɵɵviewQuery(WindowComponent, 5);
575
+ i0.ɵɵviewQuery(TabComponent, 5);
576
+ i0.ɵɵviewQuery(_c0, 5);
577
+ i0.ɵɵviewQuery(_c1, 5);
578
+ i0.ɵɵviewQuery(_c2, 5);
579
+ } if (rf & 2) {
580
+ let _t;
581
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoWindow = _t.first);
582
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoTab = _t.first);
583
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nameField = _t.first);
584
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dialogContainer = _t.first);
585
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.outerDialogContainer = _t.first);
586
+ } }, inputs: { ViewID: "ViewID", EntityName: "EntityName", ShowPropertiesButton: "ShowPropertiesButton" }, outputs: { dialogClosed: "dialogClosed" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 3, consts: [["kendoButton", "", "themeColor", "info", "class", "view-properties-button", 3, "click", 4, "ngIf"], ["outerDialogContainer", ""], ["class", "k-overlay", 4, "ngIf"], ["title", "View Properties", 3, "minHeight", "minWidth", "top", "left", "width", "height", "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, "minHeight", "minWidth", "top", "left", "width", "height", "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", ""], [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"], ["kendoButton", "", "themeColor", "info", 3, "click"], ["fillMode", "outline", "themeColor", "info", "kendoButton", "", 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 UserViewPropertiesDialogComponent_Template(rf, ctx) { if (rf & 1) {
587
+ i0.ɵɵelementStart(0, "div");
588
+ i0.ɵɵtemplate(1, UserViewPropertiesDialogComponent_button_1_Template, 3, 1, "button", 0);
589
+ i0.ɵɵelementStart(2, "div", null, 1);
590
+ i0.ɵɵtemplate(4, UserViewPropertiesDialogComponent_div_4_Template, 1, 0, "div", 2)(5, UserViewPropertiesDialogComponent_kendo_window_5_Template, 22, 15, "kendo-window", 3);
591
+ i0.ɵɵelementEnd()();
592
+ } if (rf & 2) {
593
+ i0.ɵɵadvance();
594
+ i0.ɵɵproperty("ngIf", ctx.ShowPropertiesButton);
595
+ i0.ɵɵadvance(3);
596
+ i0.ɵɵproperty("ngIf", ctx.isDialogOpened);
597
+ i0.ɵɵadvance();
598
+ i0.ɵɵproperty("ngIf", ctx.isDialogOpened);
599
+ } }, dependencies: [i4.NgForOf, i4.NgIf, i5.TextAreaComponent, i5.TextBoxComponent, i5.SwitchComponent, i5.CheckBoxDirective, i6.LabelComponent, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.NgControlStatus, i3.NgModel, i7.ButtonComponent, i8.WindowComponent, i9.TabStripComponent, i9.TabStripTabComponent, i9.TabContentDirective, i10.SortableComponent, i10.SortableBindingDirective, i11.FilterComponent], 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 }"] });
600
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewPropertiesDialogComponent, [{
601
+ type: Component,
602
+ args: [{ selector: 'mj-user-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\r\n </button>\r\n <div #outerDialogContainer>\r\n <div class=\"k-overlay\" *ngIf=\"isDialogOpened\"></div>\r\n <kendo-window\r\n [minHeight]=\"300\"\r\n [minWidth]=\"800\"\r\n [top]=\"100\"\r\n [left]=\"100\"\r\n [width]=\"668\"\r\n [height]=\"525\"\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 [keepTabContent]=\"true\" [animate] = \"false\" [height]=\"TabHeight\" >\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 <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 <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]=\"setupFilters()\"\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 <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 <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 </kendo-tabstrip>\r\n \r\n <div class=\"k-actions k-actions-end customBtn popup-actions\">\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 <button fillMode=\"outline\" themeColor=\"info\" kendoButton (click)=\"closePropertiesDialog()\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n </kendo-window>\r\n </div>\r\n</div> ", 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 }"] }]
603
+ }], () => [{ type: i1.ActivatedRoute }, { type: i0.ElementRef }, { type: i2.SharedService }, { type: i3.FormBuilder }, { type: i1.Router }, { type: i0.Renderer2 }], { ViewID: [{
604
+ type: Input
605
+ }], EntityName: [{
606
+ type: Input
607
+ }], ShowPropertiesButton: [{
608
+ type: Input
609
+ }], dialogClosed: [{
610
+ type: Output
611
+ }], kendoWindow: [{
612
+ type: ViewChild,
613
+ args: [WindowComponent]
614
+ }], kendoTab: [{
615
+ type: ViewChild,
616
+ args: [TabComponent]
617
+ }], nameField: [{
618
+ type: ViewChild,
619
+ args: ['nameField']
620
+ }], dialogContainer: [{
621
+ type: ViewChild,
622
+ args: ['dialogContainer']
623
+ }], outerDialogContainer: [{
624
+ type: ViewChild,
625
+ args: ['outerDialogContainer']
626
+ }] }); })();
627
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserViewPropertiesDialogComponent, { className: "UserViewPropertiesDialogComponent", filePath: "src\\lib\\user-view-properties.component.ts", lineNumber: 21 }); })();
@@ -0,0 +1,17 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./lib/user-view-properties.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@progress/kendo-angular-inputs";
5
+ import * as i4 from "@progress/kendo-angular-label";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@progress/kendo-angular-buttons";
8
+ import * as i7 from "@progress/kendo-angular-dialog";
9
+ import * as i8 from "@progress/kendo-angular-layout";
10
+ import * as i9 from "@progress/kendo-angular-sortable";
11
+ import * as i10 from "@progress/kendo-angular-filter";
12
+ export declare class UserViewPropertiesDialogModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<UserViewPropertiesDialogModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UserViewPropertiesDialogModule, [typeof i1.UserViewPropertiesDialogComponent], [typeof i2.CommonModule, typeof i3.InputsModule, typeof i4.LabelModule, typeof i5.FormsModule, typeof i6.ButtonsModule, typeof i7.WindowModule, typeof i8.TabStripModule, typeof i9.SortableModule, typeof i10.FilterModule], [typeof i1.UserViewPropertiesDialogComponent]>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<UserViewPropertiesDialogModule>;
16
+ }
17
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,qBAmBa,8BAA8B;yCAA9B,8BAA8B;0CAA9B,8BAA8B;0CAA9B,8BAA8B;CAAI"}
package/dist/module.js ADDED
@@ -0,0 +1,57 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { UserViewPropertiesDialogComponent } from './lib/user-view-properties.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FormsModule } from '@angular/forms';
5
+ // Kendo UI Angular imports
6
+ import { InputsModule } from '@progress/kendo-angular-inputs';
7
+ import { LabelModule } from '@progress/kendo-angular-label';
8
+ import { ButtonsModule } from '@progress/kendo-angular-buttons';
9
+ import { WindowModule } from '@progress/kendo-angular-dialog';
10
+ import { TabStripModule } from '@progress/kendo-angular-layout';
11
+ import { SortableModule } from '@progress/kendo-angular-sortable';
12
+ import { FilterModule } from '@progress/kendo-angular-filter';
13
+ import * as i0 from "@angular/core";
14
+ export class UserViewPropertiesDialogModule {
15
+ }
16
+ UserViewPropertiesDialogModule.ɵfac = function UserViewPropertiesDialogModule_Factory(t) { return new (t || UserViewPropertiesDialogModule)(); };
17
+ UserViewPropertiesDialogModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: UserViewPropertiesDialogModule });
18
+ UserViewPropertiesDialogModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
19
+ InputsModule,
20
+ LabelModule,
21
+ FormsModule,
22
+ ButtonsModule,
23
+ WindowModule,
24
+ TabStripModule,
25
+ SortableModule,
26
+ FilterModule] });
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserViewPropertiesDialogModule, [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [
31
+ UserViewPropertiesDialogComponent
32
+ ],
33
+ imports: [
34
+ CommonModule,
35
+ InputsModule,
36
+ LabelModule,
37
+ FormsModule,
38
+ ButtonsModule,
39
+ WindowModule,
40
+ TabStripModule,
41
+ SortableModule,
42
+ FilterModule
43
+ ],
44
+ exports: [
45
+ UserViewPropertiesDialogComponent
46
+ ]
47
+ }]
48
+ }], null, null); })();
49
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(UserViewPropertiesDialogModule, { declarations: [UserViewPropertiesDialogComponent], imports: [CommonModule,
50
+ InputsModule,
51
+ LabelModule,
52
+ FormsModule,
53
+ ButtonsModule,
54
+ WindowModule,
55
+ TabStripModule,
56
+ SortableModule,
57
+ FilterModule], exports: [UserViewPropertiesDialogComponent] }); })();
@@ -0,0 +1,3 @@
1
+ export * from './lib/user-view-properties.component';
2
+ export * from './module';
3
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,sCAAsC,CAAC;AACrD,cAAc,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface
3
+ */
4
+ export * from './lib/user-view-properties.component';
5
+ export * from './module';
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@memberjunction/ng-user-view-properties",
3
+ "version": "0.9.2",
4
+ "description": "MemberJunction: Angular UI Dialog Component to View/Edit User View Properties",
5
+ "main": "./dist/public-api.js",
6
+ "typings": "./dist/public-api.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "test": "echo \"Error: no test specified\" && exit 1",
12
+ "build": "ngc"
13
+ },
14
+ "keywords": [],
15
+ "author": "",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@angular/compiler": "~17.2.2",
19
+ "@angular/compiler-cli": "~17.2.2"
20
+ },
21
+ "peerDependencies": {
22
+ "@angular/common": "~17.2.2",
23
+ "@angular/core": "~17.2.2",
24
+ "@angular/forms": "~17.2.2"
25
+ },
26
+ "dependencies": {
27
+ "@memberjunction/global": "^0.9.165",
28
+ "@memberjunction/core": "^0.9.183",
29
+ "@memberjunction/core-entities": "^0.9.178",
30
+ "@memberjunction/ng-base-forms": "^0.9.14",
31
+ "@memberjunction/ng-shared": "^0.9.46",
32
+ "@progress/kendo-angular-sortable": "~15.1.0",
33
+ "@progress/kendo-angular-dialog": "~15.1.0",
34
+ "@progress/kendo-angular-layout": "~15.1.0",
35
+ "@progress/kendo-angular-inputs": "~15.1.0",
36
+ "@progress/kendo-angular-buttons": "~15.1.0",
37
+ "@progress/kendo-data-query": "~1.7.0",
38
+ "@progress/kendo-angular-filter": "~15.1.0",
39
+ "tslib": "^2.3.0"
40
+ },
41
+ "sideEffects": false
42
+ }