@rolatech/angular-notification 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +7 -0
  2. package/esm2022/index.mjs +9 -0
  3. package/esm2022/lib/components/notification-detail/notification-detail.component.mjs +28 -0
  4. package/esm2022/lib/components/notification-icon/notification-icon.component.mjs +62 -0
  5. package/esm2022/lib/components/notification-index/notification-index.component.mjs +105 -0
  6. package/esm2022/lib/components/notification-item/notification-item.component.mjs +55 -0
  7. package/esm2022/lib/components/notification-layout/notification-layout.component.mjs +29 -0
  8. package/esm2022/lib/interfaces/notification.mjs +6 -0
  9. package/esm2022/lib/notification.routes.mjs +12 -0
  10. package/esm2022/lib/services/index.mjs +5 -0
  11. package/esm2022/lib/services/notification-template.service.mjs +74 -0
  12. package/esm2022/lib/services/notification.service.mjs +111 -0
  13. package/esm2022/lib/state/store.mjs +18 -0
  14. package/esm2022/provider.mjs +13 -0
  15. package/esm2022/rolatech-angular-notification.mjs +5 -0
  16. package/fesm2022/rolatech-angular-notification.mjs +482 -0
  17. package/fesm2022/rolatech-angular-notification.mjs.map +1 -0
  18. package/index.d.ts +8 -0
  19. package/lib/components/notification-detail/notification-detail.component.d.ts +15 -0
  20. package/lib/components/notification-icon/notification-icon.component.d.ts +19 -0
  21. package/lib/components/notification-index/notification-index.component.d.ts +38 -0
  22. package/lib/components/notification-item/notification-item.component.d.ts +13 -0
  23. package/lib/components/notification-layout/notification-layout.component.d.ts +10 -0
  24. package/lib/interfaces/notification.d.ts +13 -0
  25. package/lib/notification.routes.d.ts +2 -0
  26. package/lib/services/index.d.ts +4 -0
  27. package/lib/services/notification-template.service.d.ts +14 -0
  28. package/lib/services/notification.service.d.ts +19 -0
  29. package/lib/state/store.d.ts +8 -0
  30. package/package.json +31 -0
  31. package/provider.d.ts +2 -0
  32. package/themes/_default.scss +1 -0
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # angular-notification
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test angular-notification` to execute the unit tests.
@@ -0,0 +1,9 @@
1
+ export { NotificationIconComponent } from './lib/components/notification-icon/notification-icon.component';
2
+ export { NotificationDetailComponent } from './lib/components/notification-detail/notification-detail.component';
3
+ export { NotificationIndexComponent } from './lib/components/notification-index/notification-index.component';
4
+ export { NotificationItemComponent } from './lib/components/notification-item/notification-item.component';
5
+ export { NotificationLayoutComponent } from './lib/components/notification-layout/notification-layout.component';
6
+ export { NotificationService, NotificationTemplateService } from './lib/services';
7
+ export * from './provider';
8
+ export * from './lib/notification.routes';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTm90aWZpY2F0aW9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWljb24vbm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50JztcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWRldGFpbC9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBOb3RpZmljYXRpb25JbmRleENvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWluZGV4L25vdGlmaWNhdGlvbi1pbmRleC5jb21wb25lbnQnO1xuZXhwb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWxheW91dC9ub3RpZmljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBOb3RpZmljYXRpb25UZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25vdGlmaWNhdGlvbi5yb3V0ZXMnO1xuIl19
@@ -0,0 +1,28 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { MatSnackBar } from '@angular/material/snack-bar';
3
+ import { NotificationService } from '../../services';
4
+ import { BaseComponent } from '@rolatech/angular-components';
5
+ import * as i0 from "@angular/core";
6
+ export class NotificationDetailComponent extends BaseComponent {
7
+ notificationService = inject(NotificationService);
8
+ snackBar = inject(MatSnackBar);
9
+ notification;
10
+ ngOnInit() {
11
+ this.get();
12
+ }
13
+ get() {
14
+ this.notificationService.get(this.id).subscribe({
15
+ next: (res) => {
16
+ this.notification = res.data;
17
+ this.titleService.setTitle(`通知 | ${this.notification.title}`);
18
+ },
19
+ });
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationDetailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", 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: [""] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationDetailComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'rolatech-notification-detail', standalone: true, 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" }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24tZGV0YWlsL25vdGlmaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWRldGFpbC9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUzdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxhQUFhO0lBQzVELG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsWUFBWSxDQUFpQjtJQUM3QixRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUNELEdBQUc7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDOUMsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBZFUsMkJBQTJCOzJGQUEzQiwyQkFBMkIsK0dDYnhDLGtNQVFBOzsyRkRLYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkRldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIG5vdGlmaWNhdGlvbiE6IElOb3RpZmljYXRpb247XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCk7XG4gIH1cbiAgZ2V0KCkge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbiA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShg6YCa55+lIHwgJHt0aGlzLm5vdGlmaWNhdGlvbi50aXRsZX1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAobm90aWZpY2F0aW9uKSB7XG4gIDxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC14bFwiPnt7IG5vdGlmaWNhdGlvbi50aXRsZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kXCI+XG4gICAgICB7eyBub3RpZmljYXRpb24uY29udGVudCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { Component, Input, inject } from '@angular/core';
2
+ import { NotificationService } from '../../services';
3
+ import { StoreService } from '../../state/store';
4
+ import { AngularCommonModule } from '@rolatech/angular-common';
5
+ import { AngularComponentsModule } from '@rolatech/angular-components';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ import * as i2 from "@angular/material/badge";
9
+ import * as i3 from "@angular/material/button";
10
+ import * as i4 from "@angular/material/icon";
11
+ import * as i5 from "@angular/material/menu";
12
+ export class NotificationIconComponent {
13
+ router = '/notifications';
14
+ notifications = [];
15
+ notificationService = inject(NotificationService);
16
+ storeService = inject(StoreService);
17
+ count = 0;
18
+ countSubscription;
19
+ ngOnInit() {
20
+ this.countNotificationByStatus();
21
+ this.storeService.$count.subscribe((data) => {
22
+ this.count = data;
23
+ });
24
+ }
25
+ ngOnDestroy() {
26
+ if (this.countSubscription)
27
+ this.countSubscription.unsubscribe();
28
+ }
29
+ countNotificationByStatus() {
30
+ this.notificationService.countByStatus('UNREAD').subscribe({
31
+ next: (res) => {
32
+ this.loadUnreadNotifications();
33
+ },
34
+ });
35
+ }
36
+ loadUnreadNotifications() {
37
+ const options = {
38
+ filter: 'status:UNREAD',
39
+ };
40
+ this.notificationService.me(options).subscribe({
41
+ next: (res) => {
42
+ this.notifications = res.data;
43
+ },
44
+ });
45
+ }
46
+ readAll() {
47
+ this.notificationService.readAll().subscribe({
48
+ next: (res) => {
49
+ this.notifications = [];
50
+ },
51
+ });
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: NotificationIconComponent, isStandalone: true, selector: "rolatech-notification-icon", inputs: { router: "router" }, 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\">\n <div class=\"flex flex-col divide-y min-w-[256px]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"font-medium\">\u901A\u77E5\u6D88\u606F</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"readAll()\">\u5168\u90E8\u5DF2\u8BFB</span>\n }\n </div>\n <div>\n @if (notifications && notifications.length > 0) {\n <div class=\"divide-y\">\n @for (item of notifications; track item) {\n <div class=\"p-2 cursor-pointer hover:bg-gray-100\" [routerLink]=\"[router, item.id]\">\n <div>\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\">\u6682\u65E0\u901A\u77E5</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-gray-100\" [routerLink]=\"router\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-orange-600\"> \u901A\u77E5\u4E2D\u5FC3 </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: [":host .custom-menu>.mat-mdc-menu-content{padding:0!important}:host .mat-mdc-menu-content{padding:0!important}.mat-mdc-menu-content{padding:0!important}\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]", exportAs: ["matButton"] }, { 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"] }] });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationIconComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-notification-icon', 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\">\n <div class=\"flex flex-col divide-y min-w-[256px]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"font-medium\">\u901A\u77E5\u6D88\u606F</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"readAll()\">\u5168\u90E8\u5DF2\u8BFB</span>\n }\n </div>\n <div>\n @if (notifications && notifications.length > 0) {\n <div class=\"divide-y\">\n @for (item of notifications; track item) {\n <div class=\"p-2 cursor-pointer hover:bg-gray-100\" [routerLink]=\"[router, item.id]\">\n <div>\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\">\u6682\u65E0\u901A\u77E5</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-gray-100\" [routerLink]=\"router\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-orange-600\"> \u901A\u77E5\u4E2D\u5FC3 </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: [":host .custom-menu>.mat-mdc-menu-content{padding:0!important}:host .mat-mdc-menu-content{padding:0!important}.mat-mdc-menu-content{padding:0!important}\n"] }]
59
+ }], propDecorators: { router: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWljb24vbm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWljb24vbm90aWZpY2F0aW9uLWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFTdkUsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDMUIsYUFBYSxHQUFRLEVBQUUsQ0FBQztJQUN4QixtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXBDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDRixpQkFBaUIsQ0FBZ0I7SUFDekMsUUFBUTtRQUNOLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6RCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHVCQUF1QjtRQUNyQixNQUFNLE9BQU8sR0FBRztZQUNkLE1BQU0sRUFBRSxlQUFlO1NBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0ExQ1UseUJBQXlCOzJGQUF6Qix5QkFBeUIsb0hDZnRDLHNrREFzQ0Esa05ENUJZLG1CQUFtQiwrUUFBRSx1QkFBdUI7OzJGQUszQyx5QkFBeUI7a0JBUHJDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsWUFDN0MsNEJBQTRCOzhCQU10QyxNQUFNO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZS9zdG9yZSc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0FuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1ub3RpZmljYXRpb24taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24taWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1pY29uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHJvdXRlciA9ICcvbm90aWZpY2F0aW9ucyc7XG4gIG5vdGlmaWNhdGlvbnM6IGFueSA9IFtdO1xuICBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBzdG9yZVNlcnZpY2UgPSBpbmplY3QoU3RvcmVTZXJ2aWNlKTtcblxuICBjb3VudCA9IDA7XG4gIHByaXZhdGUgY291bnRTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY291bnROb3RpZmljYXRpb25CeVN0YXR1cygpO1xuICAgIHRoaXMuc3RvcmVTZXJ2aWNlLiRjb3VudC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuY291bnQgPSBkYXRhO1xuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvdW50U3Vic2NyaXB0aW9uKSB0aGlzLmNvdW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjb3VudE5vdGlmaWNhdGlvbkJ5U3RhdHVzKCkge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jb3VudEJ5U3RhdHVzKCdVTlJFQUQnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmxvYWRVbnJlYWROb3RpZmljYXRpb25zKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGxvYWRVbnJlYWROb3RpZmljYXRpb25zKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBmaWx0ZXI6ICdzdGF0dXM6VU5SRUFEJyxcbiAgICB9O1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5tZShvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcmVhZEFsbCgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucmVhZEFsbCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IFtdO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB4LTJcIj5cbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJmbGV4XCIgb25jbGljaz1cInRoaXMuYmx1cigpXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm5vdGlmaWNhdGlvbnNNZW51XCI+XG4gICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbbWF0QmFkZ2VdPVwiY291bnRcIiBbbWF0QmFkZ2VIaWRkZW5dPVwiY291bnQgPT09IDBcIj5ub3RpZmljYXRpb25zPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxtYXQtbWVudSAjbm90aWZpY2F0aW9uc01lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjdXN0b20tbWVudVwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBkaXZpZGUteSBtaW4tdy1bMjU2cHhdXCI+XG4gICAgPGRpdiBjbGFzcz1cImgtMTEgcHgtMyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj7pgJrnn6Xmtojmga88L3NwYW4+XG4gICAgICBAaWYgKGNvdW50KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmVcIiAoY2xpY2spPVwicmVhZEFsbCgpXCI+5YWo6YOo5bey6K+7PC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICBAaWYgKG5vdGlmaWNhdGlvbnMgJiYgbm90aWZpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGUteVwiPlxuICAgICAgICAgIEBmb3IgKGl0ZW0gb2Ygbm90aWZpY2F0aW9uczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMiBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1ncmF5LTEwMFwiIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXIsIGl0ZW0uaWRdXCI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21cIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmNvbnRlbnQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLTMyIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+5pqC5peg6YCa55+lPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImgtMTEgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgaG92ZXI6YmctZ3JheS0xMDBcIiBbcm91dGVyTGlua109XCJyb3V0ZXJcIj5cbiAgICAgIDxhIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtb3JhbmdlLTYwMFwiPiDpgJrnn6XkuK3lv4MgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWF0LW1lbnU+XG4iXX0=
@@ -0,0 +1,105 @@
1
+ import { Component, ViewChild, inject } from '@angular/core';
2
+ import { NotificationService } from '../../services';
3
+ import { NotificationStatus } from '../../interfaces/notification';
4
+ import { MatPaginator } from '@angular/material/paginator';
5
+ import { MatTableDataSource } from '@angular/material/table';
6
+ import { MatSnackBar } from '@angular/material/snack-bar';
7
+ import { NotificationIconComponent } from '../notification-icon/notification-icon.component';
8
+ import { NotificationItemComponent } from '../notification-item/notification-item.component';
9
+ import { AngularCommonModule } from '@rolatech/angular-common';
10
+ import { AngularComponentsModule } from '@rolatech/angular-components';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/material/paginator";
13
+ export class NotificationIndexComponent {
14
+ notificationService = inject(NotificationService);
15
+ snackBar = inject(MatSnackBar);
16
+ notifications = [];
17
+ filter = '';
18
+ pageEvent;
19
+ length = 100;
20
+ pageSize = 15;
21
+ pageSizeOptions = [5, 10, 25, 100];
22
+ isLoading = false;
23
+ isSearch = false;
24
+ selectedId = '';
25
+ notificationIconComponent = NotificationIconComponent;
26
+ displayedColumns = ['title', 'status', 'createdAt', 'actions'];
27
+ paginator;
28
+ orderOptions = [
29
+ {
30
+ key: 'createdAt',
31
+ value: '创建时间',
32
+ icon: 'arrow_upward',
33
+ sort: 'asc',
34
+ },
35
+ {
36
+ key: 'createdAt',
37
+ value: '创建时间',
38
+ icon: 'arrow_downward',
39
+ sort: 'desc',
40
+ },
41
+ {
42
+ key: 'status',
43
+ value: '状态',
44
+ icon: 'arrow_upward',
45
+ sort: 'asc',
46
+ },
47
+ {
48
+ key: 'status',
49
+ value: '状态',
50
+ icon: 'arrow_downward',
51
+ sort: 'desc',
52
+ },
53
+ ];
54
+ status = NotificationStatus;
55
+ orderString = 'createdAt desc';
56
+ dataSource = new MatTableDataSource();
57
+ ngOnInit() {
58
+ this.find(null);
59
+ }
60
+ find(event) {
61
+ this.isLoading = true;
62
+ const page = event ? event.pageIndex + 1 : 1;
63
+ const limit = event ? event.pageSize : 15;
64
+ const sort = this.orderString;
65
+ const options = {
66
+ page,
67
+ limit,
68
+ sort,
69
+ filter: this.filter,
70
+ };
71
+ this.notificationService.me(options).subscribe({
72
+ next: (res) => {
73
+ this.notifications = res.data;
74
+ this.dataSource.data = this.notifications;
75
+ this.length = res.meta.pagination.count;
76
+ this.isLoading = false;
77
+ },
78
+ error: (e) => {
79
+ this.isLoading = false;
80
+ this.snackBar.open(e.message);
81
+ },
82
+ });
83
+ }
84
+ read(item) {
85
+ this.selectedId = item.id;
86
+ if (item.status === 'READ') {
87
+ return;
88
+ }
89
+ this.notificationService.update(item.id).subscribe({
90
+ next: (res) => {
91
+ item.status = 'READ';
92
+ },
93
+ });
94
+ }
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: NotificationIndexComponent, isStandalone: true, selector: "rolatech-notification-index", viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], ngImport: i0, template: "@if (isLoading) {\n <div style=\"height: 80%\">\n <!-- <app-loading-spinner></app-loading-spinner> -->\n </div>\n} @else {\n @for (item of notifications; track $index) {\n <div class=\"divide-y\">\n <rolatech-notification-item\n [notification]=\"item\"\n (toggle)=\"read(item)\"\n [expand]=\"item.id === selectedId\"\n ></rolatech-notification-item>\n </div>\n }\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", styles: [""], dependencies: [{ kind: "component", type: NotificationItemComponent, selector: "rolatech-notification-item", inputs: ["notification", "expand"], outputs: ["toggle"] }, { kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] });
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationIndexComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'rolatech-notification-index', standalone: true, imports: [NotificationItemComponent, AngularCommonModule, AngularComponentsModule], template: "@if (isLoading) {\n <div style=\"height: 80%\">\n <!-- <app-loading-spinner></app-loading-spinner> -->\n </div>\n} @else {\n @for (item of notifications; track $index) {\n <div class=\"divide-y\">\n <rolatech-notification-item\n [notification]=\"item\"\n (toggle)=\"read(item)\"\n [expand]=\"item.id === selectedId\"\n ></rolatech-notification-item>\n </div>\n }\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" }]
101
+ }], propDecorators: { paginator: [{
102
+ type: ViewChild,
103
+ args: ['paginator']
104
+ }] } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1ub3RpZmljYXRpb24vc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1pbmRleC9ub3RpZmljYXRpb24taW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWluZGV4L25vdGlmaWNhdGlvbi1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVN2RSxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsYUFBYSxHQUFvQixFQUFFLENBQUM7SUFDcEMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNaLFNBQVMsQ0FBYTtJQUN0QixNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ2IsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLGVBQWUsR0FBYSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTdDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRWhCLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0lBRXRELGdCQUFnQixHQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFekUsU0FBUyxDQUFnQjtJQUV6QixZQUFZLEdBQUc7UUFDYjtZQUNFLEdBQUcsRUFBRSxXQUFXO1lBQ2hCLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLEtBQUs7U0FDWjtRQUNEO1lBQ0UsR0FBRyxFQUFFLFdBQVc7WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLElBQUksRUFBRSxNQUFNO1NBQ2I7UUFDRDtZQUNFLEdBQUcsRUFBRSxRQUFRO1lBQ2IsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsY0FBYztZQUNwQixJQUFJLEVBQUUsS0FBSztTQUNaO1FBQ0Q7WUFDRSxHQUFHLEVBQUUsUUFBUTtZQUNiLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixJQUFJLEVBQUUsTUFBTTtTQUNiO0tBQ0YsQ0FBQztJQUNGLE1BQU0sR0FBUSxrQkFBa0IsQ0FBQztJQUNqQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7SUFDL0IsVUFBVSxHQUFHLElBQUksa0JBQWtCLEVBQWlCLENBQUM7SUFDckQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELElBQUksQ0FBQyxLQUF3QjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRztZQUNkLElBQUk7WUFDSixLQUFLO1lBQ0wsSUFBSTtZQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBUztRQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBdkZVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLCtMQ2xCdkMsMG5CQXlCQSwwRERUWSx5QkFBeUIsK0hBQUUsbUJBQW1CLDhCQUFFLHVCQUF1Qjs7MkZBRXRFLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQLENBQUMseUJBQXlCLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUM7OEJBb0JsRixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvblN0YXR1cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkljb25Db21wb25lbnQgfSBmcm9tICcuLi9ub3RpZmljYXRpb24taWNvbi9ub3RpZmljYXRpb24taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGlmaWNhdGlvbi1pdGVtL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1pbmRleCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24taW5kZXguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24taW5kZXguY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQsIEFuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIG5vdGlmaWNhdGlvbnM6IElOb3RpZmljYXRpb25bXSA9IFtdO1xuICBmaWx0ZXIgPSAnJztcbiAgcGFnZUV2ZW50ITogUGFnZUV2ZW50O1xuICBsZW5ndGggPSAxMDA7XG4gIHBhZ2VTaXplID0gMTU7XG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbNSwgMTAsIDI1LCAxMDBdO1xuXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1NlYXJjaCA9IGZhbHNlO1xuICBzZWxlY3RlZElkID0gJyc7XG5cbiAgbm90aWZpY2F0aW9uSWNvbkNvbXBvbmVudCA9IE5vdGlmaWNhdGlvbkljb25Db21wb25lbnQ7XG5cbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ3RpdGxlJywgJ3N0YXR1cycsICdjcmVhdGVkQXQnLCAnYWN0aW9ucyddO1xuICBAVmlld0NoaWxkKCdwYWdpbmF0b3InKVxuICBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XG5cbiAgb3JkZXJPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGtleTogJ2NyZWF0ZWRBdCcsXG4gICAgICB2YWx1ZTogJ+WIm+W7uuaXtumXtCcsXG4gICAgICBpY29uOiAnYXJyb3dfdXB3YXJkJyxcbiAgICAgIHNvcnQ6ICdhc2MnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY3JlYXRlZEF0JyxcbiAgICAgIHZhbHVlOiAn5Yib5bu65pe26Ze0JyxcbiAgICAgIGljb246ICdhcnJvd19kb3dud2FyZCcsXG4gICAgICBzb3J0OiAnZGVzYycsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzdGF0dXMnLFxuICAgICAgdmFsdWU6ICfnirbmgIEnLFxuICAgICAgaWNvbjogJ2Fycm93X3Vwd2FyZCcsXG4gICAgICBzb3J0OiAnYXNjJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3N0YXR1cycsXG4gICAgICB2YWx1ZTogJ+eKtuaAgScsXG4gICAgICBpY29uOiAnYXJyb3dfZG93bndhcmQnLFxuICAgICAgc29ydDogJ2Rlc2MnLFxuICAgIH0sXG4gIF07XG4gIHN0YXR1czogYW55ID0gTm90aWZpY2F0aW9uU3RhdHVzO1xuICBvcmRlclN0cmluZyA9ICdjcmVhdGVkQXQgZGVzYyc7XG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPElOb3RpZmljYXRpb24+KCk7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZChudWxsKTtcbiAgfVxuXG4gIGZpbmQoZXZlbnQ/OiBQYWdlRXZlbnQgfCBudWxsKTogYW55IHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgcGFnZSA9IGV2ZW50ID8gZXZlbnQucGFnZUluZGV4ICsgMSA6IDE7XG4gICAgY29uc3QgbGltaXQgPSBldmVudCA/IGV2ZW50LnBhZ2VTaXplIDogMTU7XG4gICAgY29uc3Qgc29ydCA9IHRoaXMub3JkZXJTdHJpbmc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBsaW1pdCxcbiAgICAgIHNvcnQsXG4gICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyLFxuICAgIH07XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm1lKG9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMubm90aWZpY2F0aW9ucztcbiAgICAgICAgdGhpcy5sZW5ndGggPSByZXMubWV0YS5wYWdpbmF0aW9uLmNvdW50O1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcmVhZChpdGVtOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkSWQgPSBpdGVtLmlkO1xuICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ1JFQUQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS51cGRhdGUoaXRlbS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaXRlbS5zdGF0dXMgPSAnUkVBRCc7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGlzTG9hZGluZykge1xuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiA4MCVcIj5cbiAgICA8IS0tIDxhcHAtbG9hZGluZy1zcGlubmVyPjwvYXBwLWxvYWRpbmctc3Bpbm5lcj4gLS0+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIEBmb3IgKGl0ZW0gb2Ygbm90aWZpY2F0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZS15XCI+XG4gICAgICA8cm9sYXRlY2gtbm90aWZpY2F0aW9uLWl0ZW1cbiAgICAgICAgW25vdGlmaWNhdGlvbl09XCJpdGVtXCJcbiAgICAgICAgKHRvZ2dsZSk9XCJyZWFkKGl0ZW0pXCJcbiAgICAgICAgW2V4cGFuZF09XCJpdGVtLmlkID09PSBzZWxlY3RlZElkXCJcbiAgICAgID48L3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1pdGVtPlxuICAgIDwvZGl2PlxuICB9XG59XG48bWF0LXBhZ2luYXRvclxuICAjcGFnaW5hdG9yXG4gIFtsZW5ndGhdPVwibGVuZ3RoXCJcbiAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAocGFnZSk9XCJwYWdlRXZlbnQgPSBmaW5kKCRldmVudClcIlxuICBoaWRlUGFnZVNpemVcbiAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbj5cbjwvbWF0LXBhZ2luYXRvcj5cbiJdfQ==
@@ -0,0 +1,55 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { trigger, state, style, transition, animate } from '@angular/animations';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { NgClass, DatePipe } from '@angular/common';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/icon";
7
+ export class NotificationItemComponent {
8
+ notification;
9
+ isContentHidden = true;
10
+ expand = false;
11
+ toggle = new EventEmitter();
12
+ toggleContent() {
13
+ this.isContentHidden = !this.isContentHidden;
14
+ }
15
+ onToggle(item) {
16
+ this.toggle.emit(item);
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: NotificationItemComponent, isStandalone: true, selector: "rolatech-notification-item", inputs: { notification: "notification", expand: "expand" }, outputs: { toggle: "toggle" }, ngImport: i0, template: "<div class=\"border-b\" [ngClass]=\"expand ? 'shadow shadow-light-400' : ''\">\n <div\n class=\"flex justify-between items-center h-16 cursor-pointer px-3\"\n [ngClass]=\"notification.status === 'READ' ? 'text-gray-400' : ''\"\n (click)=\"onToggle(notification)\"\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.hidden]=\"!expand\"\n [@contentAnimation]=\"expand\"\n class=\"p-3\"\n [ngClass]=\"notification.status === 'READ' ? 'text-gray-400' : ''\"\n >\n {{ notification.content }}\n </div>\n <div class=\"divide\"></div>\n</div>\n", styles: [""], 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" }], animations: [
20
+ trigger('contentAnimation', [
21
+ state('hidden', style({
22
+ height: '0',
23
+ opacity: 0,
24
+ })),
25
+ state('visible', style({
26
+ height: '*',
27
+ opacity: 1,
28
+ })),
29
+ transition('hidden <=> visible', animate('300ms ease-in-out')),
30
+ ]),
31
+ ] });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationItemComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'rolatech-notification-item', animations: [
36
+ trigger('contentAnimation', [
37
+ state('hidden', style({
38
+ height: '0',
39
+ opacity: 0,
40
+ })),
41
+ state('visible', style({
42
+ height: '*',
43
+ opacity: 1,
44
+ })),
45
+ transition('hidden <=> visible', animate('300ms ease-in-out')),
46
+ ]),
47
+ ], standalone: true, imports: [NgClass, MatIconModule, DatePipe], template: "<div class=\"border-b\" [ngClass]=\"expand ? 'shadow shadow-light-400' : ''\">\n <div\n class=\"flex justify-between items-center h-16 cursor-pointer px-3\"\n [ngClass]=\"notification.status === 'READ' ? 'text-gray-400' : ''\"\n (click)=\"onToggle(notification)\"\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.hidden]=\"!expand\"\n [@contentAnimation]=\"expand\"\n class=\"p-3\"\n [ngClass]=\"notification.status === 'READ' ? 'text-gray-400' : ''\"\n >\n {{ notification.content }}\n </div>\n <div class=\"divide\"></div>\n</div>\n" }]
48
+ }], propDecorators: { notification: [{
49
+ type: Input
50
+ }], expand: [{
51
+ type: Input
52
+ }], toggle: [{
53
+ type: Output
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUE0QnBELE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFBWSxDQUFpQjtJQUM3QixlQUFlLEdBQUcsSUFBSSxDQUFDO0lBRXZCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDTCxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFFckQsYUFBYTtRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBbUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzt1R0FiVSx5QkFBeUI7MkZBQXpCLHlCQUF5QixpTENoQ3RDLDh5QkFzQkEsMEREUVksT0FBTyxtRkFBRSxhQUFhLCtLQUFFLFFBQVEsK0JBcEI5QjtZQUNWLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDMUIsS0FBSyxDQUNILFFBQVEsRUFDUixLQUFLLENBQUM7b0JBQ0osTUFBTSxFQUFFLEdBQUc7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ1gsQ0FBQyxDQUNIO2dCQUNELEtBQUssQ0FDSCxTQUFTLEVBQ1QsS0FBSyxDQUFDO29CQUNKLE1BQU0sRUFBRSxHQUFHO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNYLENBQUMsQ0FDSDtnQkFDRCxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDL0QsQ0FBQztTQUNIOzsyRkFJVSx5QkFBeUI7a0JBMUJyQyxTQUFTOytCQUNFLDRCQUE0QixjQUcxQjt3QkFDVixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzFCLEtBQUssQ0FDSCxRQUFRLEVBQ1IsS0FBSyxDQUFDO2dDQUNKLE1BQU0sRUFBRSxHQUFHO2dDQUNYLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsU0FBUyxFQUNULEtBQUssQ0FBQztnQ0FDSixNQUFNLEVBQUUsR0FBRztnQ0FDWCxPQUFPLEVBQUUsQ0FBQzs2QkFDWCxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3lCQUMvRCxDQUFDO3FCQUNILGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUM7OEJBSTNDLFlBQVk7c0JBRFgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgdHJpZ2dlciwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW5vdGlmaWNhdGlvbi1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2NvbnRlbnRBbmltYXRpb24nLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignaGlkZGVuIDw9PiB2aXNpYmxlJywgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgXSksXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBNYXRJY29uTW9kdWxlLCBEYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBub3RpZmljYXRpb24hOiBJTm90aWZpY2F0aW9uO1xuICBpc0NvbnRlbnRIaWRkZW4gPSB0cnVlO1xuICBASW5wdXQoKVxuICBleHBhbmQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8SU5vdGlmaWNhdGlvbj4oKTtcblxuICB0b2dnbGVDb250ZW50KCkge1xuICAgIHRoaXMuaXNDb250ZW50SGlkZGVuID0gIXRoaXMuaXNDb250ZW50SGlkZGVuO1xuICB9XG4gIG9uVG9nZ2xlKGl0ZW06IElOb3RpZmljYXRpb24pIHtcbiAgICB0aGlzLnRvZ2dsZS5lbWl0KGl0ZW0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm9yZGVyLWJcIiBbbmdDbGFzc109XCJleHBhbmQgPyAnc2hhZG93IHNoYWRvdy1saWdodC00MDAnIDogJydcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGgtMTYgY3Vyc29yLXBvaW50ZXIgcHgtM1wiXG4gICAgW25nQ2xhc3NdPVwibm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gJ1JFQUQnID8gJ3RleHQtZ3JheS00MDAnIDogJydcIlxuICAgIChjbGljayk9XCJvblRvZ2dsZShub3RpZmljYXRpb24pXCJcbiAgPlxuICAgIDxkaXY+e3sgbm90aWZpY2F0aW9uLnRpdGxlIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG9wYWNpdHktNjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG1yLTNcIj57eyBub3RpZmljYXRpb24uY3JlYXRlZEF0IHwgZGF0ZSB9fTwvZGl2PlxuICAgICAgPG1hdC1pY29uPnt7IGV4cGFuZCA/ICdrZXlib2FyZF9hcnJvd191cCcgOiAna2V5Ym9hcmRfYXJyb3dfZG93bicgfX08L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIFtjbGFzcy5oaWRkZW5dPVwiIWV4cGFuZFwiXG4gICAgW0Bjb250ZW50QW5pbWF0aW9uXT1cImV4cGFuZFwiXG4gICAgY2xhc3M9XCJwLTNcIlxuICAgIFtuZ0NsYXNzXT1cIm5vdGlmaWNhdGlvbi5zdGF0dXMgPT09ICdSRUFEJyA/ICd0ZXh0LWdyYXktNDAwJyA6ICcnXCJcbiAgPlxuICAgIHt7IG5vdGlmaWNhdGlvbi5jb250ZW50IH19XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGl2aWRlXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Component } from '@angular/core';
2
+ import { RouterLinkActive, RouterLink, RouterOutlet } from '@angular/router';
3
+ import * as i0 from "@angular/core";
4
+ export class NotificationLayoutComponent {
5
+ links = [
6
+ {
7
+ name: '全部',
8
+ icon: 'dashboard',
9
+ link: '.',
10
+ },
11
+ {
12
+ name: '课程',
13
+ icon: 'category',
14
+ link: 'course',
15
+ },
16
+ {
17
+ name: '订单',
18
+ icon: 'category',
19
+ link: 'order',
20
+ },
21
+ ];
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: NotificationLayoutComponent, isStandalone: true, selector: "rolatech-notification-layout", ngImport: i0, template: "<div class=\"p-3 max-w-[1120px] m-auto\">\n <div class=\"text-3xl font-medium p-2\">\u901A\u77E5\u4E2D\u5FC3</div>\n <div class=\"flex gap-3 items-center mb-2 p-2\">\n @for (item of links; track $index) {\n <div class=\"font-medium\">\n <a\n class=\"text-gray-600 py-2\"\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >{{ item.name }}</a\n >\n </div>\n }\n </div>\n <div>\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".active{color:#000;border-bottom:4px solid #ff6600}\n"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationLayoutComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'rolatech-notification-layout', standalone: true, imports: [RouterLinkActive, RouterLink, RouterOutlet], template: "<div class=\"p-3 max-w-[1120px] m-auto\">\n <div class=\"text-3xl font-medium p-2\">\u901A\u77E5\u4E2D\u5FC3</div>\n <div class=\"flex gap-3 items-center mb-2 p-2\">\n @for (item of links; track $index) {\n <div class=\"font-medium\">\n <a\n class=\"text-gray-600 py-2\"\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n >{{ item.name }}</a\n >\n </div>\n }\n </div>\n <div>\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".active{color:#000;border-bottom:4px solid #ff6600}\n"] }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24tbGF5b3V0L25vdGlmaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWxheW91dC9ub3RpZmljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTN0UsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxLQUFLLEdBQUc7UUFDTjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsUUFBUTtTQUNmO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRSxPQUFPO1NBQ2Q7S0FDRixDQUFDO3VHQWpCUywyQkFBMkI7MkZBQTNCLDJCQUEyQix3RkNWeEMsMmpCQW1CQSwrR0RYWSxnQkFBZ0IsOE1BQUUsVUFBVSxvT0FBRSxZQUFZOzsyRkFFekMsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDhCQUE4QixjQUc1QixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJMaW5rLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1ub3RpZmljYXRpb24tbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24tbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJMaW5rLCBSb3V0ZXJPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25MYXlvdXRDb21wb25lbnQge1xuICBsaW5rcyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAn5YWo6YOoJyxcbiAgICAgIGljb246ICdkYXNoYm9hcmQnLFxuICAgICAgbGluazogJy4nLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ+ivvueoiycsXG4gICAgICBpY29uOiAnY2F0ZWdvcnknLFxuICAgICAgbGluazogJ2NvdXJzZScsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAn6K6i5Y2VJyxcbiAgICAgIGljb246ICdjYXRlZ29yeScsXG4gICAgICBsaW5rOiAnb3JkZXInLFxuICAgIH0sXG4gIF07XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zIG1heC13LVsxMTIwcHhdIG0tYXV0b1wiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC0zeGwgZm9udC1tZWRpdW0gcC0yXCI+6YCa55+l5Lit5b+DPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zIGl0ZW1zLWNlbnRlciBtYi0yIHAtMlwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIHB5LTJcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGlua1wiXG4gICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgPnt7IGl0ZW0ubmFtZSB9fTwvYVxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export var NotificationStatus;
2
+ (function (NotificationStatus) {
3
+ NotificationStatus[NotificationStatus["UNREAD"] = '未读'] = "UNREAD";
4
+ NotificationStatus[NotificationStatus["READ"] = '已读'] = "READ";
5
+ })(NotificationStatus || (NotificationStatus = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLW5vdGlmaWNhdGlvbi9zcmMvbGliL2ludGVyZmFjZXMvbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQWMsSUFBSSxZQUFBLENBQUE7SUFDbEIsZ0RBQVksSUFBSSxVQUFBLENBQUE7QUFDbEIsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElOb3RpZmljYXRpb24ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBzdGF0dXM6IE5vdGlmaWNhdGlvblN0YXR1cyB8IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuZXhwb3J0IGVudW0gTm90aWZpY2F0aW9uU3RhdHVzIHtcbiAgVU5SRUFEID0gPGFueT4n5pyq6K+7JyxcbiAgUkVBRCA9IDxhbnk+J+W3suivuycsXG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { NotificationIndexComponent } from './components/notification-index/notification-index.component';
2
+ import { NotificationDetailComponent } from './components/notification-detail/notification-detail.component';
3
+ import { NotificationLayoutComponent } from './components/notification-layout/notification-layout.component';
4
+ export const notificationRoutes = [
5
+ {
6
+ path: '',
7
+ component: NotificationLayoutComponent,
8
+ children: [{ path: '', component: NotificationIndexComponent }],
9
+ },
10
+ { path: ':id', component: NotificationDetailComponent },
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1ub3RpZmljYXRpb24vc3JjL2xpYi9ub3RpZmljYXRpb24ucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRTdHLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFXO0lBQ3hDO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQztLQUNoRTtJQUNELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUU7Q0FDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25JbmRleENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24taW5kZXgvbm90aWZpY2F0aW9uLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWRldGFpbC9ub3RpZmljYXRpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWxheW91dC9ub3RpZmljYXRpb24tbGF5b3V0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb25Sb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogTm90aWZpY2F0aW9uTGF5b3V0Q29tcG9uZW50LFxuICAgIGNoaWxkcmVuOiBbeyBwYXRoOiAnJywgY29tcG9uZW50OiBOb3RpZmljYXRpb25JbmRleENvbXBvbmVudCB9XSxcbiAgfSxcbiAgeyBwYXRoOiAnOmlkJywgY29tcG9uZW50OiBOb3RpZmljYXRpb25EZXRhaWxDb21wb25lbnQgfSxcbl07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { NotificationTemplateService } from './notification-template.service';
2
+ import { NotificationService } from './notification.service';
3
+ export { NotificationService, NotificationTemplateService };
4
+ export const services = [NotificationService, NotificationTemplateService];
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFVLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdGlmaWNhdGlvblRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBOb3RpZmljYXRpb25UZW1wbGF0ZVNlcnZpY2UgfTtcbmV4cG9ydCBjb25zdCBzZXJ2aWNlczogYW55W10gPSBbTm90aWZpY2F0aW9uU2VydmljZSwgTm90aWZpY2F0aW9uVGVtcGxhdGVTZXJ2aWNlXTtcbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { APP_CONFIG } from '@rolatech/angular-common';
4
+ import { catchError } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class NotificationTemplateService {
7
+ environment = inject(APP_CONFIG);
8
+ http = inject(HttpClient);
9
+ find(options) {
10
+ return this.http
11
+ .get(`${this.environment.baseUrl}/notifications`, {
12
+ params: options,
13
+ withCredentials: true,
14
+ })
15
+ .pipe(catchError((error) => {
16
+ throw error;
17
+ }));
18
+ }
19
+ me(options) {
20
+ return this.http
21
+ .get(`${this.environment.baseUrl}/notifications/me`, {
22
+ params: options,
23
+ withCredentials: true,
24
+ })
25
+ .pipe(catchError((error) => {
26
+ throw error;
27
+ }));
28
+ }
29
+ get(id) {
30
+ return this.http
31
+ .get(`${this.environment.baseUrl}/notifications/${id}`, {
32
+ withCredentials: true,
33
+ })
34
+ .pipe(catchError((error) => {
35
+ throw error;
36
+ }));
37
+ }
38
+ read(ids) {
39
+ return this.http
40
+ .get(`${this.environment.baseUrl}/notifications/${ids}`, {
41
+ withCredentials: true,
42
+ })
43
+ .pipe(catchError((error) => {
44
+ throw error;
45
+ }));
46
+ }
47
+ delete(id) {
48
+ return this.http
49
+ .get(`${this.environment.baseUrl}/notifications/${id}`, {
50
+ withCredentials: true,
51
+ })
52
+ .pipe(catchError((error) => {
53
+ throw error;
54
+ }));
55
+ }
56
+ findByUserId(userId) {
57
+ return this.http
58
+ .get(`${this.environment.baseUrl}/notifications/by?userId=${userId}`, {
59
+ withCredentials: true,
60
+ })
61
+ .pipe(catchError((error) => {
62
+ throw error;
63
+ }));
64
+ }
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
66
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationTemplateService, providedIn: 'root' });
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: NotificationTemplateService, decorators: [{
69
+ type: Injectable,
70
+ args: [{
71
+ providedIn: 'root',
72
+ }]
73
+ }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItbm90aWZpY2F0aW9uL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLXRlbXBsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtsQyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxQixJQUFJLENBQUMsT0FBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sZ0JBQWdCLEVBQUU7WUFDckQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxFQUFFLENBQUMsT0FBWTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sbUJBQW1CLEVBQUU7WUFDeEQsTUFBTSxFQUFFLE9BQU87WUFDZixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxHQUFHLENBQUMsRUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUksQ0FBQyxHQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLGtCQUFrQixHQUFHLEVBQUUsRUFBRTtZQUM1RCxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNLENBQUMsRUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1lBQzNELGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sNEJBQTRCLE1BQU0sRUFBRSxFQUFFO1lBQ3pFLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzt1R0F2RVUsMkJBQTJCOzJHQUEzQiwyQkFBMkIsY0FGMUIsTUFBTTs7MkZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQUF9DT05GSUcgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uVGVtcGxhdGVTZXJ2aWNlIHtcbiAgZW52aXJvbm1lbnQgPSBpbmplY3QoQVBQX0NPTkZJRyk7XG4gIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgZmluZChvcHRpb25zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zYCwge1xuICAgICAgICBwYXJhbXM6IG9wdGlvbnMsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbiAgbWUob3B0aW9uczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy9tZWAsIHtcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICByZWFkKGlkczogQXJyYXk8c3RyaW5nPikge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLmVudmlyb25tZW50LmJhc2VVcmx9L25vdGlmaWNhdGlvbnMvJHtpZHN9YCwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnk+KGAke3RoaXMuZW52aXJvbm1lbnQuYmFzZVVybH0vbm90aWZpY2F0aW9ucy8ke2lkfWAsIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICBmaW5kQnlVc2VySWQodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5lbnZpcm9ubWVudC5iYXNlVXJsfS9ub3RpZmljYXRpb25zL2J5P3VzZXJJZD0ke3VzZXJJZH1gLCB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==