@memberjunction/ng-explorer-core 0.9.167 → 0.9.170

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.
@@ -163,7 +163,7 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
163
163
  i0.ɵɵtext(9);
164
164
  i0.ɵɵelementEnd()();
165
165
  i0.ɵɵelementStart(10, "div", 9)(11, "div", 10)(12, "kendo-dropdownlist", 11);
166
- i0.ɵɵlistener("ngModelChange", function HeaderComponent_Template_kendo_dropdownlist_ngModelChange_12_listener($event) { return ctx.selectedEntity = $event; });
166
+ i0.ɵɵtwoWayListener("ngModelChange", function HeaderComponent_Template_kendo_dropdownlist_ngModelChange_12_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedEntity, $event) || (ctx.selectedEntity = $event); return $event; });
167
167
  i0.ɵɵelementEnd();
168
168
  i0.ɵɵelementStart(13, "input", 12, 13);
169
169
  i0.ɵɵlistener("keydown.enter", function HeaderComponent_Template_input_keydown_enter_13_listener($event) { return ctx.onSearch($event); });
@@ -189,7 +189,8 @@ HeaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: HeaderCompo
189
189
  i0.ɵɵadvance(4);
190
190
  i0.ɵɵtextInterpolate(ctx.appName);
191
191
  i0.ɵɵadvance(3);
192
- i0.ɵɵproperty("data", ctx.searchableEntities)("ngModel", ctx.selectedEntity);
192
+ i0.ɵɵproperty("data", ctx.searchableEntities);
193
+ i0.ɵɵtwoWayProperty("ngModel", ctx.selectedEntity);
193
194
  i0.ɵɵadvance(4);
194
195
  i0.ɵɵproperty("icon", ctx.sharedService.kendoSVGIcon("search"));
195
196
  i0.ɵɵadvance(3);
@@ -25,12 +25,14 @@ function AddItemComponent_ng_container_7_kendo_label_4_Template(rf, ctx) { if (r
25
25
  i0.ɵɵelementStart(0, "kendo-label", 14);
26
26
  i0.ɵɵelement(1, "br");
27
27
  i0.ɵɵelementStart(2, "kendo-dropdownlist", 11);
28
- i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r4.onViewChange($event)); })("ngModelChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r6.selectedView = $event); });
28
+ i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r4.onViewChange($event)); });
29
+ i0.ɵɵtwoWayListener("ngModelChange", function AddItemComponent_ng_container_7_kendo_label_4_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r6.selectedView, $event) || (ctx_r6.selectedView = $event); return i0.ɵɵresetView($event); });
29
30
  i0.ɵɵelementEnd()();
30
31
  } if (rf & 2) {
31
32
  const ctx_r2 = i0.ɵɵnextContext(2);
32
33
  i0.ɵɵadvance(2);
33
- i0.ɵɵproperty("data", ctx_r2.Views)("textField", "Name")("valueField", "ID")("ngModel", ctx_r2.selectedView);
34
+ i0.ɵɵproperty("data", ctx_r2.Views)("textField", "Name")("valueField", "ID");
35
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r2.selectedView);
34
36
  } }
35
37
  function AddItemComponent_ng_container_7_kendo_loader_5_Template(rf, ctx) { if (rf & 1) {
36
38
  i0.ɵɵelement(0, "kendo-loader", 15);
@@ -41,14 +43,16 @@ function AddItemComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
41
43
  i0.ɵɵelementStart(1, "kendo-label", 10);
42
44
  i0.ɵɵelement(2, "br");
43
45
  i0.ɵɵelementStart(3, "kendo-dropdownlist", 11);
44
- i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onEntityChange($event)); })("ngModelChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.selectedEntity = $event); });
46
+ i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.onEntityChange($event)); });
47
+ i0.ɵɵtwoWayListener("ngModelChange", function AddItemComponent_ng_container_7_Template_kendo_dropdownlist_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r9.selectedEntity, $event) || (ctx_r9.selectedEntity = $event); return i0.ɵɵresetView($event); });
45
48
  i0.ɵɵelementEnd()();
46
49
  i0.ɵɵtemplate(4, AddItemComponent_ng_container_7_kendo_label_4_Template, 3, 4, "kendo-label", 12)(5, AddItemComponent_ng_container_7_kendo_loader_5_Template, 1, 0, "kendo-loader", 13);
47
50
  i0.ɵɵelementContainerEnd();
48
51
  } if (rf & 2) {
49
52
  const ctx_r0 = i0.ɵɵnextContext();
50
53
  i0.ɵɵadvance(3);
51
- i0.ɵɵproperty("data", ctx_r0.Entities)("textField", "Name")("valueField", "ID")("ngModel", ctx_r0.selectedEntity);
54
+ i0.ɵɵproperty("data", ctx_r0.Entities)("textField", "Name")("valueField", "ID");
55
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.selectedEntity);
52
56
  i0.ɵɵadvance();
53
57
  i0.ɵɵproperty("ngIf", ctx_r0.selectedEntity && ctx_r0.Views.length);
54
58
  i0.ɵɵadvance();
@@ -59,12 +63,14 @@ function AddItemComponent_ng_container_8_kendo_label_1_Template(rf, ctx) { if (r
59
63
  i0.ɵɵelementStart(0, "kendo-label", 17);
60
64
  i0.ɵɵelement(1, "br");
61
65
  i0.ɵɵelementStart(2, "kendo-dropdownlist", 11);
62
- i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.onViewChange($event)); })("ngModelChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.selectedReport = $event); });
66
+ i0.ɵɵlistener("valueChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_valueChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.onViewChange($event)); });
67
+ i0.ɵɵtwoWayListener("ngModelChange", function AddItemComponent_ng_container_8_kendo_label_1_Template_kendo_dropdownlist_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r14.selectedReport, $event) || (ctx_r14.selectedReport = $event); return i0.ɵɵresetView($event); });
63
68
  i0.ɵɵelementEnd()();
64
69
  } if (rf & 2) {
65
70
  const ctx_r10 = i0.ɵɵnextContext(2);
66
71
  i0.ɵɵadvance(2);
67
- i0.ɵɵproperty("data", ctx_r10.Reports)("textField", "Name")("valueField", "ID")("ngModel", ctx_r10.selectedReport);
72
+ i0.ɵɵproperty("data", ctx_r10.Reports)("textField", "Name")("valueField", "ID");
73
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r10.selectedReport);
68
74
  } }
69
75
  function AddItemComponent_ng_container_8_kendo_loader_2_Template(rf, ctx) { if (rf & 1) {
70
76
  i0.ɵɵelement(0, "kendo-loader", 15);
@@ -174,7 +180,8 @@ AddItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddItemCom
174
180
  i0.ɵɵelementStart(2, "div", 2)(3, "kendo-label", 3);
175
181
  i0.ɵɵelement(4, "br");
176
182
  i0.ɵɵelementStart(5, "kendo-dropdownlist", 4);
177
- i0.ɵɵlistener("valueChange", function AddItemComponent_Template_kendo_dropdownlist_valueChange_5_listener($event) { return ctx.onResourceTypeChange($event); })("ngModelChange", function AddItemComponent_Template_kendo_dropdownlist_ngModelChange_5_listener($event) { return ctx.resourceType = $event; });
183
+ i0.ɵɵlistener("valueChange", function AddItemComponent_Template_kendo_dropdownlist_valueChange_5_listener($event) { return ctx.onResourceTypeChange($event); });
184
+ i0.ɵɵtwoWayListener("ngModelChange", function AddItemComponent_Template_kendo_dropdownlist_ngModelChange_5_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.resourceType, $event) || (ctx.resourceType = $event); return $event; });
178
185
  i0.ɵɵelementEnd()();
179
186
  i0.ɵɵelementStart(6, "div", 5);
180
187
  i0.ɵɵtemplate(7, AddItemComponent_ng_container_7_Template, 6, 6, "ng-container", 6)(8, AddItemComponent_ng_container_8_Template, 3, 2, "ng-container", 6);
@@ -191,7 +198,8 @@ AddItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddItemCom
191
198
  i0.ɵɵadvance();
192
199
  i0.ɵɵproperty("width", 500)("minHeight", 300)("minWidth", 400)("resizable", true);
193
200
  i0.ɵɵadvance(4);
194
- i0.ɵɵproperty("data", ctx.ResourceTypes)("textField", "DisplayName")("valueField", "ID")("subtitle", "sdfsdf")("ngModel", ctx.resourceType);
201
+ i0.ɵɵproperty("data", ctx.ResourceTypes)("textField", "DisplayName")("valueField", "ID")("subtitle", "sdfsdf");
202
+ i0.ɵɵtwoWayProperty("ngModel", ctx.resourceType);
195
203
  i0.ɵɵadvance();
196
204
  i0.ɵɵproperty("ngSwitch", ctx.resourceType.Entity);
197
205
  i0.ɵɵadvance();
@@ -26,11 +26,13 @@ import * as i8 from "../user-view-properties/view-properties-dialog.component";
26
26
  function SingleViewComponent_kendo_textbox_2_Template(rf, ctx) { if (rf & 1) {
27
27
  const _r3 = i0.ɵɵgetCurrentView();
28
28
  i0.ɵɵelementStart(0, "kendo-textbox", 5);
29
- i0.ɵɵlistener("valueChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSearch($event)); })("ngModelChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.searchText = $event); });
29
+ i0.ɵɵlistener("valueChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSearch($event)); });
30
+ i0.ɵɵtwoWayListener("ngModelChange", function SingleViewComponent_kendo_textbox_2_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r4.searchText, $event) || (ctx_r4.searchText = $event); return i0.ɵɵresetView($event); });
30
31
  i0.ɵɵelementEnd();
31
32
  } if (rf & 2) {
32
33
  const ctx_r0 = i0.ɵɵnextContext();
33
- i0.ɵɵproperty("clearButton", true)("ngModel", ctx_r0.searchText);
34
+ i0.ɵɵproperty("clearButton", true);
35
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r0.searchText);
34
36
  } }
35
37
  function SingleViewComponent_app_view_properties_dialog_3_Template(rf, ctx) { if (rf & 1) {
36
38
  const _r6 = i0.ɵɵgetCurrentView();
@@ -1,6 +1,7 @@
1
1
  import { ElementRef, AfterViewInit } from '@angular/core';
2
2
  import { SharedService } from '@memberjunction/ng-shared';
3
3
  import { UserNotificationEntity } from '@memberjunction/core-entities';
4
+ import { TransactionGroupBase } from '@memberjunction/core';
4
5
  import { Router } from '@angular/router';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class UserNotificationsComponent implements AfterViewInit {
@@ -20,12 +21,17 @@ export declare class UserNotificationsComponent implements AfterViewInit {
20
21
  queryString: string;
21
22
  };
22
23
  get AllNotifications(): UserNotificationEntity[];
24
+ get UnreadNotifications(): UserNotificationEntity[];
25
+ get ReadNotifications(): UserNotificationEntity[];
23
26
  selectReadOption(option: string): void;
24
27
  onReadRadioChanged(event: Event): void;
25
28
  onFilterChanged(value: string): void;
26
29
  getItemTitleClass(notification: UserNotificationEntity): "notification-title notification-title-unread" | "notification-title";
27
30
  getItemWrapperClass(notification: UserNotificationEntity): string;
28
- markAsRead(notification: UserNotificationEntity, bRead: boolean): Promise<void>;
31
+ markAsRead(notification: UserNotificationEntity, bRead: boolean, transGroup: TransactionGroupBase | null): Promise<boolean>;
32
+ markAllAsRead(): Promise<void>;
33
+ markAllAsUnread(): Promise<void>;
34
+ markAll(bRead: boolean): Promise<void>;
29
35
  notificationClicked(notification: UserNotificationEntity): void;
30
36
  static ɵfac: i0.ɵɵFactoryDeclaration<UserNotificationsComponent, never>;
31
37
  static ɵcmp: i0.ɵɵComponentDeclaration<UserNotificationsComponent, "app-user-notifications", never, {}, {}, never, never, false, never>;
@@ -21,57 +21,110 @@ import * as i7 from "@progress/kendo-angular-listview";
21
21
  const _c0 = ["allRadio"];
22
22
  const _c1 = ["unreadRadio"];
23
23
  const _c2 = ["readRadio"];
24
- function UserNotificationsComponent_ng_template_18_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelement(0, "span", 14);
24
+ function UserNotificationsComponent_button_5_Template(rf, ctx) { if (rf & 1) {
25
+ const _r11 = i0.ɵɵgetCurrentView();
26
+ i0.ɵɵelementStart(0, "button", 12);
27
+ i0.ɵɵlistener("click", function UserNotificationsComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.markAllAsRead()); });
28
+ i0.ɵɵtext(1, "Mark All as Read");
29
+ i0.ɵɵelementEnd();
30
+ } }
31
+ function UserNotificationsComponent_button_6_Template(rf, ctx) { if (rf & 1) {
32
+ const _r13 = i0.ɵɵgetCurrentView();
33
+ i0.ɵɵelementStart(0, "button", 12);
34
+ i0.ɵɵlistener("click", function UserNotificationsComponent_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.markAllAsUnread()); });
35
+ i0.ɵɵtext(1, "Mark All as Unread");
36
+ i0.ɵɵelementEnd();
37
+ } }
38
+ function UserNotificationsComponent_input_7_Template(rf, ctx) { if (rf & 1) {
39
+ const _r16 = i0.ɵɵgetCurrentView();
40
+ i0.ɵɵelementStart(0, "input", 13, 14);
41
+ i0.ɵɵlistener("change", function UserNotificationsComponent_input_7_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.onReadRadioChanged($event)); });
42
+ i0.ɵɵelementEnd();
26
43
  } }
27
- function UserNotificationsComponent_ng_template_20_button_10_Template(rf, ctx) { if (rf & 1) {
28
- const _r10 = i0.ɵɵgetCurrentView();
29
- i0.ɵɵelementStart(0, "button", 20);
30
- i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_20_button_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const dataItem_r5 = i0.ɵɵnextContext().dataItem; const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.markAsRead(dataItem_r5, true)); });
44
+ function UserNotificationsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
45
+ const _r18 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "span", 15);
47
+ i0.ɵɵlistener("click", function UserNotificationsComponent_span_8_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.selectReadOption("All")); });
48
+ i0.ɵɵtext(1, "All");
49
+ i0.ɵɵelementEnd();
50
+ } }
51
+ function UserNotificationsComponent_input_9_Template(rf, ctx) { if (rf & 1) {
52
+ const _r21 = i0.ɵɵgetCurrentView();
53
+ i0.ɵɵelementStart(0, "input", 16, 17);
54
+ i0.ɵɵlistener("change", function UserNotificationsComponent_input_9_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.onReadRadioChanged($event)); });
55
+ i0.ɵɵelementEnd();
56
+ } }
57
+ function UserNotificationsComponent_span_10_Template(rf, ctx) { if (rf & 1) {
58
+ const _r23 = i0.ɵɵgetCurrentView();
59
+ i0.ɵɵelementStart(0, "span", 15);
60
+ i0.ɵɵlistener("click", function UserNotificationsComponent_span_10_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.selectReadOption("Unread")); });
61
+ i0.ɵɵtext(1, "Unread");
62
+ i0.ɵɵelementEnd();
63
+ } }
64
+ function UserNotificationsComponent_input_11_Template(rf, ctx) { if (rf & 1) {
65
+ const _r26 = i0.ɵɵgetCurrentView();
66
+ i0.ɵɵelementStart(0, "input", 18, 19);
67
+ i0.ɵɵlistener("change", function UserNotificationsComponent_input_11_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r25.onReadRadioChanged($event)); });
68
+ i0.ɵɵelementEnd();
69
+ } }
70
+ function UserNotificationsComponent_span_12_Template(rf, ctx) { if (rf & 1) {
71
+ const _r28 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "span", 15);
73
+ i0.ɵɵlistener("click", function UserNotificationsComponent_span_12_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.selectReadOption("Read")); });
74
+ i0.ɵɵtext(1, "Read");
75
+ i0.ɵɵelementEnd();
76
+ } }
77
+ function UserNotificationsComponent_ng_template_14_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelement(0, "span", 20);
79
+ } }
80
+ function UserNotificationsComponent_ng_template_16_button_10_Template(rf, ctx) { if (rf & 1) {
81
+ const _r34 = i0.ɵɵgetCurrentView();
82
+ i0.ɵɵelementStart(0, "button", 12);
83
+ i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_16_button_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r34); const dataItem_r29 = i0.ɵɵnextContext().dataItem; const ctx_r32 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r32.markAsRead(dataItem_r29, true, null)); });
31
84
  i0.ɵɵtext(1, "Mark as Read");
32
85
  i0.ɵɵelementEnd();
33
86
  } }
34
- function UserNotificationsComponent_ng_template_20_button_11_Template(rf, ctx) { if (rf & 1) {
35
- const _r13 = i0.ɵɵgetCurrentView();
36
- i0.ɵɵelementStart(0, "button", 20);
37
- i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_20_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const dataItem_r5 = i0.ɵɵnextContext().dataItem; const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.markAsRead(dataItem_r5, false)); });
87
+ function UserNotificationsComponent_ng_template_16_button_11_Template(rf, ctx) { if (rf & 1) {
88
+ const _r37 = i0.ɵɵgetCurrentView();
89
+ i0.ɵɵelementStart(0, "button", 12);
90
+ i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_16_button_11_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r37); const dataItem_r29 = i0.ɵɵnextContext().dataItem; const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.markAsRead(dataItem_r29, false, null)); });
38
91
  i0.ɵɵtext(1, "Mark as Unread");
39
92
  i0.ɵɵelementEnd();
40
93
  } }
41
- function UserNotificationsComponent_ng_template_20_Template(rf, ctx) { if (rf & 1) {
42
- const _r15 = i0.ɵɵgetCurrentView();
43
- i0.ɵɵelementStart(0, "div")(1, "div", 15);
44
- i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_20_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const dataItem_r5 = restoredCtx.dataItem; const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.notificationClicked(dataItem_r5)); });
94
+ function UserNotificationsComponent_ng_template_16_Template(rf, ctx) { if (rf & 1) {
95
+ const _r39 = i0.ɵɵgetCurrentView();
96
+ i0.ɵɵelementStart(0, "div")(1, "div", 21);
97
+ i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_16_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r39); const dataItem_r29 = restoredCtx.dataItem; const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.notificationClicked(dataItem_r29)); });
45
98
  i0.ɵɵtext(2);
46
99
  i0.ɵɵelementEnd();
47
- i0.ɵɵelementStart(3, "div", 16);
48
- i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_20_Template_div_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const dataItem_r5 = restoredCtx.dataItem; const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.notificationClicked(dataItem_r5)); });
49
- i0.ɵɵelementStart(4, "div", 17);
100
+ i0.ɵɵelementStart(3, "div", 22);
101
+ i0.ɵɵlistener("click", function UserNotificationsComponent_ng_template_16_Template_div_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r39); const dataItem_r29 = restoredCtx.dataItem; const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r40.notificationClicked(dataItem_r29)); });
102
+ i0.ɵɵelementStart(4, "div", 23);
50
103
  i0.ɵɵtext(5);
51
104
  i0.ɵɵpipe(6, "date");
52
105
  i0.ɵɵelementEnd();
53
- i0.ɵɵelementStart(7, "div", 18);
106
+ i0.ɵɵelementStart(7, "div", 24);
54
107
  i0.ɵɵtext(8);
55
108
  i0.ɵɵelementEnd()();
56
109
  i0.ɵɵelementStart(9, "div");
57
- i0.ɵɵtemplate(10, UserNotificationsComponent_ng_template_20_button_10_Template, 2, 0, "button", 19)(11, UserNotificationsComponent_ng_template_20_button_11_Template, 2, 0, "button", 19);
110
+ i0.ɵɵtemplate(10, UserNotificationsComponent_ng_template_16_button_10_Template, 2, 0, "button", 3)(11, UserNotificationsComponent_ng_template_16_button_11_Template, 2, 0, "button", 3);
58
111
  i0.ɵɵelementEnd()();
59
112
  } if (rf & 2) {
60
- const dataItem_r5 = ctx.dataItem;
61
- const ctx_r4 = i0.ɵɵnextContext();
62
- i0.ɵɵclassMap(ctx_r4.getItemWrapperClass(dataItem_r5));
113
+ const dataItem_r29 = ctx.dataItem;
114
+ const ctx_r9 = i0.ɵɵnextContext();
115
+ i0.ɵɵclassMap(ctx_r9.getItemWrapperClass(dataItem_r29));
63
116
  i0.ɵɵadvance();
64
- i0.ɵɵclassMap(ctx_r4.getItemTitleClass(dataItem_r5));
117
+ i0.ɵɵclassMap(ctx_r9.getItemTitleClass(dataItem_r29));
65
118
  i0.ɵɵadvance();
66
- i0.ɵɵtextInterpolate(dataItem_r5.Title);
119
+ i0.ɵɵtextInterpolate(dataItem_r29.Title);
67
120
  i0.ɵɵadvance(3);
68
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(6, 9, dataItem_r5.CreatedAt, "long"));
121
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(6, 9, dataItem_r29.CreatedAt, "long"));
69
122
  i0.ɵɵadvance(3);
70
- i0.ɵɵtextInterpolate(dataItem_r5.Message);
123
+ i0.ɵɵtextInterpolate(dataItem_r29.Message);
71
124
  i0.ɵɵadvance(2);
72
- i0.ɵɵproperty("ngIf", dataItem_r5.Unread);
125
+ i0.ɵɵproperty("ngIf", dataItem_r29.Unread);
73
126
  i0.ɵɵadvance();
74
- i0.ɵɵproperty("ngIf", !dataItem_r5.Unread);
127
+ i0.ɵɵproperty("ngIf", !dataItem_r29.Unread);
75
128
  } }
76
129
  export class UserNotificationsComponent {
77
130
  constructor(sharedService, router) {
@@ -151,6 +204,12 @@ export class UserNotificationsComponent {
151
204
  get AllNotifications() {
152
205
  return SharedService.UserNotifications;
153
206
  }
207
+ get UnreadNotifications() {
208
+ return this.AllNotifications.filter(n => n.Unread);
209
+ }
210
+ get ReadNotifications() {
211
+ return this.AllNotifications.filter(n => !n.Unread);
212
+ }
154
213
  selectReadOption(option) {
155
214
  this.radioSelected = option;
156
215
  // now update the radio button group in the UI
@@ -190,7 +249,7 @@ export class UserNotificationsComponent {
190
249
  classInfo += ' notification-wrap-unread';
191
250
  return classInfo;
192
251
  }
193
- markAsRead(notification, bRead) {
252
+ markAsRead(notification, bRead, transGroup) {
194
253
  return __awaiter(this, void 0, void 0, function* () {
195
254
  if (notification) {
196
255
  notification.Unread = !bRead;
@@ -198,17 +257,65 @@ export class UserNotificationsComponent {
198
257
  const notificationEntity = yield md.GetEntityObject('User Notifications');
199
258
  yield notificationEntity.Load(notification.ID);
200
259
  notificationEntity.Unread = notification.Unread; //copy from local object
201
- if (yield notificationEntity.Save())
202
- SharedService.RefreshUserNotifications();
203
- else
204
- this.sharedService.CreateSimpleNotification('Unable to mark notification as read', 'error', 5000);
260
+ // part of a transaction group, if so, add it as that will defer the actual network traffic/save
261
+ if (transGroup) {
262
+ notificationEntity.TransactionGroup = transGroup;
263
+ notificationEntity.Save(); // no await when using a transaction group
264
+ return true;
265
+ }
266
+ else {
267
+ if (yield notificationEntity.Save()) {
268
+ SharedService.RefreshUserNotifications();
269
+ return true;
270
+ }
271
+ else {
272
+ this.sharedService.CreateSimpleNotification('Unable to mark notification as read', 'error', 5000);
273
+ return false; // let caller do notifications
274
+ }
275
+ }
276
+ }
277
+ else {
278
+ return false;
279
+ }
280
+ });
281
+ }
282
+ markAllAsRead() {
283
+ return __awaiter(this, void 0, void 0, function* () {
284
+ this.markAll(true);
285
+ });
286
+ }
287
+ markAllAsUnread() {
288
+ return __awaiter(this, void 0, void 0, function* () {
289
+ this.markAll(false);
290
+ });
291
+ }
292
+ markAll(bRead) {
293
+ return __awaiter(this, void 0, void 0, function* () {
294
+ // do a transaction group, not so much for ATOMICITY but for performance in terms of latency to/from the server
295
+ const md = new Metadata();
296
+ const transGroup = yield md.CreateTransactionGroup();
297
+ for (const notification of this.AllNotifications) {
298
+ if (notification.Unread && bRead || !notification.Unread && !bRead) {
299
+ // don't await, we want to just keep going, the backgorund DB stuff happens when it happens but we can update the UI right away
300
+ if (!(yield this.markAsRead(notification, bRead, transGroup))) {
301
+ // failed
302
+ this.sharedService.CreateSimpleNotification('Unable to mark all notifications as read', 'error', 5000);
303
+ // bail out here
304
+ return;
305
+ }
306
+ }
205
307
  }
308
+ // if we get here, that means all the saves worked...
309
+ if (!(yield transGroup.Submit()))
310
+ this.sharedService.CreateSimpleNotification('Unable to mark all notifications as read', 'error', 5000);
311
+ else
312
+ SharedService.RefreshUserNotifications();
206
313
  });
207
314
  }
208
315
  notificationClicked(notification) {
209
316
  if (this.isNotificationClickable(notification)) {
210
317
  // also mark this as read when we click it
211
- this.markAsRead(notification, true);
318
+ this.markAsRead(notification, true, null);
212
319
  const info = this.notificationUrl(notification);
213
320
  if (info.queryString && info.queryString.trim().length > 0) {
214
321
  const fullUrl = `${info.urlParts.join('/')}${info.queryString ? '?' + info.queryString : ''}`;
@@ -229,46 +336,43 @@ UserNotificationsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
229
336
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.allRadio = _t.first);
230
337
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.unreadRadio = _t.first);
231
338
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.readRadio = _t.first);
232
- } }, decls: 21, vars: 2, consts: [["mjFillContainer", "", 1, "notification-list-wrap", 3, "bottomMargin"], [1, "header"], [1, "title"], ["checked", "", "type", "radio", "name", "UnreadStatus", "value", "All", 3, "change"], ["allRadio", ""], [1, "radio-label", 3, "click"], ["type", "radio", "name", "UnreadStatus", "value", "Unread", 3, "change"], ["unreadRadio", ""], ["type", "radio", "name", "UnreadStatus", "value", "Read", 3, "change"], ["readRadio", ""], ["placeholder", "Filter items...", 1, "filter-input", 3, "valueChange"], ["kendoTextBoxSuffixTemplate", ""], [3, "data"], ["kendoListViewItemTemplate", ""], [1, "k-icon", "k-i-search"], [3, "click"], [1, "notification-body", 3, "click"], [1, "notification-date"], [1, "notification-message"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click"]], template: function UserNotificationsComponent_Template(rf, ctx) { if (rf & 1) {
339
+ } }, decls: 17, vars: 10, consts: [["mjFillContainer", "", 1, "notification-list-wrap", 3, "bottomMargin"], [1, "header"], [1, "title"], ["kendoButton", "", 3, "click", 4, "ngIf"], ["checked", "", "type", "radio", "name", "UnreadStatus", "value", "All", 3, "change", 4, "ngIf"], ["class", "radio-label", 3, "click", 4, "ngIf"], ["type", "radio", "name", "UnreadStatus", "value", "Unread", 3, "change", 4, "ngIf"], ["type", "radio", "name", "UnreadStatus", "value", "Read", 3, "change", 4, "ngIf"], ["placeholder", "Filter items...", 1, "filter-input", 3, "valueChange"], ["kendoTextBoxSuffixTemplate", ""], [3, "data"], ["kendoListViewItemTemplate", ""], ["kendoButton", "", 3, "click"], ["checked", "", "type", "radio", "name", "UnreadStatus", "value", "All", 3, "change"], ["allRadio", ""], [1, "radio-label", 3, "click"], ["type", "radio", "name", "UnreadStatus", "value", "Unread", 3, "change"], ["unreadRadio", ""], ["type", "radio", "name", "UnreadStatus", "value", "Read", 3, "change"], ["readRadio", ""], [1, "k-icon", "k-i-search"], [3, "click"], [1, "notification-body", 3, "click"], [1, "notification-date"], [1, "notification-message"]], template: function UserNotificationsComponent_Template(rf, ctx) { if (rf & 1) {
233
340
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
234
341
  i0.ɵɵtext(3, " Notifications ");
235
342
  i0.ɵɵelementEnd();
236
- i0.ɵɵelementStart(4, "div")(5, "input", 3, 4);
237
- i0.ɵɵlistener("change", function UserNotificationsComponent_Template_input_change_5_listener($event) { return ctx.onReadRadioChanged($event); });
238
- i0.ɵɵelementEnd();
239
- i0.ɵɵelementStart(7, "span", 5);
240
- i0.ɵɵlistener("click", function UserNotificationsComponent_Template_span_click_7_listener() { return ctx.selectReadOption("All"); });
241
- i0.ɵɵtext(8, "All");
242
- i0.ɵɵelementEnd();
243
- i0.ɵɵelementStart(9, "input", 6, 7);
244
- i0.ɵɵlistener("change", function UserNotificationsComponent_Template_input_change_9_listener($event) { return ctx.onReadRadioChanged($event); });
245
- i0.ɵɵelementEnd();
246
- i0.ɵɵelementStart(11, "span", 5);
247
- i0.ɵɵlistener("click", function UserNotificationsComponent_Template_span_click_11_listener() { return ctx.selectReadOption("Unread"); });
248
- i0.ɵɵtext(12, "Unread");
249
- i0.ɵɵelementEnd();
250
- i0.ɵɵelementStart(13, "input", 8, 9);
251
- i0.ɵɵlistener("change", function UserNotificationsComponent_Template_input_change_13_listener($event) { return ctx.onReadRadioChanged($event); });
252
- i0.ɵɵelementEnd();
253
- i0.ɵɵelementStart(15, "span", 5);
254
- i0.ɵɵlistener("click", function UserNotificationsComponent_Template_span_click_15_listener() { return ctx.selectReadOption("Read"); });
255
- i0.ɵɵtext(16, "Read");
256
- i0.ɵɵelementEnd();
257
- i0.ɵɵelementStart(17, "kendo-textbox", 10);
258
- i0.ɵɵlistener("valueChange", function UserNotificationsComponent_Template_kendo_textbox_valueChange_17_listener($event) { return ctx.onFilterChanged($event); });
259
- i0.ɵɵtemplate(18, UserNotificationsComponent_ng_template_18_Template, 1, 0, "ng-template", 11);
343
+ i0.ɵɵelementStart(4, "div");
344
+ i0.ɵɵtemplate(5, UserNotificationsComponent_button_5_Template, 2, 0, "button", 3)(6, UserNotificationsComponent_button_6_Template, 2, 0, "button", 3)(7, UserNotificationsComponent_input_7_Template, 2, 0, "input", 4)(8, UserNotificationsComponent_span_8_Template, 2, 0, "span", 5)(9, UserNotificationsComponent_input_9_Template, 2, 0, "input", 6)(10, UserNotificationsComponent_span_10_Template, 2, 0, "span", 5)(11, UserNotificationsComponent_input_11_Template, 2, 0, "input", 7)(12, UserNotificationsComponent_span_12_Template, 2, 0, "span", 5);
345
+ i0.ɵɵelementStart(13, "kendo-textbox", 8);
346
+ i0.ɵɵlistener("valueChange", function UserNotificationsComponent_Template_kendo_textbox_valueChange_13_listener($event) { return ctx.onFilterChanged($event); });
347
+ i0.ɵɵtemplate(14, UserNotificationsComponent_ng_template_14_Template, 1, 0, "ng-template", 9);
260
348
  i0.ɵɵelementEnd()()();
261
- i0.ɵɵelementStart(19, "kendo-listview", 12);
262
- i0.ɵɵtemplate(20, UserNotificationsComponent_ng_template_20_Template, 12, 12, "ng-template", 13);
349
+ i0.ɵɵelementStart(15, "kendo-listview", 10);
350
+ i0.ɵɵtemplate(16, UserNotificationsComponent_ng_template_16_Template, 12, 12, "ng-template", 11);
263
351
  i0.ɵɵelementEnd()();
264
352
  } if (rf & 2) {
265
353
  i0.ɵɵproperty("bottomMargin", 5);
266
- i0.ɵɵadvance(19);
354
+ i0.ɵɵadvance(5);
355
+ i0.ɵɵproperty("ngIf", ctx.UnreadNotifications.length > 0);
356
+ i0.ɵɵadvance();
357
+ i0.ɵɵproperty("ngIf", ctx.ReadNotifications.length > 0);
358
+ i0.ɵɵadvance();
359
+ i0.ɵɵproperty("ngIf", ctx.AllNotifications.length > 0);
360
+ i0.ɵɵadvance();
361
+ i0.ɵɵproperty("ngIf", ctx.AllNotifications.length > 0);
362
+ i0.ɵɵadvance();
363
+ i0.ɵɵproperty("ngIf", ctx.UnreadNotifications.length > 0 && ctx.ReadNotifications.length > 0);
364
+ i0.ɵɵadvance();
365
+ i0.ɵɵproperty("ngIf", ctx.UnreadNotifications.length > 0 && ctx.ReadNotifications.length > 0);
366
+ i0.ɵɵadvance();
367
+ i0.ɵɵproperty("ngIf", ctx.ReadNotifications.length > 0 && ctx.UnreadNotifications.length > 0);
368
+ i0.ɵɵadvance();
369
+ i0.ɵɵproperty("ngIf", ctx.ReadNotifications.length > 0 && ctx.UnreadNotifications.length > 0);
370
+ i0.ɵɵadvance(3);
267
371
  i0.ɵɵproperty("data", ctx.NotificationsToShow);
268
- } }, dependencies: [i3.NgIf, i4.ButtonComponent, i5.TextBoxComponent, i5.TextBoxSuffixTemplateDirective, i6.FillContainer, i7.ItemTemplateDirective, i7.ListViewComponent, i3.DatePipe], styles: [".notification-list-wrap[_ngcontent-%COMP%] {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview[_ngcontent-%COMP%] {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product[_ngcontent-%COMP%] {\r\n width: 100%;\r\n}\r\n.header[_ngcontent-%COMP%] {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n.title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input[_ngcontent-%COMP%] {\r\n width: 200px;\r\n}\r\n.radio-label[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap[_ngcontent-%COMP%] {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread[_ngcontent-%COMP%] {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title[_ngcontent-%COMP%] {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable[_ngcontent-%COMP%] > .notification-title[_ngcontent-%COMP%] {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date[_ngcontent-%COMP%] {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] });
372
+ } }, dependencies: [i3.NgIf, i4.ButtonComponent, i5.TextBoxComponent, i5.TextBoxSuffixTemplateDirective, i6.FillContainer, i7.ItemTemplateDirective, i7.ListViewComponent, i3.DatePipe], styles: [".notification-list-wrap[_ngcontent-%COMP%] {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview[_ngcontent-%COMP%] {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product[_ngcontent-%COMP%] {\r\n width: 100%;\r\n}\r\n.header[_ngcontent-%COMP%] {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n\r\n.header[_ngcontent-%COMP%] button[_ngcontent-%COMP%] { \n\r\n margin-right: 10px; \r\n}\r\n\r\n.title[_ngcontent-%COMP%] {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input[_ngcontent-%COMP%] {\r\n width: 200px;\r\n}\r\n.radio-label[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap[_ngcontent-%COMP%] {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread[_ngcontent-%COMP%] {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable[_ngcontent-%COMP%] {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title[_ngcontent-%COMP%] {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable[_ngcontent-%COMP%] > .notification-title[_ngcontent-%COMP%] {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread[_ngcontent-%COMP%] {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body[_ngcontent-%COMP%] {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date[_ngcontent-%COMP%] {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] });
269
373
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserNotificationsComponent, [{
270
374
  type: Component,
271
- args: [{ selector: 'app-user-notifications', template: "<div class=\"notification-list-wrap\" mjFillContainer [bottomMargin]=\"5\"> \n <div class=\"header\">\n <div class=\"title\">\n Notifications\n </div>\n <div>\n <input #allRadio checked type=\"radio\" name=\"UnreadStatus\" value=\"All\" (change)=\"onReadRadioChanged($event)\" /><span class=\"radio-label\" \n (click)=\"selectReadOption('All')\">All</span>\n <input #unreadRadio type=\"radio\" name=\"UnreadStatus\" value=\"Unread\" (change)=\"onReadRadioChanged($event)\" /><span class=\"radio-label\" \n (click)=\"selectReadOption('Unread')\">Unread</span>\n <input #readRadio type=\"radio\" name=\"UnreadStatus\" value=\"Read\" (change)=\"onReadRadioChanged($event)\" /><span class=\"radio-label\" \n (click)=\"selectReadOption('Read')\">Read</span>\n <kendo-textbox\n class=\"filter-input\"\n placeholder=\"Filter items...\"\n (valueChange)=\"onFilterChanged($event)\"\n >\n <ng-template kendoTextBoxSuffixTemplate>\n <span class=\"k-icon k-i-search\"></span>\n </ng-template>\n </kendo-textbox> \n </div>\n </div> \n\n <kendo-listview [data]=\"NotificationsToShow\">\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div [class]=\"getItemWrapperClass(dataItem)\">\n <div [class]=\"getItemTitleClass(dataItem)\" (click)=\"notificationClicked(dataItem)\">{{dataItem.Title}}</div>\n <div class=\"notification-body\" (click)=\"notificationClicked(dataItem)\">\n <div class=\"notification-date\">{{dataItem.CreatedAt | date:'long'}}</div>\n <div class=\"notification-message\">{{dataItem.Message}}</div>\n </div>\n <div>\n <button kendoButton *ngIf=\"dataItem.Unread\" (click)=\"markAsRead(dataItem, true)\">Mark as Read</button>\n <button kendoButton *ngIf=\"!dataItem.Unread\" (click)=\"markAsRead(dataItem, false)\">Mark as Unread</button>\n </div> \n </div>\n </ng-template>\n </kendo-listview>\n</div>\n", styles: [".notification-list-wrap {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product {\r\n width: 100%;\r\n}\r\n.header {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n.title {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input {\r\n width: 200px;\r\n}\r\n.radio-label {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable > .notification-title {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] }]
375
+ args: [{ selector: 'app-user-notifications', template: "<div class=\"notification-list-wrap\" mjFillContainer [bottomMargin]=\"5\"> \n <div class=\"header\">\n <div class=\"title\">\n Notifications\n </div>\n <div>\n <button *ngIf=\"UnreadNotifications.length > 0\" kendoButton (click)=\"markAllAsRead()\">Mark All as Read</button>\n <button *ngIf=\"ReadNotifications.length > 0\" kendoButton (click)=\"markAllAsUnread()\">Mark All as Unread</button>\n <input *ngIf=\"AllNotifications.length > 0\" #allRadio checked type=\"radio\" name=\"UnreadStatus\" value=\"All\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"AllNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('All')\">All</span>\n <input *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" #unreadRadio type=\"radio\" name=\"UnreadStatus\" value=\"Unread\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"UnreadNotifications.length > 0 && ReadNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('Unread')\">Unread</span>\n <input *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" #readRadio type=\"radio\" name=\"UnreadStatus\" value=\"Read\" (change)=\"onReadRadioChanged($event)\" /><span *ngIf=\"ReadNotifications.length > 0 && UnreadNotifications.length > 0\" class=\"radio-label\" \n (click)=\"selectReadOption('Read')\">Read</span>\n <kendo-textbox\n class=\"filter-input\"\n placeholder=\"Filter items...\"\n (valueChange)=\"onFilterChanged($event)\"\n >\n <ng-template kendoTextBoxSuffixTemplate>\n <span class=\"k-icon k-i-search\"></span>\n </ng-template>\n </kendo-textbox> \n </div>\n </div> \n\n <kendo-listview [data]=\"NotificationsToShow\">\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div [class]=\"getItemWrapperClass(dataItem)\">\n <div [class]=\"getItemTitleClass(dataItem)\" (click)=\"notificationClicked(dataItem)\">{{dataItem.Title}}</div>\n <div class=\"notification-body\" (click)=\"notificationClicked(dataItem)\">\n <div class=\"notification-date\">{{dataItem.CreatedAt | date:'long'}}</div>\n <div class=\"notification-message\">{{dataItem.Message}}</div>\n </div>\n <div>\n <button kendoButton *ngIf=\"dataItem.Unread\" (click)=\"markAsRead(dataItem, true, null)\">Mark as Read</button>\n <button kendoButton *ngIf=\"!dataItem.Unread\" (click)=\"markAsRead(dataItem, false, null)\">Mark as Unread</button>\n </div> \n </div>\n </ng-template>\n </kendo-listview>\n</div>\n", styles: [".notification-list-wrap {\r\n height: 800px;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n border: solid 1px lightgray;\r\n}\r\n\r\n.k-listview {\r\n font-family: sans-serif;\r\n border: 0;\r\n}\r\n.product {\r\n width: 100%;\r\n}\r\n.header {\r\n display: flex;\r\n background-color: lightgray;\r\n padding: 12px;\r\n height: 24px;\r\n}\r\n\r\n.header button { /*buttons within the header*/\r\n margin-right: 10px; \r\n}\r\n\r\n.title {\r\n flex: 1;\r\n font-size: 22px;\r\n font-weight: bold;\r\n}\r\n.filter-input {\r\n width: 200px;\r\n}\r\n.radio-label {\r\n cursor: pointer;\r\n margin-right: 10px;\r\n}\r\n\r\n.notification-wrap {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n padding-top: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: dashed 1px lightgray;\r\n background-color: white;\r\n}\r\n\r\n.notification-wrap-unread {\r\n background-color: aliceblue;\r\n}\r\n\r\n.notification-wrap-clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.notification-title {\r\n font-size: 16px;\r\n}\r\n.notification-wrap-clickable > .notification-title {\r\n color: blue;\r\n text-decoration: underline;\r\n}\r\n.notification-title-unread {\r\n font-weight: bold;\r\n}\r\n\r\n.notification-body {\r\n font-size: 14px;\r\n}\r\n\r\n.notification-date {\r\n margin-left: 1px;\r\n font-size: 12px;\r\n color: gray;\r\n font-style: italic;\r\n}"] }]
272
376
  }], () => [{ type: i1.SharedService }, { type: i2.Router }], { allRadio: [{
273
377
  type: ViewChild,
274
378
  args: ['allRadio']
@@ -57,24 +57,25 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template(rf,
57
57
  i0.ɵɵelementStart(0, "div", 21)(1, "div", 22);
58
58
  i0.ɵɵelement(2, "kendo-label", 23);
59
59
  i0.ɵɵelementStart(3, "kendo-textbox", 24, 25);
60
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r13.record.Name = $event); });
60
+ 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); });
61
61
  i0.ɵɵelementEnd()();
62
62
  i0.ɵɵelementStart(5, "div", 26);
63
63
  i0.ɵɵelement(6, "kendo-label", 27);
64
64
  i0.ɵɵelementStart(7, "textarea", 28);
65
- i0.ɵɵlistener("ngModelChange", function ViewPropertiesDialogComponent_kendo_window_3_ng_template_7_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r15.record.Description = $event); });
65
+ 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); });
66
66
  i0.ɵɵelementEnd()()();
67
67
  } if (rf & 2) {
68
68
  const ctx_r7 = i0.ɵɵnextContext(2);
69
69
  i0.ɵɵadvance(3);
70
- i0.ɵɵproperty("ngModel", ctx_r7.record.Name);
70
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r7.record.Name);
71
71
  i0.ɵɵadvance(4);
72
- i0.ɵɵproperty("ngModel", ctx_r7.record.Description);
72
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r7.record.Description);
73
73
  } }
74
74
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_1_Template(rf, ctx) { if (rf & 1) {
75
75
  const _r19 = i0.ɵɵgetCurrentView();
76
76
  i0.ɵɵelementStart(0, "div", 30)(1, "div")(2, "input", 31);
77
- i0.ɵɵlistener("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; return i0.ɵɵresetView(!(col_r17.hidden = $event)); })("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)); });
77
+ 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); });
78
+ 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
79
  i0.ɵɵelementEnd();
79
80
  i0.ɵɵelement(3, "kendo-label", 32);
80
81
  i0.ɵɵelementEnd();
@@ -85,7 +86,7 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_ng_template_
85
86
  const ctx_r16 = i0.ɵɵnextContext(3);
86
87
  i0.ɵɵadvance(2);
87
88
  i0.ɵɵpropertyInterpolate1("id", "column_", col_r17.ID, "");
88
- i0.ɵɵproperty("ngModel", !col_r17.hidden);
89
+ i0.ɵɵtwoWayProperty("ngModel", !col_r17.hidden);
89
90
  i0.ɵɵadvance();
90
91
  i0.ɵɵproperty("for", "column_" + col_r17.ID)("text", col_r17.DisplayName ? col_r17.DisplayName : col_r17.Name);
91
92
  i0.ɵɵadvance();
@@ -104,13 +105,14 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_9_Template(rf,
104
105
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_3_Template(rf, ctx) { if (rf & 1) {
105
106
  const _r26 = i0.ɵɵgetCurrentView();
106
107
  i0.ɵɵelementStart(0, "div", 38)(1, "kendo-textarea", 39);
107
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r25.record.SmartFilterPrompt = $event); });
108
+ 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
109
  i0.ɵɵelementEnd()();
109
110
  } if (rf & 2) {
110
111
  const ctx_r23 = i0.ɵɵnextContext(3);
111
112
  i0.ɵɵproperty("fillHeight", true);
112
113
  i0.ɵɵadvance();
113
- i0.ɵɵproperty("rows", 10)("ngModel", ctx_r23.record.SmartFilterPrompt);
114
+ i0.ɵɵproperty("rows", 10);
115
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r23.record.SmartFilterPrompt);
114
116
  } }
115
117
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_div_4_Template(rf, ctx) { if (rf & 1) {
116
118
  const _r28 = i0.ɵɵgetCurrentView();
@@ -127,13 +129,13 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template(rf
127
129
  i0.ɵɵelementStart(0, "div", 33);
128
130
  i0.ɵɵelement(1, "kendo-label", 34);
129
131
  i0.ɵɵelementStart(2, "kendo-switch", 35);
130
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r29.record.SmartFilterEnabled = $event); });
132
+ 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); });
131
133
  i0.ɵɵelementEnd()();
132
134
  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);
133
135
  } if (rf & 2) {
134
136
  const ctx_r9 = i0.ɵɵnextContext(2);
135
137
  i0.ɵɵadvance(2);
136
- i0.ɵɵproperty("ngModel", ctx_r9.record.SmartFilterEnabled);
138
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r9.record.SmartFilterEnabled);
137
139
  i0.ɵɵadvance();
138
140
  i0.ɵɵproperty("ngIf", ctx_r9.record.SmartFilterEnabled);
139
141
  i0.ɵɵadvance();
@@ -142,10 +144,12 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_11_Template(rf
142
144
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Template(rf, ctx) { if (rf & 1) {
143
145
  const _r34 = i0.ɵɵgetCurrentView();
144
146
  i0.ɵɵelementStart(0, "div")(1, "kendo-dropdownlist", 43);
145
- 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)); })("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; return i0.ɵɵresetView(s_r32.field = $event); });
147
+ 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)); });
148
+ 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); });
146
149
  i0.ɵɵelementEnd();
147
150
  i0.ɵɵelementStart(2, "kendo-dropdownlist", 44);
148
- 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)); })("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; return i0.ɵɵresetView(s_r32.direction = $event); });
151
+ 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)); });
152
+ 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); });
149
153
  i0.ɵɵelementEnd();
150
154
  i0.ɵɵelementStart(3, "button", 19);
151
155
  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,9 +159,11 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_div_3_Templ
155
159
  const s_r32 = ctx.$implicit;
156
160
  const ctx_r31 = i0.ɵɵnextContext(3);
157
161
  i0.ɵɵadvance();
158
- i0.ɵɵproperty("data", ctx_r31.sortFields)("ngModel", s_r32.field);
162
+ i0.ɵɵproperty("data", ctx_r31.sortFields);
163
+ i0.ɵɵtwoWayProperty("ngModel", s_r32.field);
159
164
  i0.ɵɵadvance();
160
- i0.ɵɵproperty("data", ctx_r31.sortDirections)("ngModel", s_r32.direction);
165
+ i0.ɵɵproperty("data", ctx_r31.sortDirections);
166
+ i0.ɵɵtwoWayProperty("ngModel", s_r32.direction);
161
167
  i0.ɵɵadvance(2);
162
168
  i0.ɵɵproperty("icon", ctx_r31.sharedService.kendoSVGIcon("sortClear"));
163
169
  } }
@@ -178,27 +184,30 @@ function ViewPropertiesDialogComponent_kendo_window_3_ng_template_13_Template(rf
178
184
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_0_Template(rf, ctx) { if (rf & 1) {
179
185
  const _r44 = i0.ɵɵgetCurrentView();
180
186
  i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 46);
181
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r43.record.SmartFilterExplanation = $event); });
187
+ 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); });
182
188
  i0.ɵɵelementEnd();
183
189
  i0.ɵɵelementStart(2, "kendo-textarea", 46);
184
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r45.record.SmartFilterWhereClause = $event); });
190
+ 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); });
185
191
  i0.ɵɵelementEnd()();
186
192
  } if (rf & 2) {
187
193
  const ctx_r41 = i0.ɵɵnextContext(3);
188
194
  i0.ɵɵadvance();
189
- i0.ɵɵproperty("readonly", true)("rows", 5)("ngModel", ctx_r41.record.SmartFilterExplanation);
195
+ i0.ɵɵproperty("readonly", true)("rows", 5);
196
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r41.record.SmartFilterExplanation);
190
197
  i0.ɵɵadvance();
191
- i0.ɵɵproperty("readonly", true)("rows", 5)("ngModel", ctx_r41.record.SmartFilterWhereClause);
198
+ i0.ɵɵproperty("readonly", true)("rows", 5);
199
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r41.record.SmartFilterWhereClause);
192
200
  } }
193
201
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_div_1_Template(rf, ctx) { if (rf & 1) {
194
202
  const _r47 = i0.ɵɵgetCurrentView();
195
203
  i0.ɵɵelementStart(0, "div")(1, "kendo-textarea", 46);
196
- i0.ɵɵlistener("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); return i0.ɵɵresetView(ctx_r46.record.WhereClause = $event); });
204
+ 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); });
197
205
  i0.ɵɵelementEnd()();
198
206
  } if (rf & 2) {
199
207
  const ctx_r42 = i0.ɵɵnextContext(3);
200
208
  i0.ɵɵadvance();
201
- i0.ɵɵproperty("readonly", true)("rows", 7)("ngModel", ctx_r42.record.WhereClause);
209
+ i0.ɵɵproperty("readonly", true)("rows", 7);
210
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r42.record.WhereClause);
202
211
  } }
203
212
  function ViewPropertiesDialogComponent_kendo_window_3_ng_template_15_Template(rf, ctx) { if (rf & 1) {
204
213
  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", 45);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-explorer-core",
3
- "version": "0.9.167",
3
+ "version": "0.9.170",
4
4
  "description": "MemberJunction Explorer: Core Angular Components",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -36,15 +36,15 @@
36
36
  "@progress/kendo-svg-icons": "~2.1.0"
37
37
  },
38
38
  "dependencies": {
39
- "@memberjunction/global": "^0.9.141",
40
- "@memberjunction/core": "^0.9.155",
41
- "@memberjunction/ng-compare-records": "^0.9.157",
42
- "@memberjunction/ng-record-changes": "^0.9.91",
43
- "@memberjunction/ng-container-directives": "^0.9.125",
44
- "@memberjunction/ng-user-view-grid": "^0.9.181",
45
- "@memberjunction/ng-query-grid": "^0.9.37",
46
- "@memberjunction/ng-shared": "^0.9.14",
47
- "@memberjunction/ng-ask-skip": "^0.9.52",
39
+ "@memberjunction/global": "^0.9.142",
40
+ "@memberjunction/core": "^0.9.158",
41
+ "@memberjunction/ng-compare-records": "^0.9.160",
42
+ "@memberjunction/ng-record-changes": "^0.9.94",
43
+ "@memberjunction/ng-container-directives": "^0.9.128",
44
+ "@memberjunction/ng-user-view-grid": "^0.9.184",
45
+ "@memberjunction/ng-query-grid": "^0.9.40",
46
+ "@memberjunction/ng-shared": "^0.9.15",
47
+ "@memberjunction/ng-ask-skip": "^0.9.55",
48
48
  "tslib": "^2.3.0"
49
49
  },
50
50
  "sideEffects": false