ngx-techlify-core 18.3.1 → 18.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +4 -4
  2. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +4 -4
  3. package/esm2022/lib/material.module.mjs +12 -4
  4. package/esm2022/lib/role/roles-view-all.component.mjs +7 -7
  5. package/esm2022/lib/techlify-notifications/index.mjs +1 -25
  6. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +38 -70
  7. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +18 -0
  8. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +18 -0
  9. package/esm2022/lib/user/users-view-all.component.mjs +8 -8
  10. package/fesm2022/ngx-techlify-core.mjs +203 -1436
  11. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  12. package/lib/material.module.d.ts +3 -1
  13. package/lib/techlify-notifications/index.d.ts +0 -24
  14. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +10 -15
  15. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.d.ts +8 -0
  16. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.d.ts +8 -0
  17. package/package.json +1 -1
  18. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +0 -18
  19. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +0 -103
  20. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +0 -42
  21. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +0 -18
  22. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +0 -173
  23. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +0 -50
  24. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +0 -18
  25. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +0 -117
  26. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +0 -43
  27. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +0 -18
  28. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +0 -180
  29. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +0 -48
  30. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +0 -18
  31. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +0 -69
  32. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +0 -40
  33. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +0 -32
  34. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +0 -46
  35. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +0 -6
  36. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +0 -18
  37. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +0 -99
  38. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +0 -48
  39. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +0 -18
  40. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +0 -166
  41. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +0 -44
  42. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +0 -26
  43. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +0 -42
  44. package/esm2022/lib/techlify-notifications/techlify-notification-user-status.model.mjs +0 -5
  45. package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.d.ts +0 -7
  46. package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.d.ts +0 -28
  47. package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.d.ts +0 -13
  48. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.d.ts +0 -7
  49. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.d.ts +0 -39
  50. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.d.ts +0 -15
  51. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.d.ts +0 -7
  52. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.d.ts +0 -37
  53. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.d.ts +0 -14
  54. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.d.ts +0 -7
  55. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.d.ts +0 -37
  56. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.d.ts +0 -15
  57. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.d.ts +0 -7
  58. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.d.ts +0 -21
  59. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.d.ts +0 -13
  60. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.d.ts +0 -7
  61. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.d.ts +0 -14
  62. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.d.ts +0 -5
  63. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.d.ts +0 -7
  64. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.d.ts +0 -32
  65. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.d.ts +0 -15
  66. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.d.ts +0 -7
  67. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.d.ts +0 -35
  68. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.d.ts +0 -14
  69. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.d.ts +0 -7
  70. package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.d.ts +0 -13
  71. package/lib/techlify-notifications/techlify-notification-user-status.model.d.ts +0 -4
@@ -19,8 +19,10 @@ import * as i17 from "@angular/material/list";
19
19
  import * as i18 from "@angular/material/tooltip";
20
20
  import * as i19 from "@angular/material/button-toggle";
21
21
  import * as i20 from "@angular/material/sidenav";
22
+ import * as i21 from "@angular/material/progress-bar";
23
+ import * as i22 from "@angular/material/slide-toggle";
22
24
  export declare class MaterialModule {
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<MaterialModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, never, [typeof i1.MatButtonModule, typeof i2.MatCheckboxModule, typeof i3.MatCommonModule, typeof i4.MatDialogModule, typeof i5.MatFormFieldModule, typeof i6.MatIconModule, typeof i7.MatInputModule, typeof i3.MatLineModule, typeof i8.MatMenuModule, typeof i3.MatNativeDateModule, typeof i3.MatOptionModule, typeof i9.MatProgressSpinnerModule, typeof i3.MatPseudoCheckboxModule, typeof i3.MatRippleModule, typeof i10.MatSelectModule, typeof i11.MatSortModule, typeof i12.MatTableModule, typeof i13.MatCardModule, typeof i14.MatDividerModule, typeof i15.MatChipsModule, typeof i16.MatDatepickerModule, typeof i17.MatListModule, typeof i18.MatTooltipModule, typeof i19.MatButtonToggleModule, typeof i20.MatSidenavModule]>;
26
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, never, [typeof i1.MatButtonModule, typeof i2.MatCheckboxModule, typeof i3.MatCommonModule, typeof i4.MatDialogModule, typeof i5.MatFormFieldModule, typeof i6.MatIconModule, typeof i7.MatInputModule, typeof i3.MatLineModule, typeof i8.MatMenuModule, typeof i3.MatNativeDateModule, typeof i3.MatOptionModule, typeof i9.MatProgressSpinnerModule, typeof i3.MatPseudoCheckboxModule, typeof i3.MatRippleModule, typeof i10.MatSelectModule, typeof i11.MatSortModule, typeof i12.MatTableModule, typeof i13.MatCardModule, typeof i14.MatDividerModule, typeof i15.MatChipsModule, typeof i16.MatDatepickerModule, typeof i17.MatListModule, typeof i18.MatTooltipModule, typeof i19.MatButtonToggleModule, typeof i20.MatSidenavModule, typeof i21.MatProgressBarModule, typeof i22.MatSlideToggleModule]>;
25
27
  static ɵinj: i0.ɵɵInjectorDeclaration<MaterialModule>;
26
28
  }
@@ -1,29 +1,5 @@
1
1
  export * from './techlify-notification.module';
2
2
  export * from './techlify-notification-routing.module';
3
- export * from './techlify-notification-user-status.model';
4
- export * from './ngx-techlify-notifier/ngx-techlify-notifier-routing.module';
5
- export * from './ngx-techlify-notifier/ngx-techlify-notifier.module';
6
- export * from './ngx-techlify-notifier/ngx-techlify-notifier.component';
7
3
  export * from './techlify-notification-for-user/techlify-notification-for-user.module';
8
4
  export * from './techlify-notification-for-user/techlify-notification-for-user-routing.module';
9
5
  export * from './techlify-notification-for-user/techlify-notification-for-user.component';
10
- export * from './techlify-notification-subscriber/techlify-notification-subscription-entity.model';
11
- export * from './techlify-notification-subscriber/techlify-notification-subscriber.module';
12
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-routing.module';
13
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module';
14
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component';
15
- export * from './techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module';
16
- export * from './techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module';
17
- export * from './techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component';
18
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component';
19
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module';
20
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module';
21
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component';
22
- export * from './techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module';
23
- export * from './techlify-notification-type/techlify-notification-type.module';
24
- export * from './techlify-notification-type/techlify-notification-type-routing.module';
25
- export * from './techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module';
26
- export * from './techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module';
27
- export * from './techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component';
28
- export * from './techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module';
29
- export * from './techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component';
@@ -1,22 +1,17 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { PageEvent } from '../../data-table';
3
- import { HttpService } from '../../core';
2
+ import { TechlifyListingControllerInterface } from '../../base-model';
3
+ import { TechlifyNotificationTypeService } from './techlify-notification-type.service';
4
+ import { TechlifyNotificationSubscriptionService } from './techlify-notification-subscription.service';
4
5
  import * as i0 from "@angular/core";
5
- export declare class TechlifyNotificationForUserComponent implements OnInit {
6
- private http;
7
- private environment;
8
- blockAdminNotification: boolean;
9
- notifications: any[];
10
- pageEvent: PageEvent;
6
+ export declare class TechlifyNotificationForUserComponent extends TechlifyListingControllerInterface implements OnInit {
7
+ private techlifyNotificationTypeService;
8
+ private techlifyNotificationSubscriptionService;
11
9
  filters: any;
12
- rootScrollContainer: string;
13
- constructor(http: HttpService, environment: any);
10
+ constructor(techlifyNotificationTypeService: TechlifyNotificationTypeService, techlifyNotificationSubscriptionService: TechlifyNotificationSubscriptionService);
14
11
  ngOnInit(): void;
15
- fetchNotifications(): void;
16
- onScroll(): void;
17
- toggleSubscription(notification: any): void;
18
- reload(): void;
12
+ loadData(): void;
13
+ toggleSubscription(notificationType: any, field: any, event: any): void;
19
14
  ngOnDestroy(): void;
20
15
  static ɵfac: i0.ɵɵFactoryDeclaration<TechlifyNotificationForUserComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<TechlifyNotificationForUserComponent, "app-techlify-notification-for-user", never, { "blockAdminNotification": { "alias": "blockAdminNotification"; "required": false; }; }, {}, never, never, false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<TechlifyNotificationForUserComponent, "app-techlify-notification-for-user", never, {}, {}, never, never, false, never>;
22
17
  }
@@ -0,0 +1,8 @@
1
+ import { TechlifyServiceBaseClass } from '../../base-model/techlify-service.class';
2
+ import { HttpService } from '../../core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TechlifyNotificationSubscriptionService extends TechlifyServiceBaseClass {
5
+ constructor(http: HttpService);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TechlifyNotificationSubscriptionService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<TechlifyNotificationSubscriptionService>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TechlifyServiceBaseClass } from '../../base-model/techlify-service.class';
2
+ import { HttpService } from '../../core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TechlifyNotificationTypeService extends TechlifyServiceBaseClass {
5
+ constructor(http: HttpService);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TechlifyNotificationTypeService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<TechlifyNotificationTypeService>;
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-techlify-core",
3
- "version": "18.3.1",
3
+ "version": "18.3.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18",
6
6
  "@angular/core": ">=18",
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- const routes = [];
6
- export class NgxTechlifyNotifierRoutingModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierRoutingModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- imports: [RouterModule.forChild(routes)],
15
- exports: [RouterModule]
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRlY2hsaWZ5LW5vdGlmaWVyLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1ub3RpZmljYXRpb25zL25neC10ZWNobGlmeS1ub3RpZmllci9uZ3gtdGVjaGxpZnktbm90aWZpZXItcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7OztBQUV2RCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7QUFNMUIsTUFBTSxPQUFPLGdDQUFnQzsrR0FBaEMsZ0NBQWdDO2dIQUFoQyxnQ0FBZ0Msd0NBRmpDLFlBQVk7Z0hBRVgsZ0NBQWdDLFlBSGpDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLGdDQUFnQztrQkFKNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgTmd4VGVjaGxpZnlOb3RpZmllclJvdXRpbmdNb2R1bGUgeyB9XG4iXX0=
@@ -1,103 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, Inject } from '@angular/core';
3
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
- import { interval } from 'rxjs';
5
- import { switchMap } from 'rxjs/operators';
6
- import { TechlifyNotificationUserStatus } from '../techlify-notification-user-status.model';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../core";
9
- import * as i2 from "ngx-toastr";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "ngx-infinite-scroll";
12
- import * as i5 from "@angular/material/button";
13
- import * as i6 from "@angular/material/icon";
14
- import * as i7 from "@angular/material/menu";
15
- import * as i8 from "@angular/material/badge";
16
- import * as i9 from "@angular/flex-layout/flex";
17
- import * as i10 from "@angular/flex-layout/extended";
18
- let NgxTechlifyNotifierComponent = class NgxTechlifyNotifierComponent {
19
- constructor(http, toastr, environment) {
20
- this.http = http;
21
- this.toastr = toastr;
22
- this.environment = environment;
23
- this.notifications = [];
24
- this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
25
- this.filters = {
26
- sort_by: 'created_at|desc',
27
- isLoadRelations: true,
28
- relations: 'status,notification'
29
- };
30
- }
31
- ngOnInit() {
32
- this.rootScrollContainer = this.environment?.rootScrollContainer || 'body';
33
- this.pollingInterval = this.environment?.notificationPollingInterval || 5000;
34
- this.loadNotifications(true);
35
- }
36
- loadNotifications(initiate = false) {
37
- this.fetchNotifications(this.pageEvent).subscribe((result) => {
38
- this.notifications = this.notifications.concat(result.data);
39
- this.notifications = [...new Map(this.notifications.map(item => [item['id'], item])).values()];
40
- this.pageEvent.page = result.current_page;
41
- this.pageEvent.lastPage = result.last_page;
42
- if (initiate) {
43
- this.startNotificationPolling();
44
- }
45
- });
46
- }
47
- startNotificationPolling() {
48
- this.$notificationLoader =
49
- interval(this.pollingInterval)
50
- .pipe(switchMap((_) => this.fetchNotifications({ page: 1, perPage: 25, lastPage: 1 })), untilDestroyed(this)).subscribe((result) => {
51
- //Look for any new notifications
52
- const newNotifications = result.data.filter((item) => !this.notifications.some((x) => x.id == item.id));
53
- if (newNotifications?.length > 0) {
54
- this.notifications = newNotifications.concat(this.notifications);
55
- newNotifications.forEach((item) => {
56
- this.toastr.success(item?.notification?.body, item?.notification?.title);
57
- });
58
- }
59
- });
60
- }
61
- get unreadNotificationsCount() {
62
- return this.notifications.filter(x => x.status_id === TechlifyNotificationUserStatus.DELIVERED).length;
63
- }
64
- fetchNotifications(pageEvent) {
65
- return this.http.get(`api/notification-users`, { params: { ...this.filters, ...pageEvent } })
66
- .pipe(untilDestroyed(this));
67
- }
68
- onScroll() {
69
- if (this.pageEvent.lastPage > this.pageEvent.page) {
70
- this.pageEvent.page += 1;
71
- this.loadNotifications();
72
- }
73
- }
74
- notificationClick(event, notification) {
75
- event.stopPropagation();
76
- this.http.patch(`api/notification-user-status/${notification.id}`, { status_id: TechlifyNotificationUserStatus.READ })
77
- .pipe(untilDestroyed(this))
78
- .subscribe((res) => {
79
- this.notifications[this.notifications.findIndex(x => x.id == notification.id)] = res.item;
80
- this.notifications = [...this.notifications];
81
- });
82
- }
83
- ngOnDestroy() {
84
- //Until destroyed uses it
85
- if (this.$notificationLoader) {
86
- this.$notificationLoader.unsubscribe();
87
- }
88
- }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierComponent, deps: [{ token: i1.HttpService }, { token: i2.ToastrService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NgxTechlifyNotifierComponent, selector: "app-ngx-techlify-notifier", ngImport: i0, template: "<button mat-button [matMenuTriggerFor]=\"notificaitonMenu\" type=\"button\" #menuTrigger=\"matMenuTrigger\"\n [matBadge]=\"unreadNotificationsCount\" matBadgePosition=\"after\" matBadgeColor=\"warn\"\n [matBadgeHidden]=\"unreadNotificationsCount == 0\">\n <mat-icon>notifications_active</mat-icon>\n</button>\n\n<mat-menu #notificaitonMenu=\"matMenu\" class=\"notifications\">\n <ng-container *ngIf=\"notifications.length > 0 && menuTrigger.menuOpen\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" infiniteScrollContainer=\".mat-menu-panel.notifications\"\n [fromRoot]=\"true\">\n <div mat-menu-item class=\"mat-elevation-z1 p-2 mat-typography\" fxLayout=\"column\"\n *ngFor=\"let item of notifications\" (click)=\"notificationClick($event, item)\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h3 class=\"m-0\">{{item?.notification?.title}}</h3>\n <span fxFlex></span>\n <span\n [ngClass]=\"{'text-success':(item?.status_id == 2),'text-secondary':(item?.status_id == 1)}\">{{item?.status?.title}}</span>\n </div>\n <div class=\"text-secondary\">\n {{item?.notification?.body}}\n </div>\n </div>\n </ng-container>\n <div mat-menu-item class=\"mat-elevation-z1 p-2 mat-typography\" fxLayout=\"column\" fxLayoutAlign=\"start center\"\n *ngIf=\"notifications.length == 0\">\n <span> No Notifications to show</span>\n </div>\n</mat-menu>", styles: [":host{display:flex}::ng-deep .mat-menu-panel.notifications{width:500px!important;max-width:500px!important;min-height:unset!important}::ng-deep .mat-menu-panel.notifications .mat-menu-content{padding:0!important}::ng-deep .mat-menu-panel.notifications .mat-menu-item{height:auto!important;line-height:20px!important}:host ::ng-deep .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{top:-10px;right:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i9.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i9.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i9.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); }
91
- };
92
- NgxTechlifyNotifierComponent = __decorate([
93
- UntilDestroy()
94
- ], NgxTechlifyNotifierComponent);
95
- export { NgxTechlifyNotifierComponent };
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierComponent, decorators: [{
97
- type: Component,
98
- args: [{ selector: 'app-ngx-techlify-notifier', template: "<button mat-button [matMenuTriggerFor]=\"notificaitonMenu\" type=\"button\" #menuTrigger=\"matMenuTrigger\"\n [matBadge]=\"unreadNotificationsCount\" matBadgePosition=\"after\" matBadgeColor=\"warn\"\n [matBadgeHidden]=\"unreadNotificationsCount == 0\">\n <mat-icon>notifications_active</mat-icon>\n</button>\n\n<mat-menu #notificaitonMenu=\"matMenu\" class=\"notifications\">\n <ng-container *ngIf=\"notifications.length > 0 && menuTrigger.menuOpen\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" infiniteScrollContainer=\".mat-menu-panel.notifications\"\n [fromRoot]=\"true\">\n <div mat-menu-item class=\"mat-elevation-z1 p-2 mat-typography\" fxLayout=\"column\"\n *ngFor=\"let item of notifications\" (click)=\"notificationClick($event, item)\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h3 class=\"m-0\">{{item?.notification?.title}}</h3>\n <span fxFlex></span>\n <span\n [ngClass]=\"{'text-success':(item?.status_id == 2),'text-secondary':(item?.status_id == 1)}\">{{item?.status?.title}}</span>\n </div>\n <div class=\"text-secondary\">\n {{item?.notification?.body}}\n </div>\n </div>\n </ng-container>\n <div mat-menu-item class=\"mat-elevation-z1 p-2 mat-typography\" fxLayout=\"column\" fxLayoutAlign=\"start center\"\n *ngIf=\"notifications.length == 0\">\n <span> No Notifications to show</span>\n </div>\n</mat-menu>", styles: [":host{display:flex}::ng-deep .mat-menu-panel.notifications{width:500px!important;max-width:500px!important;min-height:unset!important}::ng-deep .mat-menu-panel.notifications .mat-menu-content{padding:0!important}::ng-deep .mat-menu-panel.notifications .mat-menu-item{height:auto!important;line-height:20px!important}:host ::ng-deep .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{top:-10px;right:5px}\n"] }]
99
- }], ctorParameters: () => [{ type: i1.HttpService }, { type: i2.ToastrService }, { type: undefined, decorators: [{
100
- type: Inject,
101
- args: ['environment']
102
- }] }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktbm90aWZpY2F0aW9ucy9uZ3gtdGVjaGxpZnktbm90aWZpZXIvbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktbm90aWZpY2F0aW9ucy9uZ3gtdGVjaGxpZnktbm90aWZpZXIvbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JFLE9BQU8sRUFBRSxRQUFRLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXJGLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBWXZDLFlBQ1UsSUFBaUIsRUFDakIsTUFBcUIsRUFDRSxXQUFnQjtRQUZ2QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDRSxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQWRqRCxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzdELFlB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QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxXQUFXO1FBQ1QseUJBQXlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDOytHQXhGVSw0QkFBNEIsMEVBZTdCLGFBQWE7bUdBZlosNEJBQTRCLGlFQ2R6Qyw4akRBMkJXOztBRGJFLDRCQUE0QjtJQU54QyxZQUFZLEVBQUU7R0FNRiw0QkFBNEIsQ0EwRnhDOzs0RkExRlksNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBbUJsQyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICcuLi8uLi9kYXRhLXRhYmxlJztcbmltcG9ydCB7IGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRlY2hsaWZ5Tm90aWZpY2F0aW9uVXNlclN0YXR1cyB9IGZyb20gJy4uL3RlY2hsaWZ5LW5vdGlmaWNhdGlvbi11c2VyLXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1uZ3gtdGVjaGxpZnktbm90aWZpZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmd4VGVjaGxpZnlOb3RpZmllckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG5vdGlmaWNhdGlvbnM6IGFueVtdID0gW107XG4gIHBhZ2VFdmVudDogUGFnZUV2ZW50ID0geyBwYWdlOiAxLCBwZXJQYWdlOiAyNSwgbGFzdFBhZ2U6IDEgfTtcbiAgZmlsdGVyczogYW55ID0ge1xuICAgIHNvcnRfYnk6ICdjcmVhdGVkX2F0fGRlc2MnLFxuICAgIGlzTG9hZFJlbGF0aW9uczogdHJ1ZSxcbiAgICByZWxhdGlvbnM6ICdzdGF0dXMsbm90aWZpY2F0aW9uJ1xuICB9O1xuICByb290U2Nyb2xsQ29udGFpbmVyOiBzdHJpbmc7XG4gIHBvbGxpbmdJbnRlcnZhbDogbnVtYmVyO1xuICAkbm90aWZpY2F0aW9uTG9hZGVyOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvb3RTY3JvbGxDb250YWluZXIgPSB0aGlzLmVudmlyb25tZW50Py5yb290U2Nyb2xsQ29udGFpbmVyIHx8ICdib2R5JztcbiAgICB0aGlzLnBvbGxpbmdJbnRlcnZhbCA9IHRoaXMuZW52aXJvbm1lbnQ/Lm5vdGlmaWNhdGlvblBvbGxpbmdJbnRlcnZhbCB8fCA1MDAwO1xuICAgIHRoaXMubG9hZE5vdGlmaWNhdGlvbnModHJ1ZSk7XG4gIH1cblxuICBsb2FkTm90aWZpY2F0aW9ucyhpbml0aWF0ZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5mZXRjaE5vdGlmaWNhdGlvbnModGhpcy5wYWdlRXZlbnQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHRoaXMubm90aWZpY2F0aW9ucy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gWy4uLm5ldyBNYXAodGhpcy5ub3RpZmljYXRpb25zLm1hcChpdGVtID0+XG4gICAgICAgIFtpdGVtWydpZCddLCBpdGVtXSkpLnZhbHVlcygpXTtcbiAgICAgIHRoaXMucGFnZUV2ZW50LnBhZ2UgPSByZXN1bHQuY3VycmVudF9wYWdlO1xuICAgICAgdGhpcy5wYWdlRXZlbnQubGFzdFBhZ2UgPSByZXN1bHQubGFzdF9wYWdlO1xuICAgICAgaWYgKGluaXRpYXRlKSB7XG4gICAgICAgIHRoaXMuc3RhcnROb3RpZmljYXRpb25Qb2xsaW5nKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGFydE5vdGlmaWNhdGlvblBvbGxpbmcoKSB7XG4gICAgdGhpcy4kbm90aWZpY2F0aW9uTG9hZGVyID1cbiAgICAgIGludGVydmFsKHRoaXMucG9sbGluZ0ludGVydmFsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKF8pID0+IHRoaXMuZmV0Y2hOb3RpZmljYXRpb25zKHsgcGFnZTogMSwgcGVyUGFnZTogMjUsIGxhc3RQYWdlOiAxIH0pKSxcbiAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAvL0xvb2sgZm9yIGFueSBuZXcgbm90aWZpY2F0aW9uc1xuICAgICAgICAgIGNvbnN0IG5ld05vdGlmaWNhdGlvbnM6IGFueVtdID0gKHJlc3VsdC5kYXRhIGFzIGFueVtdKS5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMubm90aWZpY2F0aW9ucy5zb21lKCh4OiBhbnkpID0+IHguaWQgPT0gaXRlbS5pZCkpO1xuICAgICAgICAgIGlmIChuZXdOb3RpZmljYXRpb25zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBuZXdOb3RpZmljYXRpb25zLmNvbmNhdCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICAgICAgICAgICAgbmV3Tm90aWZpY2F0aW9ucy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhpdGVtPy5ub3RpZmljYXRpb24/LmJvZHksIGl0ZW0/Lm5vdGlmaWNhdGlvbj8udGl0bGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnJlYWROb3RpZmljYXRpb25zQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9ucy5maWx0ZXIoeCA9PiB4LnN0YXR1c19pZCA9PT0gVGVjaGxpZnlOb3RpZmljYXRpb25Vc2VyU3RhdHVzLkRFTElWRVJFRCkubGVuZ3RoO1xuICB9XG5cblxuICBmZXRjaE5vdGlmaWNhdGlvbnMocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvbm90aWZpY2F0aW9uLXVzZXJzYCwgeyBwYXJhbXM6IHsgLi4udGhpcy5maWx0ZXJzLCAuLi5wYWdlRXZlbnQgfSB9KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZUV2ZW50Lmxhc3RQYWdlID4gdGhpcy5wYWdlRXZlbnQucGFnZSkge1xuICAgICAgdGhpcy5wYWdlRXZlbnQucGFnZSArPSAxO1xuICAgICAgdGhpcy5sb2FkTm90aWZpY2F0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmaWNhdGlvbkNsaWNrKGV2ZW50OiBhbnksIG5vdGlmaWNhdGlvbjogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5odHRwLnBhdGNoKGBhcGkvbm90aWZpY2F0aW9uLXVzZXItc3RhdHVzLyR7bm90aWZpY2F0aW9uLmlkfWAsIHsgc3RhdHVzX2lkOiBUZWNobGlmeU5vdGlmaWNhdGlvblVzZXJTdGF0dXMuUkVBRCB9KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNbdGhpcy5ub3RpZmljYXRpb25zLmZpbmRJbmRleCh4ID0+IHguaWQgPT0gbm90aWZpY2F0aW9uLmlkKV0gPSByZXMuaXRlbTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gWy4uLnRoaXMubm90aWZpY2F0aW9uc107XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy9VbnRpbCBkZXN0cm95ZWQgdXNlcyBpdFxuICAgIGlmICh0aGlzLiRub3RpZmljYXRpb25Mb2FkZXIpIHtcbiAgICAgIHRoaXMuJG5vdGlmaWNhdGlvbkxvYWRlci51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm5vdGlmaWNhaXRvbk1lbnVcIiB0eXBlPVwiYnV0dG9uXCIgI21lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIFttYXRCYWRnZV09XCJ1bnJlYWROb3RpZmljYXRpb25zQ291bnRcIiBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIiBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgW21hdEJhZGdlSGlkZGVuXT1cInVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCA9PSAwXCI+XG4gICAgPG1hdC1pY29uPm5vdGlmaWNhdGlvbnNfYWN0aXZlPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bWF0LW1lbnUgI25vdGlmaWNhaXRvbk1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJub3RpZmljYXRpb25zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbnMubGVuZ3RoID4gMCAmJiBtZW51VHJpZ2dlci5tZW51T3BlblwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgaW5maW5pdGVTY3JvbGxDb250YWluZXI9XCIubWF0LW1lbnUtcGFuZWwubm90aWZpY2F0aW9uc1wiXG4gICAgICAgIFtmcm9tUm9vdF09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejEgcC0yIG1hdC10eXBvZ3JhcGh5XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygbm90aWZpY2F0aW9uc1wiIChjbGljayk9XCJub3RpZmljYXRpb25DbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJtLTBcIj57e2l0ZW0/Lm5vdGlmaWNhdGlvbj8udGl0bGV9fTwvaDM+XG4gICAgICAgICAgICAgICAgPHNwYW4gZnhGbGV4Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3RleHQtc3VjY2Vzcyc6KGl0ZW0/LnN0YXR1c19pZCA9PSAyKSwndGV4dC1zZWNvbmRhcnknOihpdGVtPy5zdGF0dXNfaWQgPT0gMSl9XCI+e3tpdGVtPy5zdGF0dXM/LnRpdGxlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgIHt7aXRlbT8ubm90aWZpY2F0aW9uPy5ib2R5fX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoxIHAtMiBtYXQtdHlwb2dyYXBoeVwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXG4gICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9ucy5sZW5ndGggPT0gMFwiPlxuICAgICAgICA8c3Bhbj4gTm8gTm90aWZpY2F0aW9ucyB0byBzaG93PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9tYXQtbWVudT4iXX0=
@@ -1,42 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { NgxTechlifyNotifierRoutingModule } from './ngx-techlify-notifier-routing.module';
4
- import { NgxTechlifyNotifierComponent } from './ngx-techlify-notifier.component';
5
- import { FlexLayoutModule } from '@angular/flex-layout';
6
- import { InfiniteScrollModule } from 'ngx-infinite-scroll';
7
- import { MatBadgeModule } from '@angular/material/badge';
8
- import { MaterialModule } from '../../material.module';
9
- import * as i0 from "@angular/core";
10
- export class NgxTechlifyNotifierModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierModule, declarations: [NgxTechlifyNotifierComponent], imports: [CommonModule,
13
- InfiniteScrollModule,
14
- MaterialModule,
15
- MatBadgeModule,
16
- FlexLayoutModule,
17
- NgxTechlifyNotifierRoutingModule], exports: [NgxTechlifyNotifierComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierModule, imports: [CommonModule,
19
- InfiniteScrollModule,
20
- MaterialModule,
21
- MatBadgeModule,
22
- FlexLayoutModule,
23
- NgxTechlifyNotifierRoutingModule] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxTechlifyNotifierModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- declarations: [
29
- NgxTechlifyNotifierComponent
30
- ],
31
- imports: [
32
- CommonModule,
33
- InfiniteScrollModule,
34
- MaterialModule,
35
- MatBadgeModule,
36
- FlexLayoutModule,
37
- NgxTechlifyNotifierRoutingModule
38
- ],
39
- exports: [NgxTechlifyNotifierComponent]
40
- }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRlY2hsaWZ5LW5vdGlmaWVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktbm90aWZpY2F0aW9ucy9uZ3gtdGVjaGxpZnktbm90aWZpZXIvbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQWdCckQsTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBWmxDLDRCQUE0QixhQUc1QixZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGdDQUFnQyxhQUV4Qiw0QkFBNEI7Z0hBRTNCLHlCQUF5QixZQVRsQyxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGNBQWM7WUFDZCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGdDQUFnQzs7NEZBSXZCLHlCQUF5QjtrQkFkckMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdDQUFnQztxQkFDakM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE5neFRlY2hsaWZ5Tm90aWZpZXJSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9uZ3gtdGVjaGxpZnktbm90aWZpZXItcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTmd4VGVjaGxpZnlOb3RpZmllckNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXRlY2hsaWZ5LW5vdGlmaWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHtNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmd4VGVjaGxpZnlOb3RpZmllckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTmd4VGVjaGxpZnlOb3RpZmllclJvdXRpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW05neFRlY2hsaWZ5Tm90aWZpZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE5neFRlY2hsaWZ5Tm90aWZpZXJNb2R1bGUgeyB9XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { RouterModule } from '@angular/router';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- const routes = [];
6
- export class TechlifyNotficationSubscriberDashboardRoutingModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardRoutingModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- imports: [RouterModule.forChild(routes)],
15
- exports: [RouterModule]
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbm90ZmljYXRpb24tc3Vic2NyaWJlci1kYXNoYm9hcmQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LW5vdGlmaWNhdGlvbnMvdGVjaGxpZnktbm90aWZpY2F0aW9uLXN1YnNjcmliZXIvdGVjaGxpZnktbm90ZmljYXRpb24tc3Vic2NyaWJlci1kYXNoYm9hcmQvdGVjaGxpZnktbm90ZmljYXRpb24tc3Vic2NyaWJlci1kYXNoYm9hcmQtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7OztBQUV2RCxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7QUFNMUIsTUFBTSxPQUFPLG1EQUFtRDsrR0FBbkQsbURBQW1EO2dIQUFuRCxtREFBbUQsd0NBRnBELFlBQVk7Z0hBRVgsbURBQW1ELFlBSHBELFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLG1EQUFtRDtrQkFKL0QsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlOb3RmaWNhdGlvblN1YnNjcmliZXJEYXNoYm9hcmRSb3V0aW5nTW9kdWxlIHsgfVxuIl19
@@ -1,173 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, Inject, ViewChild } from '@angular/core';
3
- import { UntypedFormControl } from '@angular/forms';
4
- import { MatSort } from '@angular/material/sort';
5
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
- import { TechlifyNotificationSubscriberFormComponent } from '../techlify-notification-subscriber-form/techlify-notification-subscriber-form.component';
7
- import { ActionPopupComponent } from '../../../action-popup';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/dialog";
10
- import * as i2 from "../../../core";
11
- import * as i3 from "@angular/router";
12
- import * as i4 from "../techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "ngx-infinite-scroll";
15
- import * as i7 from "@angular/material/button";
16
- import * as i8 from "@angular/material/form-field";
17
- import * as i9 from "@angular/material/core";
18
- import * as i10 from "@angular/material/select";
19
- import * as i11 from "@angular/material/sort";
20
- import * as i12 from "@angular/material/table";
21
- import * as i13 from "@angular/flex-layout/flex";
22
- import * as i14 from "@angular/forms";
23
- let TechlifyNotficationSubscriberDashboardComponent = class TechlifyNotficationSubscriberDashboardComponent {
24
- constructor(dialog, http, router, route, environment) {
25
- this.dialog = dialog;
26
- this.http = http;
27
- this.router = router;
28
- this.route = route;
29
- this.environment = environment;
30
- this.subscriberList = [];
31
- this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
32
- this.filters = {
33
- sort_by: 'created_at|desc',
34
- relations: 'type,entity'
35
- };
36
- this.displayColumns = new UntypedFormControl(['index', 'subscriber', 'entity.title', 'type.title']);
37
- this.displayedColumns = [];
38
- this.availableDisplayColumns = [
39
- { order: 1, value: 'index', name: 'Index' },
40
- { order: 2, value: 'subscriber', name: 'Subscriber' },
41
- { order: 3, value: 'entity.title', name: 'Entity' },
42
- { order: 4, value: 'type.title', name: 'Type' },
43
- ];
44
- }
45
- ngOnInit() {
46
- this.rootScrollContainer = this.environment?.rootScrollContainer || 'body';
47
- this.displayedColumns = this.displayColumns.value;
48
- this.initializeData();
49
- if (this.sort) {
50
- this.sort.sortChange.pipe(untilDestroyed(this))
51
- .subscribe((value) => {
52
- this.changeSort(value);
53
- });
54
- }
55
- }
56
- get selectedColumns() {
57
- return this.availableDisplayColumns
58
- .filter(col => this.displayColumns.value.some((x) => x === col.value))
59
- .sort((a, b) => (a.order > b.order) ? 1 : ((b.order > a.order) ? -1 : 0))
60
- .map(col => col.value);
61
- }
62
- columnsChange() {
63
- this.displayedColumns = this.selectedColumns;
64
- }
65
- navigateToView(event, notification) {
66
- event.stopPropagation();
67
- this.router.navigate(['list-view'], {
68
- relativeTo: this.route,
69
- state: { subscriber_id: notification?.subscriber_id, entity_id: notification?.entity_id }
70
- });
71
- }
72
- initializeData() {
73
- this.http.get(`api/notification-subscriptions-unique`, { params: { ...this.filters, ...this.pageEvent } })
74
- .pipe(untilDestroyed(this))
75
- .subscribe((result) => {
76
- this.subscriberList = this.subscriberList.concat(result.data);
77
- this.pageEvent.page = result.current_page;
78
- this.pageEvent.lastPage = result.last_page;
79
- });
80
- }
81
- filterChange(event) {
82
- this.filters = {
83
- ...this.filters,
84
- ...event
85
- };
86
- this.reload();
87
- }
88
- addTechlifyNotificationSubscriber() {
89
- const dialogRef = this.dialog.open(TechlifyNotificationSubscriberFormComponent, {
90
- width: '400px',
91
- autoFocus: false,
92
- data: {} // Any data passed here will be injected into the model
93
- });
94
- dialogRef.afterClosed().subscribe((result) => {
95
- if (result) {
96
- this.reload();
97
- }
98
- });
99
- }
100
- editTechlifyNotificationSubscriber(event, subscriber) {
101
- event.stopPropagation();
102
- const dialogRef = this.dialog.open(TechlifyNotificationSubscriberFormComponent, {
103
- width: '400px',
104
- autoFocus: false,
105
- data: {
106
- subscriber
107
- } // Any data passed here will be injected into the model
108
- });
109
- dialogRef.afterClosed().subscribe((result) => {
110
- if (result) {
111
- this.reload();
112
- }
113
- });
114
- }
115
- deleteTechlifyNotificationSubscriber(event, subscriber) {
116
- event.stopPropagation();
117
- const dialogRef = this.dialog.open(ActionPopupComponent, {
118
- width: '400px',
119
- data: {
120
- title: 'Delete Subscription',
121
- message: `Are you sure to proceed delete the subscriber ${subscriber.name}?`
122
- },
123
- autoFocus: false
124
- });
125
- dialogRef.afterClosed().subscribe(result => {
126
- if (result) {
127
- // Action confirmed
128
- this.http.delete(`api/notification-subscriptions/${subscriber?.id}`)
129
- .pipe(untilDestroyed(this))
130
- .subscribe(() => {
131
- this.subscriberList = this.subscriberList.filter(x => x.id !== subscriber.id);
132
- });
133
- }
134
- });
135
- }
136
- onScroll() {
137
- if (this.pageEvent.lastPage > this.pageEvent.page) {
138
- this.pageEvent.page += 1;
139
- this.initializeData();
140
- }
141
- }
142
- changeSort(event) {
143
- if (event.direction) {
144
- this.filters.sort_by = `${event.active}|${event.direction}`;
145
- this.reload();
146
- }
147
- }
148
- reload() {
149
- this.subscriberList = [];
150
- this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
151
- this.initializeData();
152
- }
153
- ngOnDestroy() {
154
- // Until destroyed uses it
155
- }
156
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardComponent, deps: [{ token: i1.MatDialog }, { token: i2.HttpService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component }); }
157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TechlifyNotficationSubscriberDashboardComponent, selector: "app-techlify-notfication-subscriber-dashboard", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <app-techlify-notification-subscriber-list-filter (valueChange)=\"filterChange($event)\">\n </app-techlify-notification-subscriber-list-filter>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addTechlifyNotificationSubscriber()\">+\n Subscription</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n\n <section>\n <div infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" [infiniteScrollContainer]=\"rootScrollContainer\">\n <table mat-table [dataSource]=\"subscriberList\" matSort class=\"w-100 mt-1 table-hover\" multiTemplateDataRows\n id=\"techlify-notification-subscriber-table\" aria-describedby=\"Notification Subscribers\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriber; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"subscriber\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Subscriber </th>\n <td mat-cell *matCellDef=\"let subscriber;\"> {{ subscriber?.subscriber_display_name }} </td>\n </ng-container>\n <ng-container matColumnDef=\"entity.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Entity </th>\n <td mat-cell *matCellDef=\"let subscriber;\"> {{ subscriber?.entity?.title }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type.title\">\n <th mat-header-cell *matHeaderCellDef class=\"px-2\"> Notification </th>\n <td mat-cell *matCellDef=\"let subscriber;\" class=\"px-2\"> {{ subscriber?.subscription_types }} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"hoverable\"\n (click)=\"navigateToView($event,row)\"></tr>\n </table>\n </div>\n\n </section>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i4.TechlifyNotificationSubscriberListFilterComponent, selector: "app-techlify-notification-subscriber-list-filter", inputs: ["showOnlyType"], outputs: ["valueChange"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i12.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i12.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i12.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i12.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i12.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i12.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i12.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i12.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i12.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i12.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i13.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i13.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i13.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i14.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
158
- };
159
- TechlifyNotficationSubscriberDashboardComponent = __decorate([
160
- UntilDestroy()
161
- ], TechlifyNotficationSubscriberDashboardComponent);
162
- export { TechlifyNotficationSubscriberDashboardComponent };
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TechlifyNotficationSubscriberDashboardComponent, decorators: [{
164
- type: Component,
165
- args: [{ selector: 'app-techlify-notfication-subscriber-dashboard', template: "<div class=\"mat-typography m-4\">\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <app-techlify-notification-subscriber-list-filter (valueChange)=\"filterChange($event)\">\n </app-techlify-notification-subscriber-list-filter>\n <div class=\"ml-2\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"addTechlifyNotificationSubscriber()\">+\n Subscription</button>\n </div>\n <span fxFlex></span>\n <mat-form-field appearance=\"outline\" class=\"no-padding\">\n <mat-label>Columns</mat-label>\n <mat-select [formControl]=\"displayColumns\" multiple (selectionChange)=\"columnsChange()\">\n <mat-option *ngFor=\"let column of availableDisplayColumns\" [value]=\"column.value\">{{column.name}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n\n <section>\n <div infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" [infiniteScrollContainer]=\"rootScrollContainer\">\n <table mat-table [dataSource]=\"subscriberList\" matSort class=\"w-100 mt-1 table-hover\" multiTemplateDataRows\n id=\"techlify-notification-subscriber-table\" aria-describedby=\"Notification Subscribers\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let subscriber; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n <ng-container matColumnDef=\"subscriber\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Subscriber </th>\n <td mat-cell *matCellDef=\"let subscriber;\"> {{ subscriber?.subscriber_display_name }} </td>\n </ng-container>\n <ng-container matColumnDef=\"entity.title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Entity </th>\n <td mat-cell *matCellDef=\"let subscriber;\"> {{ subscriber?.entity?.title }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type.title\">\n <th mat-header-cell *matHeaderCellDef class=\"px-2\"> Notification </th>\n <td mat-cell *matCellDef=\"let subscriber;\" class=\"px-2\"> {{ subscriber?.subscription_types }} </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns;\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"hoverable\"\n (click)=\"navigateToView($event,row)\"></tr>\n </table>\n </div>\n\n </section>\n</div>\n" }]
166
- }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.HttpService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: undefined, decorators: [{
167
- type: Inject,
168
- args: ['environment']
169
- }] }], propDecorators: { sort: [{
170
- type: ViewChild,
171
- args: [MatSort, { static: true }]
172
- }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbm90ZmljYXRpb24tc3Vic2NyaWJlci1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90ZWNobGlmeS1ub3RpZmljYXRpb25zL3RlY2hsaWZ5LW5vdGlmaWNhdGlvbi1zdWJzY3JpYmVyL3RlY2hsaWZ5LW5vdGZpY2F0aW9uLXN1YnNjcmliZXItZGFzaGJvYXJkL3RlY2hsaWZ5LW5vdGZpY2F0aW9uLXN1YnNjcmliZXItZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktbm90aWZpY2F0aW9ucy90ZWNobGlmeS1ub3RpZmljYXRpb24tc3Vic2NyaWJlci90ZWNobGlmeS1ub3RmaWNhdGlvbi1zdWJzY3JpYmVyLWRhc2hib2FyZC90ZWNobGlmeS1ub3RmaWNhdGlvbi1zdWJzY3JpYmVyLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLDBGQUEwRixDQUFDO0FBSXZKLE9BQU8sRUFBYyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBU2pFLElBQU0sK0NBQStDLEdBQXJELE1BQU0sK0NBQStDO0lBcUIx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Q0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELFdBQVc7UUFDVCwwQkFBMEI7SUFDNUIsQ0FBQzsrR0FqS1UsK0NBQStDLDBIQTBCaEQsYUFBYTttR0ExQlosK0NBQStDLDJIQVUvQyxPQUFPLDhEQzdCcEIsdzFGQXFEQTs7QURsQ2EsK0NBQStDO0lBTjNELFlBQVksRUFBRTtHQU1GLCtDQUErQyxDQWtLM0Q7OzRGQWxLWSwrQ0FBK0M7a0JBTDNELFNBQVM7K0JBQ0UsK0NBQStDOzswQkE4QnRELE1BQU07MkJBQUMsYUFBYTt5Q0FoQmUsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlckZvcm1Db21wb25lbnQgfSBmcm9tICcuLi90ZWNobGlmeS1ub3RpZmljYXRpb24tc3Vic2NyaWJlci1mb3JtL3RlY2hsaWZ5LW5vdGlmaWNhdGlvbi1zdWJzY3JpYmVyLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtQYWdlRXZlbnR9IGZyb20gJy4uLy4uLy4uL2RhdGEtdGFibGUnO1xuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQge0FjdGlvblBvcHVwLCBBY3Rpb25Qb3B1cENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uLXBvcHVwJztcblxuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS1ub3RmaWNhdGlvbi1zdWJzY3JpYmVyLWRhc2hib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS1ub3RmaWNhdGlvbi1zdWJzY3JpYmVyLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LW5vdGZpY2F0aW9uLXN1YnNjcmliZXItZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlOb3RmaWNhdGlvblN1YnNjcmliZXJEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHN1YnNjcmliZXJMaXN0OiBhbnlbXSA9IFtdO1xuICBwYWdlRXZlbnQ6IFBhZ2VFdmVudCA9IHsgcGFnZTogMSwgcGVyUGFnZTogMjUsIGxhc3RQYWdlOiAxIH07XG4gIGZpbHRlcnM6IGFueSA9IHtcbiAgICBzb3J0X2J5OiAnY3JlYXRlZF9hdHxkZXNjJyxcbiAgICByZWxhdGlvbnM6ICd0eXBlLGVudGl0eSdcbiAgfTtcbiAgcm9vdFNjcm9sbENvbnRhaW5lcjogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwgeyBzdGF0aWM6IHRydWUgfSkgc29ydDogTWF0U29ydDtcblxuICBkaXNwbGF5Q29sdW1uczogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChbJ2luZGV4JywgJ3N1YnNjcmliZXInLCAnZW50aXR5LnRpdGxlJywgJ3R5cGUudGl0bGUnXSk7XG4gIGRpc3BsYXllZENvbHVtbnM6IGFueVtdID0gW107XG4gIGF2YWlsYWJsZURpc3BsYXlDb2x1bW5zOiBhbnlbXSA9IFtcbiAgICB7IG9yZGVyOiAxLCB2YWx1ZTogJ2luZGV4JywgbmFtZTogJ0luZGV4JyB9LFxuICAgIHsgb3JkZXI6IDIsIHZhbHVlOiAnc3Vic2NyaWJlcicsIG5hbWU6ICdTdWJzY3JpYmVyJyB9LFxuICAgIHsgb3JkZXI6IDMsIHZhbHVlOiAnZW50aXR5LnRpdGxlJywgbmFtZTogJ0VudGl0eScgfSxcbiAgICB7IG9yZGVyOiA0LCB2YWx1ZTogJ3R5cGUudGl0bGUnLCBuYW1lOiAnVHlwZScgfSxcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvb3RTY3JvbGxDb250YWluZXIgPSB0aGlzLmVudmlyb25tZW50Py5yb290U2Nyb2xsQ29udGFpbmVyIHx8ICdib2R5JztcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXlDb2x1bW5zLnZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcblxuICAgIGlmICh0aGlzLnNvcnQpIHtcbiAgICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZVNvcnQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVEaXNwbGF5Q29sdW1uc1xuICAgICAgLmZpbHRlcihjb2wgPT4gKHRoaXMuZGlzcGxheUNvbHVtbnMudmFsdWUgYXMgYW55KS5zb21lKCh4OiBhbnkpID0+IHggPT09IGNvbC52YWx1ZSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEub3JkZXIgPiBiLm9yZGVyKSA/IDEgOiAoKGIub3JkZXIgPiBhLm9yZGVyKSA/IC0xIDogMCkpXG4gICAgICAubWFwKGNvbCA9PiBjb2wudmFsdWUpO1xuICB9XG5cbiAgY29sdW1uc0NoYW5nZSgpIHtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnNlbGVjdGVkQ29sdW1ucztcbiAgfVxuXG4gIG5hdmlnYXRlVG9WaWV3KGV2ZW50OiBhbnksIG5vdGlmaWNhdGlvbjogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICBbJ2xpc3QtdmlldyddLFxuICAgICAge1xuICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgICBzdGF0ZTogeyBzdWJzY3JpYmVyX2lkOiBub3RpZmljYXRpb24/LnN1YnNjcmliZXJfaWQsIGVudGl0eV9pZDogbm90aWZpY2F0aW9uPy5lbnRpdHlfaWQgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuXG4gIGluaXRpYWxpemVEYXRhKCkge1xuICAgIHRoaXMuaHR0cC5nZXQoYGFwaS9ub3RpZmljYXRpb24tc3Vic2NyaXB0aW9ucy11bmlxdWVgLCB7IHBhcmFtczogeyAuLi50aGlzLmZpbHRlcnMsIC4uLnRoaXMucGFnZUV2ZW50IH0gfSlcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVyTGlzdCA9IHRoaXMuc3Vic2NyaWJlckxpc3QuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgdGhpcy5wYWdlRXZlbnQucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgICAgIHRoaXMucGFnZUV2ZW50Lmxhc3RQYWdlID0gcmVzdWx0Lmxhc3RfcGFnZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZmlsdGVyQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7XG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgICAuLi5ldmVudFxuICAgIH07XG4gICAgdGhpcy5yZWxvYWQoKTtcbiAgfVxuXG4gIGFkZFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlcigpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlckZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGRhdGE6IHt9IC8vIEFueSBkYXRhIHBhc3NlZCBoZXJlIHdpbGwgYmUgaW5qZWN0ZWQgaW50byB0aGUgbW9kZWxcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbiAgZWRpdFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlcihldmVudDogYW55LCBzdWJzY3JpYmVyOiBhbnkpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlckZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgc3Vic2NyaWJlclxuICAgICAgfSAvLyBBbnkgZGF0YSBwYXNzZWQgaGVyZSB3aWxsIGJlIGluamVjdGVkIGludG8gdGhlIG1vZGVsXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVUZWNobGlmeU5vdGlmaWNhdGlvblN1YnNjcmliZXIoZXZlbnQ6IGFueSwgc3Vic2NyaWJlcjogYW55KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIFN1YnNjcmlwdGlvbicsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gcHJvY2VlZCBkZWxldGUgdGhlIHN1YnNjcmliZXIgJHtzdWJzY3JpYmVyLm5hbWV9P2BcbiAgICAgIH0gYXMgQWN0aW9uUG9wdXAsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQWN0aW9uIGNvbmZpcm1lZFxuICAgICAgICB0aGlzLmh0dHAuZGVsZXRlKGBhcGkvbm90aWZpY2F0aW9uLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpYmVyPy5pZH1gKVxuICAgICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVyTGlzdCA9IHRoaXMuc3Vic2NyaWJlckxpc3QuZmlsdGVyKHggPT4geC5pZCAhPT0gc3Vic2NyaWJlci5pZCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICBpZiAodGhpcy5wYWdlRXZlbnQubGFzdFBhZ2UgPiB0aGlzLnBhZ2VFdmVudC5wYWdlKSB7XG4gICAgICB0aGlzLnBhZ2VFdmVudC5wYWdlICs9IDE7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlU29ydChldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LmRpcmVjdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJzLnNvcnRfYnkgPSBgJHtldmVudC5hY3RpdmV9fCR7ZXZlbnQuZGlyZWN0aW9ufWA7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLnN1YnNjcmliZXJMaXN0ID0gW107XG4gICAgdGhpcy5wYWdlRXZlbnQgPSB7IHBhZ2U6IDEsIHBlclBhZ2U6IDI1LCBsYXN0UGFnZTogMSB9O1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgfVxuXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gVW50aWwgZGVzdHJveWVkIHVzZXMgaXRcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5IG0tNFwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxhcHAtdGVjaGxpZnktbm90aWZpY2F0aW9uLXN1YnNjcmliZXItbGlzdC1maWx0ZXIgKHZhbHVlQ2hhbmdlKT1cImZpbHRlckNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvYXBwLXRlY2hsaWZ5LW5vdGlmaWNhdGlvbi1zdWJzY3JpYmVyLWxpc3QtZmlsdGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZFRlY2hsaWZ5Tm90aWZpY2F0aW9uU3Vic2NyaWJlcigpXCI+K1xuICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gZnhGbGV4Pjwvc3Bhbj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJuby1wYWRkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPkNvbHVtbnM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJkaXNwbGF5Q29sdW1uc1wiIG11bHRpcGxlIChzZWxlY3Rpb25DaGFuZ2UpPVwiY29sdW1uc0NoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBhdmFpbGFibGVEaXNwbGF5Q29sdW1uc1wiIFt2YWx1ZV09XCJjb2x1bW4udmFsdWVcIj57e2NvbHVtbi5uYW1lfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cblxuXG4gICAgPHNlY3Rpb24+XG4gICAgICAgIDxkaXYgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIlxuICAgICAgICAgICAgW2Zyb21Sb290XT1cInRydWVcIiBbaW5maW5pdGVTY3JvbGxDb250YWluZXJdPVwicm9vdFNjcm9sbENvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJzdWJzY3JpYmVyTGlzdFwiIG1hdFNvcnQgY2xhc3M9XCJ3LTEwMCBtdC0xIHRhYmxlLWhvdmVyXCIgbXVsdGlUZW1wbGF0ZURhdGFSb3dzXG4gICAgICAgICAgICAgICAgaWQ9XCJ0ZWNobGlmeS1ub3RpZmljYXRpb24tc3Vic2NyaWJlci10YWJsZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJOb3RpZmljYXRpb24gU3Vic2NyaWJlcnNcIj5cblxuICAgICAgICAgICAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgc3Vic2NyaWJlcjsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJzY3JpYmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiBTdWJzY3JpYmVyIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJzY3JpYmVyO1wiPiB7eyBzdWJzY3JpYmVyPy5zdWJzY3JpYmVyX2Rpc3BsYXlfbmFtZSB9fSA8L3RkPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZW50aXR5LnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiBFbnRpdHkgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmliZXI7XCI+IHt7IHN1YnNjcmliZXI/LmVudGl0eT8udGl0bGUgfX0gPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidHlwZS50aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwicHgtMlwiPiBOb3RpZmljYXRpb24gPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1YnNjcmliZXI7XCIgY2xhc3M9XCJweC0yXCI+IHt7IHN1YnNjcmliZXI/LnN1YnNjcmlwdGlvbl90eXBlcyB9fSA8L3RkPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgICAgICAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgY2xhc3M9XCJob3ZlcmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1ZpZXcoJGV2ZW50LHJvdylcIj48L3RyPlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==