@rolatech/angular-notification 20.1.6-beta.6 → 20.1.6-beta.8
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.
|
@@ -66,13 +66,13 @@ class NotificationIconComponent {
|
|
|
66
66
|
},
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
70
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: NotificationIconComponent, isStandalone: true, selector: "rolatech-notification-icon", inputs: { router: { classPropertyName: "router", publicName: "router", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" onclick=\"this.blur()\" [matMenuTriggerFor]=\"notificationsMenu\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">notifications</mat-icon>\n </button>\n</div>\n<mat-menu #notificationsMenu=\"matMenu\" class=\"custom-menu\" yPosition=\"below\">\n <div class=\"flex flex-col min-w-[256px] divide-y divide-[--rt-10-percent-layer]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"text-xl font-bold\" i18n>Notifications</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"readAll()\" aria-hidden=\"true\" i18n\n >Read All</span\n >\n }\n </div>\n <div>\n @if (notifications && notifications.length > 0) {\n <div class=\"divide-y divide-[--rt-10-percent-layer]\">\n @for (item of notifications; track item) {\n <div class=\"p-3 cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"[router(), item.id]\">\n <div class=\"text-lg mb-1\">\n {{ item.title }}\n </div>\n <div class=\"text-sm\">\n {{ item.content }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"h-32 flex justify-center items-center\" i18n>There is no notifications</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"router()\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-[--rt-brand-color]\" i18n> All notifications </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: ["rolatech-notification-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000);max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "directive", type: i2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationIconComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-notification-icon', encapsulation: ViewEncapsulation.None, template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" onclick=\"this.blur()\" [matMenuTriggerFor]=\"notificationsMenu\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">notifications</mat-icon>\n </button>\n</div>\n<mat-menu #notificationsMenu=\"matMenu\" class=\"custom-menu\" yPosition=\"below\">\n <div class=\"flex flex-col min-w-[256px] divide-y divide-[--rt-10-percent-layer]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"text-xl font-bold\" i18n>Notifications</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"readAll()\" aria-hidden=\"true\" i18n\n >Read All</span\n >\n }\n </div>\n <div>\n @if (notifications && notifications.length > 0) {\n <div class=\"divide-y divide-[--rt-10-percent-layer]\">\n @for (item of notifications; track item) {\n <div class=\"p-3 cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"[router(), item.id]\">\n <div class=\"text-lg mb-1\">\n {{ item.title }}\n </div>\n <div class=\"text-sm\">\n {{ item.content }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"h-32 flex justify-center items-center\" i18n>There is no notifications</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"router()\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-[--rt-brand-color]\" i18n> All notifications </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: ["rolatech-notification-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000);max-width:400px}\n"] }]
|
|
75
|
-
}] });
|
|
75
|
+
}], propDecorators: { router: [{ type: i0.Input, args: [{ isSignal: true, alias: "router", required: false }] }] } });
|
|
76
76
|
|
|
77
77
|
class NotificationDetailComponent extends BaseComponent {
|
|
78
78
|
notificationService = inject(NotificationService);
|
|
@@ -89,10 +89,10 @@ class NotificationDetailComponent extends BaseComponent {
|
|
|
89
89
|
},
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
93
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
92
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: NotificationDetailComponent, isStandalone: true, selector: "rolatech-notification-detail", usesInheritance: true, ngImport: i0, template: "@if (notification) {\n <div class=\"p-3\">\n <div class=\"text-xl\">{{ notification.title }}</div>\n <div class=\"text-md\">\n {{ notification.content }}\n </div>\n </div>\n}\n", styles: [""] });
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationDetailComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
97
97
|
args: [{ selector: 'rolatech-notification-detail', imports: [], template: "@if (notification) {\n <div class=\"p-3\">\n <div class=\"text-xl\">{{ notification.title }}</div>\n <div class=\"text-md\">\n {{ notification.content }}\n </div>\n </div>\n}\n" }]
|
|
98
98
|
}] });
|
|
@@ -114,13 +114,13 @@ class NotificationItemComponent {
|
|
|
114
114
|
onToggle(item) {
|
|
115
115
|
this.toggle.emit(item);
|
|
116
116
|
}
|
|
117
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
118
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
117
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
118
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.12", type: NotificationItemComponent, isStandalone: true, selector: "rolatech-notification-item", inputs: { notification: { classPropertyName: "notification", publicName: "notification", isSignal: true, isRequired: true, transformFunction: null }, expand: { classPropertyName: "expand", publicName: "expand", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle" }, ngImport: i0, template: "<div>\n <div\n class=\"flex justify-between items-center h-16 cursor-pointer\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n (click)=\"onToggle(notification())\"\n aria-hidden=\"true\"\n >\n <div>{{ notification().title }}</div>\n <div class=\"flex items-center opacity-60\">\n <div class=\"text-sm mr-3\">{{ notification().createdAt | date }}</div>\n <mat-icon>{{ expand() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </div>\n <div\n class=\"collapsed\"\n [class.expanded]=\"expand()\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n >\n {{ notification().message }}\n </div>\n</div>\n", styles: [".collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:300px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: DatePipe, name: "date" }] });
|
|
119
119
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationItemComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{ selector: 'rolatech-notification-item', imports: [NgClass, MatIconModule, DatePipe], template: "<div>\n <div\n class=\"flex justify-between items-center h-16 cursor-pointer\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n (click)=\"onToggle(notification())\"\n aria-hidden=\"true\"\n >\n <div>{{ notification().title }}</div>\n <div class=\"flex items-center opacity-60\">\n <div class=\"text-sm mr-3\">{{ notification().createdAt | date }}</div>\n <mat-icon>{{ expand() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </div>\n <div\n class=\"collapsed\"\n [class.expanded]=\"expand()\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n >\n {{ notification().message }}\n </div>\n</div>\n", styles: [".collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:300px}\n"] }]
|
|
123
|
-
}] });
|
|
123
|
+
}], propDecorators: { notification: [{ type: i0.Input, args: [{ isSignal: true, alias: "notification", required: true }] }], expand: [{ type: i0.Input, args: [{ isSignal: true, alias: "expand", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }] } });
|
|
124
124
|
|
|
125
125
|
class NotificationIndexComponent {
|
|
126
126
|
route = inject(ActivatedRoute);
|
|
@@ -218,10 +218,10 @@ class NotificationIndexComponent {
|
|
|
218
218
|
},
|
|
219
219
|
});
|
|
220
220
|
}
|
|
221
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
222
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: NotificationIndexComponent, isStandalone: true, selector: "rolatech-notification-index", viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: "<rolatech-container>\n <rolatech-toolbar title=\"Notifications\" large></rolatech-toolbar>\n <rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.type) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ type: item.type }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n </rolatech-tabs>\n <rolatech-list>\n @if (notifications) {\n @for (item of notifications; track $index) {\n <div class=\"p-3\">\n <rolatech-notification-item\n [notification]=\"item\"\n (toggle)=\"read(item)\"\n [expand]=\"item.id === selectedId\"\n ></rolatech-notification-item>\n </div>\n }\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n </rolatech-list>\n</rolatech-container>\n", styles: [".notification-active{color:#000;border-bottom:4px solid #ff6600}\n"], dependencies: [{ kind: "component", type: NotificationItemComponent, selector: "rolatech-notification-item", inputs: ["notification", "expand"], outputs: ["toggle"] }, { kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"] }, { kind: "component", type: ListComponent, selector: "rolatech-list" }, { kind: "component", type: EmptyComponent, selector: "rolatech-empty" }], encapsulation: i0.ViewEncapsulation.None });
|
|
223
223
|
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: NotificationIndexComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
226
226
|
args: [{ selector: 'rolatech-notification-index', imports: [
|
|
227
227
|
NotificationItemComponent,
|
|
@@ -234,7 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
234
234
|
ListComponent,
|
|
235
235
|
EmptyComponent,
|
|
236
236
|
], encapsulation: ViewEncapsulation.None, template: "<rolatech-container>\n <rolatech-toolbar title=\"Notifications\" large></rolatech-toolbar>\n <rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.type) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ type: item.type }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n </rolatech-tabs>\n <rolatech-list>\n @if (notifications) {\n @for (item of notifications; track $index) {\n <div class=\"p-3\">\n <rolatech-notification-item\n [notification]=\"item\"\n (toggle)=\"read(item)\"\n [expand]=\"item.id === selectedId\"\n ></rolatech-notification-item>\n </div>\n }\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n </rolatech-list>\n</rolatech-container>\n", styles: [".notification-active{color:#000;border-bottom:4px solid #ff6600}\n"] }]
|
|
237
|
-
}] });
|
|
237
|
+
}], propDecorators: { paginator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatPaginator), { isSignal: true }] }] } });
|
|
238
238
|
|
|
239
239
|
const NOTIFICATIONS_CONFIG = new InjectionToken('NOTIFICATIONS_CONFIG');
|
|
240
240
|
function provideAngularNotification(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-notification.mjs","sources":["../tmp-esm2022/lib/components/notification-icon/notification-icon.component.js","../tmp-esm2022/lib/components/notification-detail/notification-detail.component.js","../tmp-esm2022/lib/interfaces/notification.js","../tmp-esm2022/lib/components/notification-item/notification-item.component.js","../tmp-esm2022/lib/components/notification-index/notification-index.component.js","../tmp-esm2022/provider.js","../tmp-esm2022/lib/notification.routes.js","../tmp-esm2022/rolatech-angular-notification.js"],"sourcesContent":["import { Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { NotificationService, NotificationStore } from '@rolatech/angular-services';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/badge\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/material/icon\";\nimport * as i5 from \"@angular/material/menu\";\nexport class NotificationIconComponent {\n router = input('/notifications', ...(ngDevMode ? [{ debugName: \"router\" }] : []));\n notifications = [];\n notificationService = inject(NotificationService);\n storeService = inject(NotificationStore);\n overlayContainer = inject(OverlayContainer);\n count = 0;\n countSubscription;\n ngOnInit() {\n this.countNotificationByStatus();\n this.storeService.$count.subscribe((data) => {\n this.count = data;\n });\n }\n ngAfterViewInit() {\n // const overlayElement = this.overlayContainer.getContainerElement();\n // console.log(overlayElement);\n // overlayElement.style.top = '40px'; // Forces overlay to start from the top\n }\n ngOnDestroy() {\n if (this.countSubscription)\n this.countSubscription.unsubscribe();\n }\n countNotificationByStatus() {\n this.notificationService.countByStatus('UNREAD').subscribe({\n next: (res) => {\n this.loadUnreadNotifications();\n },\n });\n }\n loadUnreadNotifications() {\n const options = {\n filter: 'status:UNREAD',\n sort: 'createdAt desc',\n };\n this.notificationService.me(options).subscribe({\n next: (res) => {\n this.notifications = res.data;\n },\n });\n }\n readAll() {\n this.notificationService.readAll().subscribe({\n next: (res) => {\n this.notifications = [];\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: NotificationIconComponent, isStandalone: true, selector: \"rolatech-notification-icon\", inputs: { router: { classPropertyName: \"router\", publicName: \"router\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"px-2\\\">\\n <button mat-icon-button class=\\\"flex\\\" onclick=\\\"this.blur()\\\" [matMenuTriggerFor]=\\\"notificationsMenu\\\">\\n <mat-icon aria-hidden=\\\"false\\\" [matBadge]=\\\"count\\\" [matBadgeHidden]=\\\"count === 0\\\">notifications</mat-icon>\\n </button>\\n</div>\\n<mat-menu #notificationsMenu=\\\"matMenu\\\" class=\\\"custom-menu\\\" yPosition=\\\"below\\\">\\n <div class=\\\"flex flex-col min-w-[256px] divide-y divide-[--rt-10-percent-layer]\\\">\\n <div class=\\\"h-11 px-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl font-bold\\\" i18n>Notifications</span>\\n @if (count) {\\n <span class=\\\"text-sm font-medium cursor-pointer hover:underline\\\" (click)=\\\"readAll()\\\" aria-hidden=\\\"true\\\" i18n\\n >Read All</span\\n >\\n }\\n </div>\\n <div>\\n @if (notifications && notifications.length > 0) {\\n <div class=\\\"divide-y divide-[--rt-10-percent-layer]\\\">\\n @for (item of notifications; track item) {\\n <div class=\\\"p-3 cursor-pointer hover:bg-[--rt-raised-background]\\\" [routerLink]=\\\"[router(), item.id]\\\">\\n <div class=\\\"text-lg mb-1\\\">\\n {{ item.title }}\\n </div>\\n <div class=\\\"text-sm\\\">\\n {{ item.content }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"h-32 flex justify-center items-center\\\" i18n>There is no notifications</div>\\n }\\n </div>\\n <div class=\\\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\\\" [routerLink]=\\\"router()\\\">\\n <a class=\\\"flex justify-center items-center\\\">\\n <span class=\\\"text-sm text-[--rt-brand-color]\\\" i18n> All notifications </span>\\n </a>\\n </div>\\n </div>\\n</mat-menu>\\n\", styles: [\"rolatech-notification-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000);max-width:400px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"directive\", type: i2.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeColor\", \"matBadgeOverlap\", \"matBadgeDisabled\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i4.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i5.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"directive\", type: i5.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationIconComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-notification-icon', encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"px-2\\\">\\n <button mat-icon-button class=\\\"flex\\\" onclick=\\\"this.blur()\\\" [matMenuTriggerFor]=\\\"notificationsMenu\\\">\\n <mat-icon aria-hidden=\\\"false\\\" [matBadge]=\\\"count\\\" [matBadgeHidden]=\\\"count === 0\\\">notifications</mat-icon>\\n </button>\\n</div>\\n<mat-menu #notificationsMenu=\\\"matMenu\\\" class=\\\"custom-menu\\\" yPosition=\\\"below\\\">\\n <div class=\\\"flex flex-col min-w-[256px] divide-y divide-[--rt-10-percent-layer]\\\">\\n <div class=\\\"h-11 px-3 flex justify-between items-center\\\">\\n <span class=\\\"text-xl font-bold\\\" i18n>Notifications</span>\\n @if (count) {\\n <span class=\\\"text-sm font-medium cursor-pointer hover:underline\\\" (click)=\\\"readAll()\\\" aria-hidden=\\\"true\\\" i18n\\n >Read All</span\\n >\\n }\\n </div>\\n <div>\\n @if (notifications && notifications.length > 0) {\\n <div class=\\\"divide-y divide-[--rt-10-percent-layer]\\\">\\n @for (item of notifications; track item) {\\n <div class=\\\"p-3 cursor-pointer hover:bg-[--rt-raised-background]\\\" [routerLink]=\\\"[router(), item.id]\\\">\\n <div class=\\\"text-lg mb-1\\\">\\n {{ item.title }}\\n </div>\\n <div class=\\\"text-sm\\\">\\n {{ item.content }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"h-32 flex justify-center items-center\\\" i18n>There is no notifications</div>\\n }\\n </div>\\n <div class=\\\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\\\" [routerLink]=\\\"router()\\\">\\n <a class=\\\"flex justify-center items-center\\\">\\n <span class=\\\"text-sm text-[--rt-brand-color]\\\" i18n> All notifications </span>\\n </a>\\n </div>\\n </div>\\n</mat-menu>\\n\", styles: [\"rolatech-notification-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000);max-width:400px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1ub3RpZmljYXRpb24vc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1pY29uL25vdGlmaWNhdGlvbi1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24taWNvbi9ub3RpZmljYXRpb24taWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVN4RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLE1BQU0sR0FBRyxLQUFLLENBQVMsZ0JBQWdCLGtEQUFDLENBQUM7SUFDekMsYUFBYSxHQUFRLEVBQUUsQ0FBQztJQUN4QixtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxZQUFZLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNGLGlCQUFpQixDQUFnQjtJQUN6QyxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZTtRQUNiLHNFQUFzRTtRQUN0RSwrQkFBK0I7UUFDL0IsNkVBQTZFO0lBQy9FLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCO1lBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx1QkFBdUI7UUFDckIsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsZUFBZTtZQUN2QixJQUFJLEVBQUUsZ0JBQWdCO1NBQ3ZCLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FoRFUseUJBQXlCOzJGQUF6Qix5QkFBeUIsNk5DZHRDLCt2REF3Q0EseUxEaENZLG1CQUFtQiwrUUFBRSx1QkFBdUI7OzJGQU0zQyx5QkFBeUI7a0JBUHJDLFNBQVM7OEJBQ0MsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxZQUM3Qyw0QkFBNEIsaUJBR3ZCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UsIE5vdGlmaWNhdGlvblN0b3JlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGVdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcm91dGVyID0gaW5wdXQ8c3RyaW5nPignL25vdGlmaWNhdGlvbnMnKTtcbiAgbm90aWZpY2F0aW9uczogYW55ID0gW107XG4gIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gIHN0b3JlU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TdG9yZSk7XG4gIG92ZXJsYXlDb250YWluZXIgPSBpbmplY3QoT3ZlcmxheUNvbnRhaW5lcik7XG5cbiAgY291bnQgPSAwO1xuICBwcml2YXRlIGNvdW50U3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50Tm90aWZpY2F0aW9uQnlTdGF0dXMoKTtcbiAgICB0aGlzLnN0b3JlU2VydmljZS4kY291bnQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmNvdW50ID0gZGF0YTtcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgLy8gY29uc3Qgb3ZlcmxheUVsZW1lbnQgPSB0aGlzLm92ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpO1xuICAgIC8vIGNvbnNvbGUubG9nKG92ZXJsYXlFbGVtZW50KTtcbiAgICAvLyBvdmVybGF5RWxlbWVudC5zdHlsZS50b3AgPSAnNDBweCc7IC8vIEZvcmNlcyBvdmVybGF5IHRvIHN0YXJ0IGZyb20gdGhlIHRvcFxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvdW50U3Vic2NyaXB0aW9uKSB0aGlzLmNvdW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjb3VudE5vdGlmaWNhdGlvbkJ5U3RhdHVzKCkge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jb3VudEJ5U3RhdHVzKCdVTlJFQUQnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmxvYWRVbnJlYWROb3RpZmljYXRpb25zKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGxvYWRVbnJlYWROb3RpZmljYXRpb25zKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6ICdzdGF0dXM6VU5SRUFEJyxcbiAgICAgIHNvcnQ6ICdjcmVhdGVkQXQgZGVzYycsXG4gICAgfTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWUob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHJlYWRBbGwoKSB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnJlYWRBbGwoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJweC0yXCI+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiZmxleFwiIG9uY2xpY2s9XCJ0aGlzLmJsdXIoKVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJub3RpZmljYXRpb25zTWVudVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgW21hdEJhZGdlXT1cImNvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cImNvdW50ID09PSAwXCI+bm90aWZpY2F0aW9uczwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48bWF0LW1lbnUgI25vdGlmaWNhdGlvbnNNZW51PVwibWF0TWVudVwiIGNsYXNzPVwiY3VzdG9tLW1lbnVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtaW4tdy1bMjU2cHhdIGRpdmlkZS15IGRpdmlkZS1bLS1ydC0xMC1wZXJjZW50LWxheWVyXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoLTExIHB4LTMgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteGwgZm9udC1ib2xkXCIgaTE4bj5Ob3RpZmljYXRpb25zPC9zcGFuPlxuICAgICAgQGlmIChjb3VudCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgaG92ZXI6dW5kZXJsaW5lXCIgKGNsaWNrKT1cInJlYWRBbGwoKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGkxOG5cbiAgICAgICAgICA+UmVhZCBBbGw8L3NwYW5cbiAgICAgICAgPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICBAaWYgKG5vdGlmaWNhdGlvbnMgJiYgbm90aWZpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGUteSBkaXZpZGUtWy0tcnQtMTAtcGVyY2VudC1sYXllcl1cIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIG5vdGlmaWNhdGlvbnM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTMgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCIgW3JvdXRlckxpbmtdPVwiW3JvdXRlcigpLCBpdGVtLmlkXVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBtYi0xXCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmNvbnRlbnQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLTMyIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCIgaTE4bj5UaGVyZSBpcyBubyBub3RpZmljYXRpb25zPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImgtMTEgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCIgW3JvdXRlckxpbmtdPVwicm91dGVyKClcIj5cbiAgICAgIDxhIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtWy0tcnQtYnJhbmQtY29sb3JdXCIgaTE4bj4gQWxsIG5vdGlmaWNhdGlvbnMgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWF0LW1lbnU+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport { NotificationService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nexport class NotificationDetailComponent extends BaseComponent {\n notificationService = inject(NotificationService);\n snackBar = inject(MatSnackBar);\n notification;\n ngOnInit() {\n this.get();\n }\n get() {\n this.notificationService.get(this.id).subscribe({\n next: (res) => {\n this.notification = res.data;\n this.titleService.setTitle(`通知 | ${this.notification.title}`);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: NotificationDetailComponent, isStandalone: true, selector: \"rolatech-notification-detail\", usesInheritance: true, ngImport: i0, template: \"@if (notification) {\\n <div class=\\\"p-3\\\">\\n <div class=\\\"text-xl\\\">{{ notification.title }}</div>\\n <div class=\\\"text-md\\\">\\n {{ notification.content }}\\n </div>\\n </div>\\n}\\n\", styles: [\"\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationDetailComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-notification-detail', imports: [], template: \"@if (notification) {\\n <div class=\\\"p-3\\\">\\n <div class=\\\"text-xl\\\">{{ notification.title }}</div>\\n <div class=\\\"text-md\\\">\\n {{ notification.content }}\\n </div>\\n </div>\\n}\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWRldGFpbC9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24tZGV0YWlsL25vdGlmaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFRakUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGFBQWE7SUFDNUQsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixZQUFZLENBQWlCO0lBQzdCLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0lBQ0QsR0FBRztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSwyQkFBMkI7MkZBQTNCLDJCQUEyQiwrR0NaeEMsa01BUUE7OzJGRElhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSw4QkFBOEIsV0FHL0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1ub3RpZmljYXRpb24tZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25EZXRhaWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBub3RpZmljYXRpb24hOiBJTm90aWZpY2F0aW9uO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgpO1xuICB9XG4gIGdldCgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYOmAmuefpSB8ICR7dGhpcy5ub3RpZmljYXRpb24udGl0bGV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKG5vdGlmaWNhdGlvbikge1xuICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQteGxcIj57eyBub3RpZmljYXRpb24udGl0bGUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZFwiPlxuICAgICAge3sgbm90aWZpY2F0aW9uLmNvbnRlbnQgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=","export var NotificationStatus;\n(function (NotificationStatus) {\n NotificationStatus[NotificationStatus[\"UNREAD\"] = '未读'] = \"UNREAD\";\n NotificationStatus[NotificationStatus[\"READ\"] = '已读'] = \"READ\";\n})(NotificationStatus || (NotificationStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1ub3RpZmljYXRpb24vc3JjL2xpYi9pbnRlcmZhY2VzL25vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLGtEQUFjLElBQUksWUFBQSxDQUFBO0lBQ2xCLGdEQUFZLElBQUksVUFBQSxDQUFBO0FBQ2xCLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJTm90aWZpY2F0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBzdGF0dXM6IE5vdGlmaWNhdGlvblN0YXR1cyB8IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gTm90aWZpY2F0aW9uU3RhdHVzIHtcbiAgVU5SRUFEID0gPGFueT4n5pyq6K+7JyxcbiAgUkVBRCA9IDxhbnk+J+W3suivuycsXG59XG4iXX0=","import { Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass, DatePipe } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/icon\";\nexport class NotificationItemComponent {\n notification = input.required(...(ngDevMode ? [{ debugName: \"notification\" }] : []));\n expand = input(false, ...(ngDevMode ? [{ debugName: \"expand\" }] : []));\n toggle = output();\n isContentHidden = true;\n toggleContent() {\n this.isContentHidden = !this.isContentHidden;\n }\n onToggle(item) {\n this.toggle.emit(item);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", type: NotificationItemComponent, isStandalone: true, selector: \"rolatech-notification-item\", inputs: { notification: { classPropertyName: \"notification\", publicName: \"notification\", isSignal: true, isRequired: true, transformFunction: null }, expand: { classPropertyName: \"expand\", publicName: \"expand\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: \"toggle\" }, ngImport: i0, template: \"<div>\\n <div\\n class=\\\"flex justify-between items-center h-16 cursor-pointer\\\"\\n [ngClass]=\\\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\\\"\\n (click)=\\\"onToggle(notification())\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n <div>{{ notification().title }}</div>\\n <div class=\\\"flex items-center opacity-60\\\">\\n <div class=\\\"text-sm mr-3\\\">{{ notification().createdAt | date }}</div>\\n <mat-icon>{{ expand() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\\n </div>\\n </div>\\n <div\\n class=\\\"collapsed\\\"\\n [class.expanded]=\\\"expand()\\\"\\n [ngClass]=\\\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\\\"\\n >\\n {{ notification().message }}\\n </div>\\n</div>\\n\", styles: [\".collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:300px}\\n\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: DatePipe, name: \"date\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-notification-item', imports: [NgClass, MatIconModule, DatePipe], template: \"<div>\\n <div\\n class=\\\"flex justify-between items-center h-16 cursor-pointer\\\"\\n [ngClass]=\\\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\\\"\\n (click)=\\\"onToggle(notification())\\\"\\n aria-hidden=\\\"true\\\"\\n >\\n <div>{{ notification().title }}</div>\\n <div class=\\\"flex items-center opacity-60\\\">\\n <div class=\\\"text-sm mr-3\\\">{{ notification().createdAt | date }}</div>\\n <mat-icon>{{ expand() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\\n </div>\\n </div>\\n <div\\n class=\\\"collapsed\\\"\\n [class.expanded]=\\\"expand()\\\"\\n [ngClass]=\\\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\\\"\\n >\\n {{ notification().message }}\\n </div>\\n</div>\\n\", styles: [\".collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:300px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1ub3RpZmljYXRpb24vc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1pdGVtL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24taXRlbS9ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVFwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSx1REFBaUIsQ0FBQztJQUMvQyxNQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssa0RBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxFQUFpQixDQUFDO0lBQ2pDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFdkIsYUFBYTtRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBbUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzt1R0FYVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qix3WUNYdEMsdXVCQXFCQSxpTERaWSxPQUFPLG1GQUFFLGFBQWEsK0tBQUUsUUFBUTs7MkZBRS9CLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSw0QkFBNEIsV0FHN0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE5nQ2xhc3MsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtbm90aWZpY2F0aW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTWF0SWNvbk1vZHVsZSwgRGF0ZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50IHtcbiAgbm90aWZpY2F0aW9uID0gaW5wdXQucmVxdWlyZWQ8SU5vdGlmaWNhdGlvbj4oKTtcbiAgZXhwYW5kID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICB0b2dnbGUgPSBvdXRwdXQ8SU5vdGlmaWNhdGlvbj4oKTtcbiAgaXNDb250ZW50SGlkZGVuID0gdHJ1ZTtcblxuICB0b2dnbGVDb250ZW50KCkge1xuICAgIHRoaXMuaXNDb250ZW50SGlkZGVuID0gIXRoaXMuaXNDb250ZW50SGlkZGVuO1xuICB9XG4gIG9uVG9nZ2xlKGl0ZW06IElOb3RpZmljYXRpb24pIHtcbiAgICB0aGlzLnRvZ2dsZS5lbWl0KGl0ZW0pO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgaC0xNiBjdXJzb3ItcG9pbnRlclwiXG4gICAgW25nQ2xhc3NdPVwibm90aWZpY2F0aW9uKCkuc3RhdHVzID09PSAnUkVBRCcgPyAndGV4dC1bLS1ydC10ZXh0LXNlY29uZGFyeV0nIDogJydcIlxuICAgIChjbGljayk9XCJvblRvZ2dsZShub3RpZmljYXRpb24oKSlcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID5cbiAgICA8ZGl2Pnt7IG5vdGlmaWNhdGlvbigpLnRpdGxlIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG9wYWNpdHktNjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG1yLTNcIj57eyBub3RpZmljYXRpb24oKS5jcmVhdGVkQXQgfCBkYXRlIH19PC9kaXY+XG4gICAgICA8bWF0LWljb24+e3sgZXhwYW5kKCkgPyAna2V5Ym9hcmRfYXJyb3dfdXAnIDogJ2tleWJvYXJkX2Fycm93X2Rvd24nIH19PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbGxhcHNlZFwiXG4gICAgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZCgpXCJcbiAgICBbbmdDbGFzc109XCJub3RpZmljYXRpb24oKS5zdGF0dXMgPT09ICdSRUFEJyA/ICd0ZXh0LVstLXJ0LXRleHQtc2Vjb25kYXJ5XScgOiAnJ1wiXG4gID5cbiAgICB7eyBub3RpZmljYXRpb24oKS5tZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, ViewEncapsulation, inject, viewChild } from '@angular/core';\nimport { NotificationStatus } from '../../interfaces/notification';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { NotificationItemComponent } from '../notification-item/notification-item.component';\nimport { AngularCommonModule, NOTIFICATIONS_CONFIG } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, EmptyComponent, ListComponent, TabComponent, TabsComponent, ToolbarComponent, } from '@rolatech/angular-components';\nimport { ActivatedRoute } from '@angular/router';\nimport { NotificationService } from '@rolatech/angular-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/paginator\";\nexport class NotificationIndexComponent {\n route = inject(ActivatedRoute);\n notificationService = inject(NotificationService);\n snackBar = inject(MatSnackBar);\n notifications = [];\n filter = false;\n pageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions = [5, 10, 25, 100];\n isLoading = false;\n isSearch = false;\n selectedId = '';\n select = 0;\n displayedColumns = ['title', 'status', 'createdAt', 'actions'];\n paginator = viewChild(MatPaginator, ...(ngDevMode ? [{ debugName: \"paginator\" }] : []));\n orderOptions = [\n {\n key: 'createdAt',\n value: 'Created At',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: 'Created At',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: 'Status',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: 'Status',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n status = NotificationStatus;\n orderString = 'createdAt desc';\n dataSource = new MatTableDataSource();\n links = inject(NOTIFICATIONS_CONFIG).items;\n ngOnInit() {\n this.route.queryParams.subscribe(({ type }) => {\n this.select = this.links.findIndex((item) => item.type === type);\n if (type) {\n this.filter = `type:${type}`;\n }\n else {\n this.filter = false;\n }\n this.find(null);\n });\n this.find(null);\n }\n find(event) {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n if (this.filter) {\n options['filter'] = this.filter;\n }\n this.notificationService.me(options).subscribe({\n next: (res) => {\n this.notifications = res.data;\n this.dataSource.data = this.notifications;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBar.open(e.message);\n },\n });\n }\n read(item) {\n this.selectedId = item.id;\n if (item.status === 'READ') {\n return;\n }\n this.notificationService.update(item.id).subscribe({\n next: (res) => {\n item.status = 'READ';\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: NotificationIndexComponent, isStandalone: true, selector: \"rolatech-notification-index\", viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Notifications\\\" large></rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.type) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ type: item.type }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (notifications) {\\n @for (item of notifications; track $index) {\\n <div class=\\\"p-3\\\">\\n <rolatech-notification-item\\n [notification]=\\\"item\\\"\\n (toggle)=\\\"read(item)\\\"\\n [expand]=\\\"item.id === selectedId\\\"\\n ></rolatech-notification-item>\\n </div>\\n }\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\", styles: [\".notification-active{color:#000;border-bottom:4px solid #ff6600}\\n\"], dependencies: [{ kind: \"component\", type: NotificationItemComponent, selector: \"rolatech-notification-item\", inputs: [\"notification\", \"expand\"], outputs: [\"toggle\"] }, { kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatPaginator, selector: \"mat-paginator\", inputs: [\"color\", \"pageIndex\", \"length\", \"pageSize\", \"pageSizeOptions\", \"hidePageSize\", \"showFirstLastButtons\", \"selectConfig\", \"disabled\"], outputs: [\"page\"], exportAs: [\"matPaginator\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: TabsComponent, selector: \"rolatech-tabs\", inputs: [\"select\", \"loading\"], outputs: [\"selectChange\"] }, { kind: \"component\", type: TabComponent, selector: \"rolatech-tab\", inputs: [\"label\"] }, { kind: \"component\", type: ListComponent, selector: \"rolatech-list\" }, { kind: \"component\", type: EmptyComponent, selector: \"rolatech-empty\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: NotificationIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-notification-index', imports: [\n NotificationItemComponent,\n AngularCommonModule,\n AngularComponentsModule,\n ContainerComponent,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n ListComponent,\n EmptyComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<rolatech-container>\\n <rolatech-toolbar title=\\\"Notifications\\\" large></rolatech-toolbar>\\n <rolatech-tabs [select]=\\\"select\\\">\\n @for (item of links; track item) {\\n @if (item.type) {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\" [queryParams]=\\\"{ type: item.type }\\\"></rolatech-tab>\\n } @else {\\n <rolatech-tab [label]=\\\"item.name\\\" routerLink=\\\"./\\\"></rolatech-tab>\\n }\\n }\\n </rolatech-tabs>\\n <rolatech-list>\\n @if (notifications) {\\n @for (item of notifications; track $index) {\\n <div class=\\\"p-3\\\">\\n <rolatech-notification-item\\n [notification]=\\\"item\\\"\\n (toggle)=\\\"read(item)\\\"\\n [expand]=\\\"item.id === selectedId\\\"\\n ></rolatech-notification-item>\\n </div>\\n }\\n <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator>\\n } @else {\\n <rolatech-empty></rolatech-empty>\\n }\\n </rolatech-list>\\n</rolatech-container>\\n\", styles: [\".notification-active{color:#000;border-bottom:4px solid #ff6600}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24taW5kZXgvbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24taW5kZXgvbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQWlCLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsYUFBYSxFQUNiLFlBQVksRUFDWixhQUFhLEVBQ2IsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixD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RUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWpHVSwwQkFBMEI7MkZBQTFCLDBCQUEwQixrSUFlZixZQUFZLGdFQ25EcEMsdXFDQXFDQSw0SERiSSx5QkFBeUIsK0hBQ3pCLG1CQUFtQiwrUUFDbkIsdUJBQXVCLG9TQUN2QixrQkFBa0IsK0RBQ2xCLGdCQUFnQixnSUFDaEIsYUFBYSxvSEFDYixZQUFZLDRFQUNaLGFBQWEsMERBQ2IsY0FBYzs7MkZBSUwsMEJBQTBCO2tCQWpCdEMsU0FBUzsrQkFDRSw2QkFBNkIsV0FHOUI7d0JBQ1AseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvblN0YXR1cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9ub3RpZmljYXRpb24taXRlbS9ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSwgTk9USUZJQ0FUSU9OU19DT05GSUcgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtcbiAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gIENvbnRhaW5lckNvbXBvbmVudCxcbiAgRW1wdHlDb21wb25lbnQsXG4gIExpc3RDb21wb25lbnQsXG4gIFRhYkNvbXBvbmVudCxcbiAgVGFic0NvbXBvbmVudCxcbiAgVG9vbGJhckNvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1ub3RpZmljYXRpb24taW5kZXgnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEFuZ3VsYXJDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgVGFic0NvbXBvbmVudCxcbiAgICBUYWJDb21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBFbXB0eUNvbXBvbmVudCxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTm90aWZpY2F0aW9uU2VydmljZSk7XG4gIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgbm90aWZpY2F0aW9uczogSU5vdGlmaWNhdGlvbltdID0gW107XG4gIGZpbHRlcjogc3RyaW5nIHwgYm9vbGVhbiA9IGZhbHNlO1xuICBwYWdlRXZlbnQhOiBQYWdlRXZlbnQ7XG4gIGxlbmd0aCA9IDEwMDtcbiAgcGFnZVNpemUgPSAxNTtcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDEwMF07XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBzZWxlY3RlZElkID0gJyc7XG4gIHNlbGVjdCA9IDA7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gWyd0aXRsZScsICdzdGF0dXMnLCAnY3JlYXRlZEF0JywgJ2FjdGlvbnMnXTtcbiAgcGFnaW5hdG9yID0gdmlld0NoaWxkKE1hdFBhZ2luYXRvcik7XG5cbiAgb3JkZXJPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ0NyZWF0ZWQgQXQnLFxuICAgICAgaWNvbjogJ2Fycm93X3Vwd2FyZCcsXG4gICAgICBzb3J0OiAnYXNjJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ0NyZWF0ZWQgQXQnLFxuICAgICAgaWNvbjogJ2Fycm93X2Rvd253YXJkJyxcbiAgICAgIHNvcnQ6ICdkZXNjJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3N0YXR1cycsXG4gICAgICB2YWx1ZTogJ1N0YXR1cycsXG4gICAgICBpY29uOiAnYXJyb3dfdXB3YXJkJyxcbiAgICAgIHNvcnQ6ICdhc2MnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnc3RhdHVzJyxcbiAgICAgIHZhbHVlOiAnU3RhdHVzJyxcbiAgICAgIGljb246ICdhcnJvd19kb3dud2FyZCcsXG4gICAgICBzb3J0OiAnZGVzYycsXG4gICAgfSxcbiAgXTtcbiAgc3RhdHVzOiBhbnkgPSBOb3RpZmljYXRpb25TdGF0dXM7XG4gIG9yZGVyU3RyaW5nID0gJ2NyZWF0ZWRBdCBkZXNjJztcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8SU5vdGlmaWNhdGlvbj4oKTtcbiAgbGlua3MgPSBpbmplY3QoTk9USUZJQ0FUSU9OU19DT05GSUcpLml0ZW1zO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKCh7IHR5cGUgfSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3QgPSB0aGlzLmxpbmtzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS50eXBlID09PSB0eXBlKTtcbiAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gYHR5cGU6JHt0eXBlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5maW5kKG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuZmluZChudWxsKTtcbiAgfVxuXG4gIGZpbmQoZXZlbnQ/OiBQYWdlRXZlbnQgfCBudWxsKTogYW55IHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgcGFnZSA9IGV2ZW50ID8gZXZlbnQucGFnZUluZGV4ICsgMSA6IDE7XG4gICAgY29uc3QgbGltaXQgPSBldmVudCA/IGV2ZW50LnBhZ2VTaXplIDogMTU7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMub3JkZXJTdHJpbmc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBsaW1pdCxcbiAgICAgIHNvcnQsXG4gICAgfTtcbiAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgIG9wdGlvbnNbJ2ZpbHRlciddID0gdGhpcy5maWx0ZXI7XG4gICAgfVxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5tZShvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLm5vdGlmaWNhdGlvbnM7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gcmVzLm1ldGEucGFnaW5hdGlvbi5jb3VudDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGUubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHJlYWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZElkID0gaXRlbS5pZDtcbiAgICBpZiAoaXRlbS5zdGF0dXMgPT09ICdSRUFEJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudXBkYXRlKGl0ZW0uaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGl0ZW0uc3RhdHVzID0gJ1JFQUQnO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJOb3RpZmljYXRpb25zXCIgbGFyZ2U+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8cm9sYXRlY2gtdGFicyBbc2VsZWN0XT1cInNlbGVjdFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlua3M7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIEBpZiAoaXRlbS50eXBlKSB7XG4gICAgICAgIDxyb2xhdGVjaC10YWIgW2xhYmVsXT1cIml0ZW0ubmFtZVwiIHJvdXRlckxpbms9XCIuL1wiIFtxdWVyeVBhcmFtc109XCJ7IHR5cGU6IGl0ZW0udHlwZSB9XCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHJvbGF0ZWNoLXRhYiBbbGFiZWxdPVwiaXRlbS5uYW1lXCIgcm91dGVyTGluaz1cIi4vXCI+PC9yb2xhdGVjaC10YWI+XG4gICAgICB9XG4gICAgfVxuICA8L3JvbGF0ZWNoLXRhYnM+XG4gIDxyb2xhdGVjaC1saXN0PlxuICAgIEBpZiAobm90aWZpY2F0aW9ucykge1xuICAgICAgQGZvciAoaXRlbSBvZiBub3RpZmljYXRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgICAgICAgIDxyb2xhdGVjaC1ub3RpZmljYXRpb24taXRlbVxuICAgICAgICAgICAgW25vdGlmaWNhdGlvbl09XCJpdGVtXCJcbiAgICAgICAgICAgICh0b2dnbGUpPVwicmVhZChpdGVtKVwiXG4gICAgICAgICAgICBbZXhwYW5kXT1cIml0ZW0uaWQgPT09IHNlbGVjdGVkSWRcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1pdGVtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICNwYWdpbmF0b3JcbiAgICAgICAgW2xlbmd0aF09XCJsZW5ndGhcIlxuICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgIChwYWdlKT1cInBhZ2VFdmVudCA9IGZpbmQoJGV2ZW50KVwiXG4gICAgICAgIGhpZGVQYWdlU2l6ZVxuICAgICAgICBzaG93Rmlyc3RMYXN0QnV0dG9uc1xuICAgICAgPlxuICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHJvbGF0ZWNoLWVtcHR5Pjwvcm9sYXRlY2gtZW1wdHk+XG4gICAgfVxuICA8L3JvbGF0ZWNoLWxpc3Q+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==","import { InjectionToken, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nexport const NOTIFICATIONS_CONFIG = new InjectionToken('NOTIFICATIONS_CONFIG');\nexport function provideAngularNotification(config) {\n const providers = [\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n {\n provide: NOTIFICATIONS_CONFIG,\n useValue: config,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixjQUFjLEVBQVksbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXL0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHNCQUFzQixDQUFDLENBQUM7QUFFcEcsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE1BQTRCO0lBQ3JFLE1BQU0sU0FBUyxHQUF3QztRQUNyRCxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQztRQUNqRjtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLE1BQU07U0FDakI7S0FDRixDQUFDO0lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW1wb3J0UHJvdmlkZXJzRnJvbSwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkxpbmsge1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uc0NvbmZpZyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpdGVtczogTm90aWZpY2F0aW9uTGlua1tdO1xufVxuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTlNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE5vdGlmaWNhdGlvbnNDb25maWc+KCdOT1RJRklDQVRJT05TX0NPTkZJRycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFuZ3VsYXJOb3RpZmljYXRpb24oY29uZmlnPzogTm90aWZpY2F0aW9uc0NvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgcHJvdmlkZXJzOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSA9IFtcbiAgICBpbXBvcnRQcm92aWRlcnNGcm9tKENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIFJvdXRlck1vZHVsZSksXG4gICAge1xuICAgICAgcHJvdmlkZTogTk9USUZJQ0FUSU9OU19DT05GSUcsXG4gICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cbiJdfQ==","import { NotificationIndexComponent } from './components/notification-index/notification-index.component';\nimport { NotificationDetailComponent } from './components/notification-detail/notification-detail.component';\nexport const notificationRoutes = [\n {\n path: '',\n component: NotificationIndexComponent,\n },\n { path: ':id', component: NotificationDetailComponent },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvbm90aWZpY2F0aW9uLnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUU3RyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVztJQUN4QztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDBCQUEwQjtLQUN0QztJQUNELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUU7Q0FDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25JbmRleENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24taW5kZXgvbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWRldGFpbC9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb25Sb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogTm90aWZpY2F0aW9uSW5kZXhDb21wb25lbnQsXG4gIH0sXG4gIHsgcGF0aDogJzppZCcsIGNvbXBvbmVudDogTm90aWZpY2F0aW9uRGV0YWlsQ29tcG9uZW50IH0sXG5dO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1ub3RpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvcm9sYXRlY2gtYW5ndWxhci1ub3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","NOTIFICATIONS_CONFIG","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-notification.mjs","sources":["../../../../packages/angular-notification/src/lib/components/notification-icon/notification-icon.component.ts","../../../../packages/angular-notification/src/lib/components/notification-icon/notification-icon.component.html","../../../../packages/angular-notification/src/lib/components/notification-detail/notification-detail.component.ts","../../../../packages/angular-notification/src/lib/components/notification-detail/notification-detail.component.html","../../../../packages/angular-notification/src/lib/interfaces/notification.ts","../../../../packages/angular-notification/src/lib/components/notification-item/notification-item.component.ts","../../../../packages/angular-notification/src/lib/components/notification-item/notification-item.component.html","../../../../packages/angular-notification/src/lib/components/notification-index/notification-index.component.ts","../../../../packages/angular-notification/src/lib/components/notification-index/notification-index.component.html","../../../../packages/angular-notification/src/provider.ts","../../../../packages/angular-notification/src/lib/notification.routes.ts","../../../../packages/angular-notification/src/rolatech-angular-notification.ts"],"sourcesContent":["import { AfterViewInit, Component, OnDestroy, OnInit, ViewEncapsulation, inject, input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { NotificationService, NotificationStore } from '@rolatech/angular-services';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { OverlayContainer } from '@angular/cdk/overlay';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule],\n selector: 'rolatech-notification-icon',\n templateUrl: './notification-icon.component.html',\n styleUrls: ['./notification-icon.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NotificationIconComponent implements OnInit, AfterViewInit, OnDestroy {\n router = input<string>('/notifications');\n notifications: any = [];\n notificationService = inject(NotificationService);\n storeService = inject(NotificationStore);\n overlayContainer = inject(OverlayContainer);\n\n count = 0;\n private countSubscription!: Subscription;\n ngOnInit(): void {\n this.countNotificationByStatus();\n this.storeService.$count.subscribe((data) => {\n this.count = data;\n });\n }\n ngAfterViewInit() {\n // const overlayElement = this.overlayContainer.getContainerElement();\n // console.log(overlayElement);\n // overlayElement.style.top = '40px'; // Forces overlay to start from the top\n }\n ngOnDestroy() {\n if (this.countSubscription) this.countSubscription.unsubscribe();\n }\n\n countNotificationByStatus() {\n this.notificationService.countByStatus('UNREAD').subscribe({\n next: (res) => {\n this.loadUnreadNotifications();\n },\n });\n }\n loadUnreadNotifications() {\n const options = {\n filter: 'status:UNREAD',\n sort: 'createdAt desc',\n };\n this.notificationService.me(options).subscribe({\n next: (res) => {\n this.notifications = res.data;\n },\n });\n }\n readAll() {\n this.notificationService.readAll().subscribe({\n next: (res) => {\n this.notifications = [];\n },\n });\n }\n}\n","<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" onclick=\"this.blur()\" [matMenuTriggerFor]=\"notificationsMenu\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">notifications</mat-icon>\n </button>\n</div>\n<mat-menu #notificationsMenu=\"matMenu\" class=\"custom-menu\" yPosition=\"below\">\n <div class=\"flex flex-col min-w-[256px] divide-y divide-[--rt-10-percent-layer]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"text-xl font-bold\" i18n>Notifications</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"readAll()\" aria-hidden=\"true\" i18n\n >Read All</span\n >\n }\n </div>\n <div>\n @if (notifications && notifications.length > 0) {\n <div class=\"divide-y divide-[--rt-10-percent-layer]\">\n @for (item of notifications; track item) {\n <div class=\"p-3 cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"[router(), item.id]\">\n <div class=\"text-lg mb-1\">\n {{ item.title }}\n </div>\n <div class=\"text-sm\">\n {{ item.content }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"h-32 flex justify-center items-center\" i18n>There is no notifications</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"router()\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-[--rt-brand-color]\" i18n> All notifications </span>\n </a>\n </div>\n </div>\n</mat-menu>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { INotification } from '../../interfaces/notification';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport { NotificationService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-notification-detail',\n templateUrl: './notification-detail.component.html',\n styleUrls: ['./notification-detail.component.scss'],\n imports: [],\n})\nexport class NotificationDetailComponent extends BaseComponent implements OnInit {\n notificationService = inject(NotificationService);\n snackBar = inject(MatSnackBar);\n notification!: INotification;\n ngOnInit(): void {\n this.get();\n }\n get() {\n this.notificationService.get(this.id).subscribe({\n next: (res: any) => {\n this.notification = res.data;\n this.titleService.setTitle(`通知 | ${this.notification.title}`);\n },\n });\n }\n}\n","@if (notification) {\n <div class=\"p-3\">\n <div class=\"text-xl\">{{ notification.title }}</div>\n <div class=\"text-md\">\n {{ notification.content }}\n </div>\n </div>\n}\n","export interface INotification {\n id: string;\n title: string;\n message: string;\n content: string;\n userId: string;\n status: NotificationStatus | string;\n createdAt: string;\n updatedAt: string;\n}\nexport enum NotificationStatus {\n UNREAD = <any>'未读',\n READ = <any>'已读',\n}\n","import { Component, input, output } from '@angular/core';\nimport { INotification } from '../../interfaces/notification';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass, DatePipe } from '@angular/common';\n\n@Component({\n selector: 'rolatech-notification-item',\n templateUrl: './notification-item.component.html',\n styleUrls: ['./notification-item.component.scss'],\n imports: [NgClass, MatIconModule, DatePipe],\n})\nexport class NotificationItemComponent {\n notification = input.required<INotification>();\n expand = input<boolean>(false);\n toggle = output<INotification>();\n isContentHidden = true;\n\n toggleContent() {\n this.isContentHidden = !this.isContentHidden;\n }\n onToggle(item: INotification) {\n this.toggle.emit(item);\n }\n}\n","<div>\n <div\n class=\"flex justify-between items-center h-16 cursor-pointer\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n (click)=\"onToggle(notification())\"\n aria-hidden=\"true\"\n >\n <div>{{ notification().title }}</div>\n <div class=\"flex items-center opacity-60\">\n <div class=\"text-sm mr-3\">{{ notification().createdAt | date }}</div>\n <mat-icon>{{ expand() ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}</mat-icon>\n </div>\n </div>\n <div\n class=\"collapsed\"\n [class.expanded]=\"expand()\"\n [ngClass]=\"notification().status === 'READ' ? 'text-[--rt-text-secondary]' : ''\"\n >\n {{ notification().message }}\n </div>\n</div>\n","import { Component, OnInit, ViewEncapsulation, inject, viewChild } from '@angular/core';\nimport { INotification, NotificationStatus } from '../../interfaces/notification';\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { NotificationItemComponent } from '../notification-item/notification-item.component';\nimport { AngularCommonModule, NOTIFICATIONS_CONFIG } from '@rolatech/angular-common';\nimport {\n AngularComponentsModule,\n ContainerComponent,\n EmptyComponent,\n ListComponent,\n TabComponent,\n TabsComponent,\n ToolbarComponent,\n} from '@rolatech/angular-components';\nimport { ActivatedRoute } from '@angular/router';\nimport { NotificationService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-notification-index',\n templateUrl: './notification-index.component.html',\n styleUrls: ['./notification-index.component.scss'],\n imports: [\n NotificationItemComponent,\n AngularCommonModule,\n AngularComponentsModule,\n ContainerComponent,\n ToolbarComponent,\n TabsComponent,\n TabComponent,\n ListComponent,\n EmptyComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NotificationIndexComponent implements OnInit {\n route = inject(ActivatedRoute);\n notificationService = inject(NotificationService);\n snackBar = inject(MatSnackBar);\n notifications: INotification[] = [];\n filter: string | boolean = false;\n pageEvent!: PageEvent;\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n isLoading = false;\n isSearch = false;\n selectedId = '';\n select = 0;\n displayedColumns: string[] = ['title', 'status', 'createdAt', 'actions'];\n paginator = viewChild(MatPaginator);\n\n orderOptions = [\n {\n key: 'createdAt',\n value: 'Created At',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'createdAt',\n value: 'Created At',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n {\n key: 'status',\n value: 'Status',\n icon: 'arrow_upward',\n sort: 'asc',\n },\n {\n key: 'status',\n value: 'Status',\n icon: 'arrow_downward',\n sort: 'desc',\n },\n ];\n status: any = NotificationStatus;\n orderString = 'createdAt desc';\n dataSource = new MatTableDataSource<INotification>();\n links = inject(NOTIFICATIONS_CONFIG).items;\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(({ type }) => {\n this.select = this.links.findIndex((item) => item.type === type);\n if (type) {\n this.filter = `type:${type}`;\n } else {\n this.filter = false;\n }\n this.find(null);\n });\n this.find(null);\n }\n\n find(event?: PageEvent | null): any {\n this.isLoading = true;\n const page = event ? event.pageIndex + 1 : 1;\n const limit = event ? event.pageSize : 15;\n const sort = this.orderString;\n const options = {\n page,\n limit,\n sort,\n };\n if (this.filter) {\n options['filter'] = this.filter;\n }\n this.notificationService.me(options).subscribe({\n next: (res) => {\n this.notifications = res.data;\n this.dataSource.data = this.notifications;\n this.length = res.meta.pagination.count;\n this.isLoading = false;\n },\n error: (e) => {\n this.isLoading = false;\n this.snackBar.open(e.message);\n },\n });\n }\n read(item: any) {\n this.selectedId = item.id;\n if (item.status === 'READ') {\n return;\n }\n this.notificationService.update(item.id).subscribe({\n next: (res) => {\n item.status = 'READ';\n },\n });\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Notifications\" large></rolatech-toolbar>\n <rolatech-tabs [select]=\"select\">\n @for (item of links; track item) {\n @if (item.type) {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\" [queryParams]=\"{ type: item.type }\"></rolatech-tab>\n } @else {\n <rolatech-tab [label]=\"item.name\" routerLink=\"./\"></rolatech-tab>\n }\n }\n </rolatech-tabs>\n <rolatech-list>\n @if (notifications) {\n @for (item of notifications; track $index) {\n <div class=\"p-3\">\n <rolatech-notification-item\n [notification]=\"item\"\n (toggle)=\"read(item)\"\n [expand]=\"item.id === selectedId\"\n ></rolatech-notification-item>\n </div>\n }\n <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator>\n } @else {\n <rolatech-empty></rolatech-empty>\n }\n </rolatech-list>\n</rolatech-container>\n","import { EnvironmentProviders, InjectionToken, Provider, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nexport interface NotificationLink {\n name: string;\n icon: string;\n type?: string;\n}\nexport interface NotificationsConfig {\n title?: string;\n items: NotificationLink[];\n}\nexport const NOTIFICATIONS_CONFIG = new InjectionToken<NotificationsConfig>('NOTIFICATIONS_CONFIG');\n\nexport function provideAngularNotification(config?: NotificationsConfig): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),\n {\n provide: NOTIFICATIONS_CONFIG,\n useValue: config,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Routes } from '@angular/router';\nimport { NotificationIndexComponent } from './components/notification-index/notification-index.component';\nimport { NotificationDetailComponent } from './components/notification-detail/notification-detail.component';\n\nexport const notificationRoutes: Routes = [\n {\n path: '',\n component: NotificationIndexComponent,\n },\n { path: ':id', component: NotificationDetailComponent },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NOTIFICATIONS_CONFIG"],"mappings":"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"}
|