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.
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +4 -4
- package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +4 -4
- package/esm2022/lib/material.module.mjs +12 -4
- package/esm2022/lib/role/roles-view-all.component.mjs +7 -7
- package/esm2022/lib/techlify-notifications/index.mjs +1 -25
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +38 -70
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +18 -0
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +18 -0
- package/esm2022/lib/user/users-view-all.component.mjs +8 -8
- package/fesm2022/ngx-techlify-core.mjs +203 -1436
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/material.module.d.ts +3 -1
- package/lib/techlify-notifications/index.d.ts +0 -24
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +10 -15
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.d.ts +8 -0
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.d.ts +8 -0
- package/package.json +1 -1
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +0 -103
- package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +0 -42
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +0 -173
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +0 -50
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +0 -117
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +0 -43
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +0 -180
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +0 -48
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +0 -69
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +0 -40
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +0 -32
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +0 -46
- package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +0 -6
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +0 -99
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +0 -48
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +0 -18
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +0 -166
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +0 -44
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +0 -26
- package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +0 -42
- package/esm2022/lib/techlify-notifications/techlify-notification-user-status.model.mjs +0 -5
- package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.d.ts +0 -28
- package/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.d.ts +0 -13
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.d.ts +0 -39
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.d.ts +0 -15
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.d.ts +0 -37
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.d.ts +0 -14
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.d.ts +0 -37
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.d.ts +0 -15
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.d.ts +0 -21
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.d.ts +0 -13
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.d.ts +0 -14
- package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.d.ts +0 -5
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.d.ts +0 -32
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.d.ts +0 -15
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.d.ts +0 -35
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.d.ts +0 -14
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.d.ts +0 -7
- package/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.d.ts +0 -13
- package/lib/techlify-notifications/techlify-notification-user-status.model.d.ts +0 -4
package/lib/material.module.d.ts
CHANGED
|
@@ -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 {
|
|
3
|
-
import {
|
|
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
|
|
7
|
-
private
|
|
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
|
-
|
|
13
|
-
constructor(http: HttpService, environment: any);
|
|
10
|
+
constructor(techlifyNotificationTypeService: TechlifyNotificationTypeService, techlifyNotificationSubscriptionService: TechlifyNotificationSubscriptionService);
|
|
14
11
|
ngOnInit(): void;
|
|
15
|
-
|
|
16
|
-
|
|
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, {
|
|
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,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=
|
package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs
DELETED
|
@@ -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=
|
package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs
DELETED
|
@@ -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==
|