@memberjunction/ng-explorer-settings 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/module.d.ts +27 -26
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/module.js +5 -0
- package/dist/lib/module.js.map +1 -1
- package/dist/lib/notification-preferences/notification-preferences.component.d.ts +36 -0
- package/dist/lib/notification-preferences/notification-preferences.component.d.ts.map +1 -0
- package/dist/lib/notification-preferences/notification-preferences.component.js +306 -0
- package/dist/lib/notification-preferences/notification-preferences.component.js.map +1 -0
- package/dist/lib/settings/settings.component.d.ts.map +1 -1
- package/dist/lib/settings/settings.component.js +51 -41
- package/dist/lib/settings/settings.component.js.map +1 -1
- package/dist/lib/sql-logging/sql-logging.component.d.ts +58 -7
- package/dist/lib/sql-logging/sql-logging.component.d.ts.map +1 -1
- package/dist/lib/sql-logging/sql-logging.component.js +326 -57
- package/dist/lib/sql-logging/sql-logging.component.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +20 -20
package/dist/lib/module.d.ts
CHANGED
|
@@ -6,34 +6,35 @@ import * as i4 from "./role-management/role-management.component";
|
|
|
6
6
|
import * as i5 from "./application-management/application-management.component";
|
|
7
7
|
import * as i6 from "./entity-permissions/entity-permissions.component";
|
|
8
8
|
import * as i7 from "./user-profile-settings/user-profile-settings.component";
|
|
9
|
-
import * as i8 from "./
|
|
10
|
-
import * as i9 from "./
|
|
11
|
-
import * as i10 from "./
|
|
12
|
-
import * as i11 from "./
|
|
13
|
-
import * as i12 from "./
|
|
14
|
-
import * as i13 from "
|
|
15
|
-
import * as i14 from "@angular/
|
|
16
|
-
import * as i15 from "@
|
|
17
|
-
import * as i16 from "@progress/kendo-angular-
|
|
18
|
-
import * as i17 from "@progress/kendo-angular-
|
|
19
|
-
import * as i18 from "@
|
|
20
|
-
import * as i19 from "@memberjunction/ng-
|
|
21
|
-
import * as i20 from "@
|
|
22
|
-
import * as i21 from "@progress/kendo-angular-
|
|
23
|
-
import * as i22 from "@
|
|
24
|
-
import * as i23 from "@memberjunction/ng-
|
|
25
|
-
import * as i24 from "@memberjunction/ng-
|
|
26
|
-
import * as i25 from "@
|
|
27
|
-
import * as i26 from "@
|
|
28
|
-
import * as i27 from "@memberjunction/ng-
|
|
29
|
-
import * as i28 from "@memberjunction/ng-
|
|
30
|
-
import * as i29 from "@memberjunction/ng-
|
|
31
|
-
import * as i30 from "
|
|
32
|
-
import * as i31 from "
|
|
33
|
-
import * as i32 from "@
|
|
9
|
+
import * as i8 from "./notification-preferences/notification-preferences.component";
|
|
10
|
+
import * as i9 from "./role-management/role-dialog/role-dialog.component";
|
|
11
|
+
import * as i10 from "./user-management/user-dialog/user-dialog.component";
|
|
12
|
+
import * as i11 from "./entity-permissions/permission-dialog/permission-dialog.component";
|
|
13
|
+
import * as i12 from "./application-management/application-dialog/application-dialog.component";
|
|
14
|
+
import * as i13 from "./user-app-config/user-app-config.component";
|
|
15
|
+
import * as i14 from "@angular/common";
|
|
16
|
+
import * as i15 from "@angular/forms";
|
|
17
|
+
import * as i16 from "@progress/kendo-angular-grid";
|
|
18
|
+
import * as i17 from "@progress/kendo-angular-dialog";
|
|
19
|
+
import * as i18 from "@progress/kendo-angular-excel-export";
|
|
20
|
+
import * as i19 from "@memberjunction/ng-compare-records";
|
|
21
|
+
import * as i20 from "@memberjunction/ng-container-directives";
|
|
22
|
+
import * as i21 from "@progress/kendo-angular-buttons";
|
|
23
|
+
import * as i22 from "@progress/kendo-angular-dropdowns";
|
|
24
|
+
import * as i23 from "@memberjunction/ng-entity-permissions";
|
|
25
|
+
import * as i24 from "@memberjunction/ng-tabstrip";
|
|
26
|
+
import * as i25 from "@memberjunction/ng-entity-form-dialog";
|
|
27
|
+
import * as i26 from "@progress/kendo-angular-indicators";
|
|
28
|
+
import * as i27 from "@memberjunction/ng-user-view-grid";
|
|
29
|
+
import * as i28 from "@memberjunction/ng-simple-record-list";
|
|
30
|
+
import * as i29 from "@memberjunction/ng-join-grid";
|
|
31
|
+
import * as i30 from "@memberjunction/ng-code-editor";
|
|
32
|
+
import * as i31 from "./shared/shared-settings.module";
|
|
33
|
+
import * as i32 from "@progress/kendo-angular-sortable";
|
|
34
|
+
import * as i33 from "@memberjunction/ng-shared-generic";
|
|
34
35
|
export declare class ExplorerSettingsModule {
|
|
35
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<ExplorerSettingsModule, never>;
|
|
36
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerSettingsModule, [typeof i1.SettingsComponent, typeof i2.SqlLoggingComponent, typeof i3.UserManagementComponent, typeof i4.RoleManagementComponent, typeof i5.ApplicationManagementComponent, typeof i6.EntityPermissionsComponent, typeof i7.UserProfileSettingsComponent, typeof i8.
|
|
37
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ExplorerSettingsModule, [typeof i1.SettingsComponent, typeof i2.SqlLoggingComponent, typeof i3.UserManagementComponent, typeof i4.RoleManagementComponent, typeof i5.ApplicationManagementComponent, typeof i6.EntityPermissionsComponent, typeof i7.UserProfileSettingsComponent, typeof i8.NotificationPreferencesComponent, typeof i9.RoleDialogComponent, typeof i10.UserDialogComponent, typeof i11.PermissionDialogComponent, typeof i12.ApplicationDialogComponent, typeof i13.UserAppConfigComponent], [typeof i14.CommonModule, typeof i15.FormsModule, typeof i15.ReactiveFormsModule, typeof i16.GridModule, typeof i17.DialogsModule, typeof i17.WindowModule, typeof i18.ExcelExportModule, typeof i19.CompareRecordsModule, typeof i20.ContainerDirectivesModule, typeof i21.ButtonsModule, typeof i22.DropDownsModule, typeof i23.EntityPermissionsModule, typeof i24.MJTabStripModule, typeof i25.EntityFormDialogModule, typeof i26.IndicatorsModule, typeof i27.UserViewGridModule, typeof i28.SimpleRecordListModule, typeof i29.JoinGridModule, typeof i30.CodeEditorModule, typeof i31.SharedSettingsModule, typeof i32.SortableModule, typeof i33.SharedGenericModule], [typeof i1.SettingsComponent, typeof i2.SqlLoggingComponent, typeof i3.UserManagementComponent, typeof i4.RoleManagementComponent, typeof i5.ApplicationManagementComponent, typeof i6.EntityPermissionsComponent, typeof i7.UserProfileSettingsComponent, typeof i8.NotificationPreferencesComponent, typeof i9.RoleDialogComponent, typeof i10.UserDialogComponent, typeof i11.PermissionDialogComponent, typeof i12.ApplicationDialogComponent, typeof i13.UserAppConfigComponent]>;
|
|
37
38
|
static ɵinj: i0.ɵɵInjectorDeclaration<ExplorerSettingsModule>;
|
|
38
39
|
}
|
|
39
40
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/lib/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,qBA4Da,sBAAsB;yCAAtB,sBAAsB;0CAAtB,sBAAsB;0CAAtB,sBAAsB;CAAI"}
|
package/dist/lib/module.js
CHANGED
|
@@ -29,6 +29,7 @@ import { RoleManagementComponent } from './role-management/role-management.compo
|
|
|
29
29
|
import { ApplicationManagementComponent } from './application-management/application-management.component';
|
|
30
30
|
import { EntityPermissionsComponent } from './entity-permissions/entity-permissions.component';
|
|
31
31
|
import { UserProfileSettingsComponent } from './user-profile-settings/user-profile-settings.component';
|
|
32
|
+
import { NotificationPreferencesComponent } from './notification-preferences/notification-preferences.component';
|
|
32
33
|
// Dialog components
|
|
33
34
|
import { RoleDialogComponent } from './role-management/role-dialog/role-dialog.component';
|
|
34
35
|
import { UserDialogComponent } from './user-management/user-dialog/user-dialog.component';
|
|
@@ -74,6 +75,7 @@ export class ExplorerSettingsModule {
|
|
|
74
75
|
ApplicationManagementComponent,
|
|
75
76
|
EntityPermissionsComponent,
|
|
76
77
|
UserProfileSettingsComponent,
|
|
78
|
+
NotificationPreferencesComponent,
|
|
77
79
|
// Dialog components
|
|
78
80
|
RoleDialogComponent,
|
|
79
81
|
UserDialogComponent,
|
|
@@ -114,6 +116,7 @@ export class ExplorerSettingsModule {
|
|
|
114
116
|
ApplicationManagementComponent,
|
|
115
117
|
EntityPermissionsComponent,
|
|
116
118
|
UserProfileSettingsComponent,
|
|
119
|
+
NotificationPreferencesComponent,
|
|
117
120
|
// Dialog components
|
|
118
121
|
RoleDialogComponent,
|
|
119
122
|
UserDialogComponent,
|
|
@@ -132,6 +135,7 @@ export class ExplorerSettingsModule {
|
|
|
132
135
|
ApplicationManagementComponent,
|
|
133
136
|
EntityPermissionsComponent,
|
|
134
137
|
UserProfileSettingsComponent,
|
|
138
|
+
NotificationPreferencesComponent,
|
|
135
139
|
// Dialog components
|
|
136
140
|
RoleDialogComponent,
|
|
137
141
|
UserDialogComponent,
|
|
@@ -167,6 +171,7 @@ export class ExplorerSettingsModule {
|
|
|
167
171
|
ApplicationManagementComponent,
|
|
168
172
|
EntityPermissionsComponent,
|
|
169
173
|
UserProfileSettingsComponent,
|
|
174
|
+
NotificationPreferencesComponent,
|
|
170
175
|
// Dialog components
|
|
171
176
|
RoleDialogComponent,
|
|
172
177
|
UserDialogComponent,
|
package/dist/lib/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAElE,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,gBAAgB;AAChB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAElE,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,gBAAgB;AAChB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,EAAE,gCAAgC,EAAE,MAAM,+DAA+D,CAAC;AAEjH,oBAAoB;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,0EAA0E,CAAC;AACtH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;;AA8DrF,MAAM,OAAO,sBAAsB;gHAAtB,sBAAsB;4DAAtB,sBAAsB;gEAzC/B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,UAAU;YACV,aAAa;YACb,YAAY;YACZ,iBAAiB;YACjB,oBAAoB;YACpB,yBAAyB;YACzB,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,gBAAgB;YAChB,sBAAsB;YACtB,gBAAgB;YAChB,kBAAkB;YAClB,sBAAsB;YACtB,cAAc;YACd,gBAAgB;YAChB,oBAAoB;YACpB,cAAc;YACd,mBAAmB;;iFAoBV,sBAAsB;cA5DlC,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,4BAA4B;oBAC5B,iBAAiB;oBACjB,mBAAmB;oBACnB,uBAAuB;oBACvB,uBAAuB;oBACvB,8BAA8B;oBAC9B,0BAA0B;oBAC1B,4BAA4B;oBAC5B,gCAAgC;oBAChC,oBAAoB;oBACpB,mBAAmB;oBACnB,mBAAmB;oBACnB,yBAAyB;oBACzB,0BAA0B;oBAC1B,sBAAsB;iBACvB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,UAAU;oBACV,aAAa;oBACb,YAAY;oBACZ,iBAAiB;oBACjB,oBAAoB;oBACpB,yBAAyB;oBACzB,aAAa;oBACb,eAAe;oBACf,uBAAuB;oBACvB,gBAAgB;oBAChB,sBAAsB;oBACtB,gBAAgB;oBAChB,kBAAkB;oBAClB,sBAAsB;oBACtB,cAAc;oBACd,gBAAgB;oBAChB,oBAAoB;oBACpB,cAAc;oBACd,mBAAmB;iBACpB;gBACD,OAAO,EAAE;oBACP,4BAA4B;oBAC5B,iBAAiB;oBACjB,mBAAmB;oBACnB,uBAAuB;oBACvB,uBAAuB;oBACvB,8BAA8B;oBAC9B,0BAA0B;oBAC1B,4BAA4B;oBAC5B,gCAAgC;oBAChC,oBAAoB;oBACpB,mBAAmB;oBACnB,mBAAmB;oBACnB,yBAAyB;oBACzB,0BAA0B;oBAC1B,sBAAsB;iBACvB;aACF;;wFACY,sBAAsB;QA1D/B,4BAA4B;QAC5B,iBAAiB;QACjB,mBAAmB;QACnB,uBAAuB;QACvB,uBAAuB;QACvB,8BAA8B;QAC9B,0BAA0B;QAC1B,4BAA4B;QAC5B,gCAAgC;QAChC,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB;QACzB,0BAA0B;QAC1B,sBAAsB,aAGtB,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,UAAU;QACV,aAAa;QACb,YAAY;QACZ,iBAAiB;QACjB,oBAAoB;QACpB,yBAAyB;QACzB,aAAa;QACb,eAAe;QACf,uBAAuB;QACvB,gBAAgB;QAChB,sBAAsB;QACtB,gBAAgB;QAChB,kBAAkB;QAClB,sBAAsB;QACtB,cAAc;QACd,gBAAgB;QAChB,oBAAoB;QACpB,cAAc;QACd,mBAAmB;QAGnB,4BAA4B;QAC5B,iBAAiB;QACjB,mBAAmB;QACnB,uBAAuB;QACvB,uBAAuB;QACvB,8BAA8B;QAC9B,0BAA0B;QAC1B,4BAA4B;QAC5B,gCAAgC;QAChC,oBAAoB;QACpB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB;QACzB,0BAA0B;QAC1B,sBAAsB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { UserNotificationTypeEntity, UserNotificationPreferenceEntity } from '@memberjunction/core-entities';
|
|
3
|
+
import { SharedService } from '@memberjunction/ng-shared';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
interface NotificationPreferenceViewModel {
|
|
6
|
+
type: UserNotificationTypeEntity;
|
|
7
|
+
preference: UserNotificationPreferenceEntity | null;
|
|
8
|
+
inAppEnabled: boolean;
|
|
9
|
+
emailEnabled: boolean;
|
|
10
|
+
smsEnabled: boolean;
|
|
11
|
+
changed: boolean;
|
|
12
|
+
originalInAppEnabled: boolean;
|
|
13
|
+
originalEmailEnabled: boolean;
|
|
14
|
+
originalSmsEnabled: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class NotificationPreferencesComponent implements OnInit {
|
|
17
|
+
private sharedService;
|
|
18
|
+
loading: boolean;
|
|
19
|
+
saving: boolean;
|
|
20
|
+
viewModels: NotificationPreferenceViewModel[];
|
|
21
|
+
hasChanges: boolean;
|
|
22
|
+
constructor(sharedService: SharedService);
|
|
23
|
+
ngOnInit(): Promise<void>;
|
|
24
|
+
private loadData;
|
|
25
|
+
onChannelChange(vm: NotificationPreferenceViewModel): void;
|
|
26
|
+
save(): Promise<void>;
|
|
27
|
+
cancel(): void;
|
|
28
|
+
getTypeIcon(type: UserNotificationTypeEntity): string;
|
|
29
|
+
getTypeColor(type: UserNotificationTypeEntity): string;
|
|
30
|
+
getTypeAutoExpireDays(type: UserNotificationTypeEntity): number | null;
|
|
31
|
+
getAllowUserPreference(type: UserNotificationTypeEntity): boolean;
|
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationPreferencesComponent, never>;
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationPreferencesComponent, "mj-notification-preferences", never, {}, {}, never, never, false, never>;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=notification-preferences.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-preferences.component.d.ts","sourceRoot":"","sources":["../../../src/lib/notification-preferences/notification-preferences.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,gCAAgC,EAAkB,MAAM,+BAA+B,CAAC;AAC7H,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;;AAE1D,UAAU,+BAA+B;IACvC,IAAI,EAAE,0BAA0B,CAAC;IACjC,UAAU,EAAE,gCAAgC,GAAG,IAAI,CAAC;IACpD,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAKa,gCAAiC,YAAW,MAAM;IAMjD,OAAO,CAAC,aAAa;IALjC,OAAO,UAAQ;IACf,MAAM,UAAS;IACf,UAAU,EAAE,+BAA+B,EAAE,CAAM;IACnD,UAAU,UAAS;gBAEC,aAAa,EAAE,aAAa;IAE1C,QAAQ;YAIA,QAAQ;IAmDtB,eAAe,CAAC,EAAE,EAAE,+BAA+B;IAK7C,IAAI;IA4DV,MAAM;IAWN,WAAW,CAAC,IAAI,EAAE,0BAA0B,GAAG,MAAM;IAIrD,YAAY,CAAC,IAAI,EAAE,0BAA0B,GAAG,MAAM;IAItD,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,MAAM,GAAG,IAAI;IAItE,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO;yCAvJtD,gCAAgC;2CAAhC,gCAAgC;CA0J5C"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Metadata } from '@memberjunction/core';
|
|
3
|
+
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@memberjunction/ng-shared";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@memberjunction/ng-shared-generic";
|
|
9
|
+
function NotificationPreferencesComponent_mj_loading_1_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵelement(0, "mj-loading", 3);
|
|
11
|
+
} }
|
|
12
|
+
function NotificationPreferencesComponent_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
14
|
+
i0.ɵɵelement(1, "i", 10);
|
|
15
|
+
i0.ɵɵelementStart(2, "p");
|
|
16
|
+
i0.ɵɵtext(3, "No notification types configured yet.");
|
|
17
|
+
i0.ɵɵelementEnd()();
|
|
18
|
+
} }
|
|
19
|
+
function NotificationPreferencesComponent_div_2_div_3_div_29_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
21
|
+
i0.ɵɵelement(1, "i", 28);
|
|
22
|
+
i0.ɵɵtext(2, " This notification type's delivery channels cannot be customized. ");
|
|
23
|
+
i0.ɵɵelementEnd();
|
|
24
|
+
} }
|
|
25
|
+
function NotificationPreferencesComponent_div_2_div_3_div_30_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementStart(0, "div", 29);
|
|
27
|
+
i0.ɵɵelement(1, "i", 30);
|
|
28
|
+
i0.ɵɵelementStart(2, "span", 31);
|
|
29
|
+
i0.ɵɵtext(3);
|
|
30
|
+
i0.ɵɵelementEnd()();
|
|
31
|
+
} if (rf & 2) {
|
|
32
|
+
const vm_r2 = i0.ɵɵnextContext().$implicit;
|
|
33
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
34
|
+
i0.ɵɵadvance(3);
|
|
35
|
+
i0.ɵɵtextInterpolate1(" Auto-marks as read after ", ctx_r2.getTypeAutoExpireDays(vm_r2.type), " day(s) ");
|
|
36
|
+
} }
|
|
37
|
+
function NotificationPreferencesComponent_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
39
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "div", 12)(2, "div", 13);
|
|
40
|
+
i0.ɵɵelement(3, "i");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵelementStart(4, "div", 14)(5, "h4");
|
|
43
|
+
i0.ɵɵtext(6);
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
i0.ɵɵelementStart(7, "p", 15);
|
|
46
|
+
i0.ɵɵtext(8);
|
|
47
|
+
i0.ɵɵelementEnd()()();
|
|
48
|
+
i0.ɵɵelementStart(9, "div", 16)(10, "div", 17)(11, "label", 18);
|
|
49
|
+
i0.ɵɵtext(12, "Delivery Channels");
|
|
50
|
+
i0.ɵɵelementEnd();
|
|
51
|
+
i0.ɵɵelementStart(13, "div", 19)(14, "label", 20)(15, "input", 21);
|
|
52
|
+
i0.ɵɵtwoWayListener("ngModelChange", function NotificationPreferencesComponent_div_2_div_3_Template_input_ngModelChange_15_listener($event) { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; i0.ɵɵtwoWayBindingSet(vm_r2.inAppEnabled, $event) || (vm_r2.inAppEnabled = $event); return i0.ɵɵresetView($event); });
|
|
53
|
+
i0.ɵɵlistener("change", function NotificationPreferencesComponent_div_2_div_3_Template_input_change_15_listener() { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onChannelChange(vm_r2)); });
|
|
54
|
+
i0.ɵɵelementEnd();
|
|
55
|
+
i0.ɵɵelement(16, "i", 22);
|
|
56
|
+
i0.ɵɵelementStart(17, "span");
|
|
57
|
+
i0.ɵɵtext(18, "In-App");
|
|
58
|
+
i0.ɵɵelementEnd()();
|
|
59
|
+
i0.ɵɵelementStart(19, "label", 20)(20, "input", 21);
|
|
60
|
+
i0.ɵɵtwoWayListener("ngModelChange", function NotificationPreferencesComponent_div_2_div_3_Template_input_ngModelChange_20_listener($event) { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; i0.ɵɵtwoWayBindingSet(vm_r2.emailEnabled, $event) || (vm_r2.emailEnabled = $event); return i0.ɵɵresetView($event); });
|
|
61
|
+
i0.ɵɵlistener("change", function NotificationPreferencesComponent_div_2_div_3_Template_input_change_20_listener() { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onChannelChange(vm_r2)); });
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
63
|
+
i0.ɵɵelement(21, "i", 23);
|
|
64
|
+
i0.ɵɵelementStart(22, "span");
|
|
65
|
+
i0.ɵɵtext(23, "Email");
|
|
66
|
+
i0.ɵɵelementEnd()();
|
|
67
|
+
i0.ɵɵelementStart(24, "label", 20)(25, "input", 21);
|
|
68
|
+
i0.ɵɵtwoWayListener("ngModelChange", function NotificationPreferencesComponent_div_2_div_3_Template_input_ngModelChange_25_listener($event) { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; i0.ɵɵtwoWayBindingSet(vm_r2.smsEnabled, $event) || (vm_r2.smsEnabled = $event); return i0.ɵɵresetView($event); });
|
|
69
|
+
i0.ɵɵlistener("change", function NotificationPreferencesComponent_div_2_div_3_Template_input_change_25_listener() { const vm_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onChannelChange(vm_r2)); });
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
71
|
+
i0.ɵɵelement(26, "i", 24);
|
|
72
|
+
i0.ɵɵelementStart(27, "span");
|
|
73
|
+
i0.ɵɵtext(28, "SMS");
|
|
74
|
+
i0.ɵɵelementEnd()()();
|
|
75
|
+
i0.ɵɵtemplate(29, NotificationPreferencesComponent_div_2_div_3_div_29_Template, 3, 0, "div", 25);
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
i0.ɵɵtemplate(30, NotificationPreferencesComponent_div_2_div_3_div_30_Template, 4, 1, "div", 26);
|
|
78
|
+
i0.ɵɵelementEnd()();
|
|
79
|
+
} if (rf & 2) {
|
|
80
|
+
const vm_r2 = ctx.$implicit;
|
|
81
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
82
|
+
i0.ɵɵclassProp("changed", vm_r2.changed);
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵstyleProp("border-left-color", ctx_r2.getTypeColor(vm_r2.type));
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getTypeColor(vm_r2.type) + "20");
|
|
87
|
+
i0.ɵɵadvance();
|
|
88
|
+
i0.ɵɵclassMap("fa-solid " + ctx_r2.getTypeIcon(vm_r2.type));
|
|
89
|
+
i0.ɵɵstyleProp("color", ctx_r2.getTypeColor(vm_r2.type));
|
|
90
|
+
i0.ɵɵadvance(3);
|
|
91
|
+
i0.ɵɵtextInterpolate(vm_r2.type.Name);
|
|
92
|
+
i0.ɵɵadvance(2);
|
|
93
|
+
i0.ɵɵtextInterpolate(vm_r2.type.Description);
|
|
94
|
+
i0.ɵɵadvance(7);
|
|
95
|
+
i0.ɵɵtwoWayProperty("ngModel", vm_r2.inAppEnabled);
|
|
96
|
+
i0.ɵɵproperty("disabled", !ctx_r2.getAllowUserPreference(vm_r2.type));
|
|
97
|
+
i0.ɵɵadvance(5);
|
|
98
|
+
i0.ɵɵtwoWayProperty("ngModel", vm_r2.emailEnabled);
|
|
99
|
+
i0.ɵɵproperty("disabled", !ctx_r2.getAllowUserPreference(vm_r2.type));
|
|
100
|
+
i0.ɵɵadvance(5);
|
|
101
|
+
i0.ɵɵtwoWayProperty("ngModel", vm_r2.smsEnabled);
|
|
102
|
+
i0.ɵɵproperty("disabled", !ctx_r2.getAllowUserPreference(vm_r2.type));
|
|
103
|
+
i0.ɵɵadvance(4);
|
|
104
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.getAllowUserPreference(vm_r2.type));
|
|
105
|
+
i0.ɵɵadvance();
|
|
106
|
+
i0.ɵɵproperty("ngIf", ctx_r2.getTypeAutoExpireDays(vm_r2.type));
|
|
107
|
+
} }
|
|
108
|
+
function NotificationPreferencesComponent_div_2_div_4_i_4_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵelement(0, "i", 37);
|
|
110
|
+
} }
|
|
111
|
+
function NotificationPreferencesComponent_div_2_div_4_i_5_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelement(0, "i", 38);
|
|
113
|
+
} }
|
|
114
|
+
function NotificationPreferencesComponent_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
116
|
+
i0.ɵɵelementStart(0, "div", 32)(1, "button", 33);
|
|
117
|
+
i0.ɵɵlistener("click", function NotificationPreferencesComponent_div_2_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.cancel()); });
|
|
118
|
+
i0.ɵɵtext(2, " Cancel ");
|
|
119
|
+
i0.ɵɵelementEnd();
|
|
120
|
+
i0.ɵɵelementStart(3, "button", 34);
|
|
121
|
+
i0.ɵɵlistener("click", function NotificationPreferencesComponent_div_2_div_4_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.save()); });
|
|
122
|
+
i0.ɵɵtemplate(4, NotificationPreferencesComponent_div_2_div_4_i_4_Template, 1, 0, "i", 35)(5, NotificationPreferencesComponent_div_2_div_4_i_5_Template, 1, 0, "i", 36);
|
|
123
|
+
i0.ɵɵtext(6);
|
|
124
|
+
i0.ɵɵelementEnd()();
|
|
125
|
+
} if (rf & 2) {
|
|
126
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
127
|
+
i0.ɵɵadvance();
|
|
128
|
+
i0.ɵɵproperty("disabled", ctx_r2.saving);
|
|
129
|
+
i0.ɵɵadvance(2);
|
|
130
|
+
i0.ɵɵproperty("disabled", ctx_r2.saving);
|
|
131
|
+
i0.ɵɵadvance();
|
|
132
|
+
i0.ɵɵproperty("ngIf", ctx_r2.saving);
|
|
133
|
+
i0.ɵɵadvance();
|
|
134
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.saving);
|
|
135
|
+
i0.ɵɵadvance();
|
|
136
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.saving ? "Saving..." : "Save Preferences", " ");
|
|
137
|
+
} }
|
|
138
|
+
function NotificationPreferencesComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
+
i0.ɵɵelementStart(0, "div", 4);
|
|
140
|
+
i0.ɵɵtemplate(1, NotificationPreferencesComponent_div_2_div_1_Template, 4, 0, "div", 5);
|
|
141
|
+
i0.ɵɵelementStart(2, "div", 6);
|
|
142
|
+
i0.ɵɵtemplate(3, NotificationPreferencesComponent_div_2_div_3_Template, 31, 20, "div", 7);
|
|
143
|
+
i0.ɵɵelementEnd();
|
|
144
|
+
i0.ɵɵtemplate(4, NotificationPreferencesComponent_div_2_div_4_Template, 7, 5, "div", 8);
|
|
145
|
+
i0.ɵɵelementEnd();
|
|
146
|
+
} if (rf & 2) {
|
|
147
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
148
|
+
i0.ɵɵadvance();
|
|
149
|
+
i0.ɵɵproperty("ngIf", ctx_r2.viewModels.length === 0);
|
|
150
|
+
i0.ɵɵadvance(2);
|
|
151
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.viewModels);
|
|
152
|
+
i0.ɵɵadvance();
|
|
153
|
+
i0.ɵɵproperty("ngIf", ctx_r2.hasChanges);
|
|
154
|
+
} }
|
|
155
|
+
export class NotificationPreferencesComponent {
|
|
156
|
+
sharedService;
|
|
157
|
+
loading = true;
|
|
158
|
+
saving = false;
|
|
159
|
+
viewModels = [];
|
|
160
|
+
hasChanges = false;
|
|
161
|
+
constructor(sharedService) {
|
|
162
|
+
this.sharedService = sharedService;
|
|
163
|
+
}
|
|
164
|
+
async ngOnInit() {
|
|
165
|
+
await this.loadData();
|
|
166
|
+
}
|
|
167
|
+
async loadData() {
|
|
168
|
+
try {
|
|
169
|
+
this.loading = true;
|
|
170
|
+
// UserInfoEngine is auto-configured via @RegisterForStartup()
|
|
171
|
+
// NotificationEngine (server-side) loads notification types into global cache
|
|
172
|
+
// UserInfoEngine provides a getter to access them from both client and server
|
|
173
|
+
// Get notification types from UserInfoEngine, sorted client-side
|
|
174
|
+
const types = [...UserInfoEngine.Instance.NotificationTypes].sort((a, b) => {
|
|
175
|
+
const priorityA = a.Priority ?? 999;
|
|
176
|
+
const priorityB = b.Priority ?? 999;
|
|
177
|
+
if (priorityA !== priorityB) {
|
|
178
|
+
return priorityA - priorityB;
|
|
179
|
+
}
|
|
180
|
+
return a.Name.localeCompare(b.Name);
|
|
181
|
+
});
|
|
182
|
+
// Get preferences from UserInfoEngine (entity objects - can be mutated)
|
|
183
|
+
const prefs = UserInfoEngine.Instance.NotificationPreferences;
|
|
184
|
+
// Build view models from cached data
|
|
185
|
+
this.viewModels = types.map((type) => {
|
|
186
|
+
const existingPref = prefs.find((p) => p.NotificationTypeID === type.ID);
|
|
187
|
+
// Get channel values: user preference > type default
|
|
188
|
+
const inAppEnabled = existingPref?.InAppEnabled ?? type.DefaultInApp ?? true;
|
|
189
|
+
const emailEnabled = existingPref?.EmailEnabled ?? type.DefaultEmail ?? false;
|
|
190
|
+
const smsEnabled = existingPref?.SMSEnabled ?? type.DefaultSMS ?? false;
|
|
191
|
+
return {
|
|
192
|
+
type,
|
|
193
|
+
preference: existingPref || null,
|
|
194
|
+
inAppEnabled,
|
|
195
|
+
emailEnabled,
|
|
196
|
+
smsEnabled,
|
|
197
|
+
changed: false,
|
|
198
|
+
originalInAppEnabled: inAppEnabled,
|
|
199
|
+
originalEmailEnabled: emailEnabled,
|
|
200
|
+
originalSmsEnabled: smsEnabled,
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
this.loading = false;
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
this.loading = false;
|
|
207
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
208
|
+
this.sharedService.CreateSimpleNotification(`Failed to load notification preferences: ${message}`, 'error', 3000);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
onChannelChange(vm) {
|
|
212
|
+
vm.changed = vm.inAppEnabled !== vm.originalInAppEnabled || vm.emailEnabled !== vm.originalEmailEnabled || vm.smsEnabled !== vm.originalSmsEnabled;
|
|
213
|
+
this.hasChanges = this.viewModels.some((v) => v.changed);
|
|
214
|
+
}
|
|
215
|
+
async save() {
|
|
216
|
+
try {
|
|
217
|
+
this.saving = true;
|
|
218
|
+
const md = new Metadata();
|
|
219
|
+
const currentUser = md.CurrentUser;
|
|
220
|
+
const transGroup = await md.CreateTransactionGroup();
|
|
221
|
+
// Queue all saves in transaction group - no need to await individual saves
|
|
222
|
+
// Transaction group queues them and submits all in one batch
|
|
223
|
+
for (const vm of this.viewModels.filter((v) => v.changed)) {
|
|
224
|
+
let pref = vm.preference;
|
|
225
|
+
if (!pref) {
|
|
226
|
+
// Create new preference record
|
|
227
|
+
pref = await md.GetEntityObject('MJ: User Notification Preferences');
|
|
228
|
+
pref.UserID = currentUser.ID;
|
|
229
|
+
pref.NotificationTypeID = vm.type.ID;
|
|
230
|
+
vm.preference = pref;
|
|
231
|
+
}
|
|
232
|
+
// Set Enabled based on whether any channel is enabled
|
|
233
|
+
pref.Enabled = vm.inAppEnabled || vm.emailEnabled || vm.smsEnabled;
|
|
234
|
+
// Set the boolean channel fields
|
|
235
|
+
pref.InAppEnabled = vm.inAppEnabled;
|
|
236
|
+
pref.EmailEnabled = vm.emailEnabled;
|
|
237
|
+
pref.SMSEnabled = vm.smsEnabled;
|
|
238
|
+
pref.TransactionGroup = transGroup;
|
|
239
|
+
// Don't await - Save() with transaction group queues immediately
|
|
240
|
+
pref.Save();
|
|
241
|
+
}
|
|
242
|
+
// Submit transaction group - this is where the actual network call happens
|
|
243
|
+
const success = await transGroup.Submit();
|
|
244
|
+
if (success) {
|
|
245
|
+
// Cache refresh happens automatically in UserNotificationPreferenceEntityExtended.Save()
|
|
246
|
+
// Update original values
|
|
247
|
+
this.viewModels.forEach((vm) => {
|
|
248
|
+
vm.originalInAppEnabled = vm.inAppEnabled;
|
|
249
|
+
vm.originalEmailEnabled = vm.emailEnabled;
|
|
250
|
+
vm.originalSmsEnabled = vm.smsEnabled;
|
|
251
|
+
vm.changed = false;
|
|
252
|
+
});
|
|
253
|
+
this.hasChanges = false;
|
|
254
|
+
this.sharedService.CreateSimpleNotification('Notification preferences saved successfully', 'success', 2500);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
throw new Error('Failed to save preferences');
|
|
258
|
+
}
|
|
259
|
+
this.saving = false;
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
this.saving = false;
|
|
263
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
264
|
+
this.sharedService.CreateSimpleNotification(`Failed to save preferences: ${message}`, 'error', 3000);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
cancel() {
|
|
268
|
+
// Revert changes
|
|
269
|
+
this.viewModels.forEach((vm) => {
|
|
270
|
+
vm.inAppEnabled = vm.originalInAppEnabled;
|
|
271
|
+
vm.emailEnabled = vm.originalEmailEnabled;
|
|
272
|
+
vm.smsEnabled = vm.originalSmsEnabled;
|
|
273
|
+
vm.changed = false;
|
|
274
|
+
});
|
|
275
|
+
this.hasChanges = false;
|
|
276
|
+
}
|
|
277
|
+
getTypeIcon(type) {
|
|
278
|
+
return type.Icon || 'fa-bell';
|
|
279
|
+
}
|
|
280
|
+
getTypeColor(type) {
|
|
281
|
+
return type.Color || '#999';
|
|
282
|
+
}
|
|
283
|
+
getTypeAutoExpireDays(type) {
|
|
284
|
+
return type.AutoExpireDays || null;
|
|
285
|
+
}
|
|
286
|
+
getAllowUserPreference(type) {
|
|
287
|
+
return type.AllowUserPreference !== false;
|
|
288
|
+
}
|
|
289
|
+
static ɵfac = function NotificationPreferencesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NotificationPreferencesComponent)(i0.ɵɵdirectiveInject(i1.SharedService)); };
|
|
290
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationPreferencesComponent, selectors: [["mj-notification-preferences"]], decls: 3, vars: 2, consts: [[1, "notification-preferences-container"], ["text", "Loading notification preferences...", 4, "ngIf"], ["class", "content", 4, "ngIf"], ["text", "Loading notification preferences..."], [1, "content"], ["class", "empty-state", 4, "ngIf"], [1, "notification-types-grid"], ["class", "notification-type-card", 3, "changed", 4, "ngFor", "ngForOf"], ["class", "actions", 4, "ngIf"], [1, "empty-state"], [1, "fa-solid", "fa-bell-slash"], [1, "notification-type-card"], [1, "card-header"], [1, "icon-wrapper"], [1, "header-text"], [1, "type-description"], [1, "card-body"], [1, "preference-row"], [1, "delivery-label"], [1, "delivery-checkboxes"], [1, "channel-checkbox"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel", "disabled"], [1, "fa-solid", "fa-bell"], [1, "fa-solid", "fa-envelope"], [1, "fa-solid", "fa-mobile"], ["class", "info-message", 4, "ngIf"], ["class", "metadata-row", 4, "ngIf"], [1, "info-message"], [1, "fa-solid", "fa-info-circle"], [1, "metadata-row"], [1, "fa-solid", "fa-clock"], [1, "metadata-text"], [1, "actions"], [1, "btn", "btn-secondary", 3, "click", "disabled"], [1, "btn", "btn-primary", 3, "click", "disabled"], ["class", "fa-solid fa-spinner fa-spin", 4, "ngIf"], ["class", "fa-solid fa-save", 4, "ngIf"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function NotificationPreferencesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
292
|
+
i0.ɵɵtemplate(1, NotificationPreferencesComponent_mj_loading_1_Template, 1, 0, "mj-loading", 1)(2, NotificationPreferencesComponent_div_2_Template, 5, 3, "div", 2);
|
|
293
|
+
i0.ɵɵelementEnd();
|
|
294
|
+
} if (rf & 2) {
|
|
295
|
+
i0.ɵɵadvance();
|
|
296
|
+
i0.ɵɵproperty("ngIf", ctx.loading);
|
|
297
|
+
i0.ɵɵadvance();
|
|
298
|
+
i0.ɵɵproperty("ngIf", !ctx.loading);
|
|
299
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.CheckboxControlValueAccessor, i3.NgControlStatus, i3.NgModel, i4.LoadingComponent], styles: [".notification-preferences-container[_ngcontent-%COMP%] {\n padding: 20px;\n max-width: 1200px;\n margin: 0 auto;\n\n .header {\n margin-bottom: 30px;\n\n h3 {\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 10px 0;\n }\n\n .description {\n color: #666;\n font-size: 14px;\n margin: 0;\n }\n }\n\n .empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #999;\n\n i {\n font-size: 64px;\n margin-bottom: 20px;\n }\n\n p {\n font-size: 16px;\n }\n }\n\n .notification-types-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 20px;\n margin-bottom: 30px;\n }\n\n .notification-type-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n transition: all 0.2s ease;\n border-left: 4px solid transparent;\n\n &.changed {\n border-color: #2196F3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.2);\n }\n\n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n }\n\n .card-header {\n display: flex;\n gap: 15px;\n padding: 20px;\n border-bottom: 1px solid #f0f0f0;\n align-items: flex-start;\n\n .icon-wrapper {\n width: 48px;\n height: 48px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n i {\n font-size: 24px;\n }\n }\n\n .header-text {\n flex: 1;\n\n h4 {\n margin: 0 0 5px 0;\n font-size: 18px;\n font-weight: 600;\n }\n\n .type-description {\n margin: 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n }\n }\n\n }\n\n .card-body {\n padding: 20px;\n\n .preference-row {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n .delivery-label {\n display: block;\n font-weight: 500;\n margin-bottom: 8px;\n font-size: 14px;\n\n .hint {\n color: #999;\n font-weight: normal;\n font-size: 12px;\n }\n }\n\n .delivery-checkboxes {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n\n .channel-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: 1px solid #ddd;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n user-select: none;\n background: #fafafa;\n\n input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n accent-color: #2196F3;\n\n &:disabled {\n cursor: not-allowed;\n }\n }\n\n i {\n color: #666;\n font-size: 14px;\n }\n\n span {\n font-size: 14px;\n font-weight: 500;\n }\n\n &:hover:not(:has(input:disabled)) {\n border-color: #2196F3;\n background: #f0f7ff;\n }\n\n &:has(input:checked) {\n border-color: #2196F3;\n background: #e3f2fd;\n\n i {\n color: #2196F3;\n }\n }\n\n &:has(input:disabled) {\n opacity: 0.6;\n cursor: not-allowed;\n }\n }\n }\n\n .info-message {\n margin-top: 10px;\n padding: 10px;\n background: #fff3cd;\n border-left: 3px solid #ffc107;\n border-radius: 4px;\n font-size: 13px;\n display: flex;\n gap: 10px;\n align-items: center;\n\n i {\n color: #856404;\n }\n }\n }\n\n .metadata-row {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n color: #666;\n padding-top: 10px;\n border-top: 1px solid #f0f0f0;\n\n i {\n color: #999;\n }\n }\n }\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 20px;\n background: #f9f9f9;\n border-radius: 8px;\n\n .btn {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &.btn-secondary {\n background: #fff;\n border: 1px solid #ddd;\n color: #333;\n\n &:hover:not(:disabled) {\n background: #f5f5f5;\n }\n }\n\n &.btn-primary {\n background: #2196F3;\n color: white;\n\n &:hover:not(:disabled) {\n background: #1976D2;\n }\n }\n }\n }\n}"] });
|
|
300
|
+
}
|
|
301
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationPreferencesComponent, [{
|
|
302
|
+
type: Component,
|
|
303
|
+
args: [{ selector: 'mj-notification-preferences', template: "<div class=\"notification-preferences-container\">\n <mj-loading *ngIf=\"loading\" text=\"Loading notification preferences...\"></mj-loading>\n\n <div class=\"content\" *ngIf=\"!loading\">\n <!-- Empty state -->\n <div class=\"empty-state\" *ngIf=\"viewModels.length === 0\">\n <i class=\"fa-solid fa-bell-slash\"></i>\n <p>No notification types configured yet.</p>\n </div>\n\n <!-- Notification type cards -->\n <div class=\"notification-types-grid\">\n <div class=\"notification-type-card\"\n *ngFor=\"let vm of viewModels\"\n [class.changed]=\"vm.changed\">\n\n <div class=\"card-header\" [style.border-left-color]=\"getTypeColor(vm.type)\">\n <div class=\"icon-wrapper\" [style.background-color]=\"getTypeColor(vm.type) + '20'\">\n <i [class]=\"'fa-solid ' + getTypeIcon(vm.type)\" [style.color]=\"getTypeColor(vm.type)\"></i>\n </div>\n <div class=\"header-text\">\n <h4>{{ vm.type.Name }}</h4>\n <p class=\"type-description\">{{ vm.type.Description }}</p>\n </div>\n </div>\n\n <div class=\"card-body\">\n <!-- Delivery channel checkboxes -->\n <div class=\"preference-row\">\n <label class=\"delivery-label\">Delivery Channels</label>\n\n <div class=\"delivery-checkboxes\">\n <label class=\"channel-checkbox\">\n <input type=\"checkbox\"\n [(ngModel)]=\"vm.inAppEnabled\"\n (change)=\"onChannelChange(vm)\"\n [disabled]=\"!getAllowUserPreference(vm.type)\">\n <i class=\"fa-solid fa-bell\"></i>\n <span>In-App</span>\n </label>\n\n <label class=\"channel-checkbox\">\n <input type=\"checkbox\"\n [(ngModel)]=\"vm.emailEnabled\"\n (change)=\"onChannelChange(vm)\"\n [disabled]=\"!getAllowUserPreference(vm.type)\">\n <i class=\"fa-solid fa-envelope\"></i>\n <span>Email</span>\n </label>\n\n <label class=\"channel-checkbox\">\n <input type=\"checkbox\"\n [(ngModel)]=\"vm.smsEnabled\"\n (change)=\"onChannelChange(vm)\"\n [disabled]=\"!getAllowUserPreference(vm.type)\">\n <i class=\"fa-solid fa-mobile\"></i>\n <span>SMS</span>\n </label>\n </div>\n\n <div class=\"info-message\" *ngIf=\"!getAllowUserPreference(vm.type)\">\n <i class=\"fa-solid fa-info-circle\"></i>\n This notification type's delivery channels cannot be customized.\n </div>\n </div>\n\n <!-- Auto-expire info -->\n <div class=\"metadata-row\" *ngIf=\"getTypeAutoExpireDays(vm.type)\">\n <i class=\"fa-solid fa-clock\"></i>\n <span class=\"metadata-text\">\n Auto-marks as read after {{ getTypeAutoExpireDays(vm.type) }} day(s)\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Action buttons -->\n <div class=\"actions\" *ngIf=\"hasChanges\">\n <button class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n [disabled]=\"saving\">\n Cancel\n </button>\n <button class=\"btn btn-primary\"\n (click)=\"save()\"\n [disabled]=\"saving\">\n <i class=\"fa-solid fa-spinner fa-spin\" *ngIf=\"saving\"></i>\n <i class=\"fa-solid fa-save\" *ngIf=\"!saving\"></i>\n {{ saving ? 'Saving...' : 'Save Preferences' }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".notification-preferences-container {\n padding: 20px;\n max-width: 1200px;\n margin: 0 auto;\n\n .header {\n margin-bottom: 30px;\n\n h3 {\n font-size: 24px;\n font-weight: 600;\n margin: 0 0 10px 0;\n }\n\n .description {\n color: #666;\n font-size: 14px;\n margin: 0;\n }\n }\n\n .empty-state {\n text-align: center;\n padding: 60px 20px;\n color: #999;\n\n i {\n font-size: 64px;\n margin-bottom: 20px;\n }\n\n p {\n font-size: 16px;\n }\n }\n\n .notification-types-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));\n gap: 20px;\n margin-bottom: 30px;\n }\n\n .notification-type-card {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n transition: all 0.2s ease;\n border-left: 4px solid transparent;\n\n &.changed {\n border-color: #2196F3;\n box-shadow: 0 2px 8px rgba(33, 150, 243, 0.2);\n }\n\n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n }\n\n .card-header {\n display: flex;\n gap: 15px;\n padding: 20px;\n border-bottom: 1px solid #f0f0f0;\n align-items: flex-start;\n\n .icon-wrapper {\n width: 48px;\n height: 48px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n i {\n font-size: 24px;\n }\n }\n\n .header-text {\n flex: 1;\n\n h4 {\n margin: 0 0 5px 0;\n font-size: 18px;\n font-weight: 600;\n }\n\n .type-description {\n margin: 0;\n font-size: 13px;\n color: #666;\n line-height: 1.4;\n }\n }\n\n }\n\n .card-body {\n padding: 20px;\n\n .preference-row {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n .delivery-label {\n display: block;\n font-weight: 500;\n margin-bottom: 8px;\n font-size: 14px;\n\n .hint {\n color: #999;\n font-weight: normal;\n font-size: 12px;\n }\n }\n\n .delivery-checkboxes {\n display: flex;\n gap: 20px;\n flex-wrap: wrap;\n\n .channel-checkbox {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: 1px solid #ddd;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n user-select: none;\n background: #fafafa;\n\n input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n accent-color: #2196F3;\n\n &:disabled {\n cursor: not-allowed;\n }\n }\n\n i {\n color: #666;\n font-size: 14px;\n }\n\n span {\n font-size: 14px;\n font-weight: 500;\n }\n\n &:hover:not(:has(input:disabled)) {\n border-color: #2196F3;\n background: #f0f7ff;\n }\n\n &:has(input:checked) {\n border-color: #2196F3;\n background: #e3f2fd;\n\n i {\n color: #2196F3;\n }\n }\n\n &:has(input:disabled) {\n opacity: 0.6;\n cursor: not-allowed;\n }\n }\n }\n\n .info-message {\n margin-top: 10px;\n padding: 10px;\n background: #fff3cd;\n border-left: 3px solid #ffc107;\n border-radius: 4px;\n font-size: 13px;\n display: flex;\n gap: 10px;\n align-items: center;\n\n i {\n color: #856404;\n }\n }\n }\n\n .metadata-row {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n color: #666;\n padding-top: 10px;\n border-top: 1px solid #f0f0f0;\n\n i {\n color: #999;\n }\n }\n }\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 20px;\n background: #f9f9f9;\n border-radius: 8px;\n\n .btn {\n padding: 10px 20px;\n border: none;\n border-radius: 4px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &.btn-secondary {\n background: #fff;\n border: 1px solid #ddd;\n color: #333;\n\n &:hover:not(:disabled) {\n background: #f5f5f5;\n }\n }\n\n &.btn-primary {\n background: #2196F3;\n color: white;\n\n &:hover:not(:disabled) {\n background: #1976D2;\n }\n }\n }\n }\n}\n"] }]
|
|
304
|
+
}], () => [{ type: i1.SharedService }], null); })();
|
|
305
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NotificationPreferencesComponent, { className: "NotificationPreferencesComponent", filePath: "src/lib/notification-preferences/notification-preferences.component.ts", lineNumber: 23 }); })();
|
|
306
|
+
//# sourceMappingURL=notification-preferences.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-preferences.component.js","sourceRoot":"","sources":["../../../src/lib/notification-preferences/notification-preferences.component.ts","../../../src/lib/notification-preferences/notification-preferences.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAgE,cAAc,EAAE,MAAM,+BAA+B,CAAC;;;;;;;ICDzH,gCAAoF;;;IAIhF,8BAAyD;IACrD,wBAAsC;IACtC,yBAAG;IAAA,qDAAqC;IAC5C,AAD4C,iBAAI,EAC1C;;;IAoDU,+BAAmE;IAC/D,wBAAuC;IACvC,kFACJ;IAAA,iBAAM;;;IAIV,+BAAiE;IAC7D,wBAAiC;IACjC,gCAA4B;IACxB,YACJ;IACJ,AADI,iBAAO,EACL;;;;IAFE,eACJ;IADI,yGACJ;;;;IAtDJ,AADJ,AAJJ,+BAEkC,cAE6C,cACW;IAC9E,oBAA0F;IAC9F,iBAAM;IAEF,AADJ,+BAAyB,SACjB;IAAA,YAAkB;IAAA,iBAAK;IAC3B,6BAA4B;IAAA,YAAyB;IAE7D,AADI,AADyD,iBAAI,EACvD,EACJ;IAKE,AADJ,AAFJ,+BAAuB,eAES,iBACM;IAAA,kCAAiB;IAAA,iBAAQ;IAI/C,AADJ,AADJ,gCAAiC,iBACG,iBAIyB;IAF9C,kTAA6B;IAC7B,6NAAU,6BAAmB,KAAC;IAFrC,iBAGqD;IACrD,yBAAgC;IAChC,6BAAM;IAAA,uBAAM;IAChB,AADgB,iBAAO,EACf;IAGJ,AADJ,kCAAgC,iBAIyB;IAF9C,kTAA6B;IAC7B,6NAAU,6BAAmB,KAAC;IAFrC,iBAGqD;IACrD,yBAAoC;IACpC,6BAAM;IAAA,sBAAK;IACf,AADe,iBAAO,EACd;IAGJ,AADJ,kCAAgC,iBAIyB;IAF9C,8SAA2B;IAC3B,6NAAU,6BAAmB,KAAC;IAFrC,iBAGqD;IACrD,yBAAkC;IAClC,6BAAM;IAAA,oBAAG;IAEjB,AADI,AADa,iBAAO,EACZ,EACN;IAEN,gGAAmE;IAIvE,iBAAM;IAGN,gGAAiE;IAOzE,AADI,iBAAM,EACJ;;;;IA5DD,wCAA4B;IAEJ,cAAiD;IAAjD,oEAAiD;IAC5C,cAAuD;IAAvD,0EAAuD;IAC1E,cAA4C;IAA5C,2DAA4C;IAAC,wDAAqC;IAGjF,eAAkB;IAAlB,qCAAkB;IACM,eAAyB;IAAzB,4CAAyB;IAYtC,eAA6B;IAA7B,kDAA6B;IAE7B,qEAA6C;IAO7C,eAA6B;IAA7B,kDAA6B;IAE7B,qEAA6C;IAO7C,eAA2B;IAA3B,gDAA2B;IAE3B,qEAA6C;IAMjC,eAAsC;IAAtC,iEAAsC;IAO1C,cAAoC;IAApC,+DAAoC;;;IAoBnE,wBAA0D;;;IAC1D,wBAAgD;;;;IATpD,AADJ,+BAAwC,iBAGR;IADpB,mMAAS,eAAQ,KAAC;IAEtB,wBACJ;IAAA,iBAAS;IACT,kCAE4B;IADpB,mMAAS,aAAM,KAAC;IAGpB,AADA,0FAAsD,6EACV;IAC5C,YACJ;IACJ,AADI,iBAAS,EACP;;;IAVM,cAAmB;IAAnB,wCAAmB;IAKnB,eAAmB;IAAnB,wCAAmB;IACiB,cAAY;IAAZ,oCAAY;IACvB,cAAa;IAAb,qCAAa;IAC1C,cACJ;IADI,iFACJ;;;IAvFR,8BAAsC;IAElC,uFAAyD;IAMzD,8BAAqC;IACjC,yFAEkC;IA6DtC,iBAAM;IAGN,uFAAwC;IAc5C,iBAAM;;;IAvFwB,cAA6B;IAA7B,qDAA6B;IAQ/B,eAAa;IAAb,2CAAa;IAiEf,cAAgB;IAAhB,wCAAgB;;ADxD9C,MAAM,OAAO,gCAAgC;IAMvB;IALpB,OAAO,GAAG,IAAI,CAAC;IACf,MAAM,GAAG,KAAK,CAAC;IACf,UAAU,GAAsC,EAAE,CAAC;IACnD,UAAU,GAAG,KAAK,CAAC;IAEnB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,8DAA8D;YAC9D,8EAA8E;YAC9E,8EAA8E;YAE9E,iEAAiE;YACjE,MAAM,KAAK,GAAG,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzE,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACpC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACpC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,OAAO,SAAS,GAAG,SAAS,CAAC;gBAC/B,CAAC;gBACD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,wEAAwE;YACxE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAE9D,qCAAqC;YACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEzE,qDAAqD;gBACrD,MAAM,YAAY,GAAG,YAAY,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;gBAC7E,MAAM,YAAY,GAAG,YAAY,EAAE,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;gBAC9E,MAAM,UAAU,GAAG,YAAY,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;gBAExE,OAAO;oBACL,IAAI;oBACJ,UAAU,EAAE,YAAY,IAAI,IAAI;oBAChC,YAAY;oBACZ,YAAY;oBACZ,UAAU;oBACV,OAAO,EAAE,KAAK;oBACd,oBAAoB,EAAE,YAAY;oBAClC,oBAAoB,EAAE,YAAY;oBAClC,kBAAkB,EAAE,UAAU;iBAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,4CAA4C,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,EAAmC;QACjD,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,kBAAkB,CAAC;QACnJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,sBAAsB,EAAE,CAAC;YAErD,2EAA2E;YAC3E,6DAA6D;YAC7D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;gBAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,+BAA+B;oBAC/B,IAAI,GAAG,MAAM,EAAE,CAAC,eAAe,CAAmC,mCAAmC,CAAC,CAAC;oBACvG,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,CAAC;gBAED,sDAAsD;gBACtD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,UAAU,CAAC;gBAEnE,iCAAiC;gBACjC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;gBACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAChC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;gBACnC,iEAAiE;gBACjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAED,2EAA2E;YAC3E,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;YAE1C,IAAI,OAAO,EAAE,CAAC;gBACZ,yFAAyF;gBAEzF,yBAAyB;gBACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC7B,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,YAAY,CAAC;oBAC1C,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,YAAY,CAAC;oBAC1C,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,UAAU,CAAC;oBACtC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,6CAA6C,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,+BAA+B,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED,MAAM;QACJ,iBAAiB;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7B,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,oBAAoB,CAAC;YAC1C,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,oBAAoB,CAAC;YAC1C,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,kBAAkB,CAAC;YACtC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAgC;QAC1C,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAgC;QAC3C,OAAO,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC;IAC9B,CAAC;IAED,qBAAqB,CAAC,IAAgC;QACpD,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,sBAAsB,CAAC,IAAgC;QACrD,OAAO,IAAI,CAAC,mBAAmB,KAAK,KAAK,CAAC;IAC5C,CAAC;0HAzJU,gCAAgC;6DAAhC,gCAAgC;YCtB7C,8BAAgD;YAG5C,AAFA,+FAAuE,oEAEjC;YA0F1C,iBAAM;;YA5FW,cAAa;YAAb,kCAAa;YAEJ,cAAc;YAAd,mCAAc;;;iFDmB3B,gCAAgC;cAL5C,SAAS;2BACE,6BAA6B;;kFAI5B,gCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.component.d.ts","sourceRoot":"","sources":["../../../src/lib/settings/settings.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,YAAY,EAAU,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;;AAEpE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAMa,iBAAkB,SAAQ,uBAAwB,YAAW,MAAM,EAAE,SAAS;IAC/E,WAAW,uCAA8C;IAG5D,SAAS,SAAa;IACtB,iBAAiB,SAAiB;IAClC,WAAW,0BAAmC;IAC9C,SAAS,UAAS;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,IAAI,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"settings.component.d.ts","sourceRoot":"","sources":["../../../src/lib/settings/settings.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,YAAY,EAAU,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;;AAEpE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3D;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAMa,iBAAkB,SAAQ,uBAAwB,YAAW,MAAM,EAAE,SAAS;IAC/E,WAAW,uCAA8C;IAG5D,SAAS,SAAa;IACtB,iBAAiB,SAAiB;IAClC,WAAW,0BAAmC;IAC9C,SAAS,UAAS;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,IAAI,EAAE,WAAW,EAAE,CA4CxB;IAGK,gBAAgB,EAAE,MAAM,EAAE,CAA8B;IAGxD,QAAQ,UAA2B;IAE1C,OAAO,CAAC,QAAQ,CAAuB;;IAQvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,iBAAiB;IAaZ,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAY/B,gBAAgB;IAIvB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKlC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAUtC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1C,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAShB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAY3D,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAIpC,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;yCA7KjC,iBAAiB;2CAAjB,iBAAiB;CAuL7B"}
|