@sumaris-net/ngx-components 1.21.8 → 1.22.1

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 (62) hide show
  1. package/bundles/sumaris-net.ngx-components.umd.js +4056 -2920
  2. package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
  3. package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
  4. package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
  5. package/doc/changelog.md +6 -0
  6. package/esm2015/public_api.js +8 -1
  7. package/esm2015/src/app/core/core.module.js +5 -5
  8. package/esm2015/src/app/core/icon/icon.component.js +5 -2
  9. package/esm2015/src/app/core/icon/icon.module.js +26 -0
  10. package/esm2015/src/app/core/menu/menu.component.js +9 -5
  11. package/esm2015/src/app/core/menu/menu.model.js +3 -1
  12. package/esm2015/src/app/core/menu/menu.module.js +4 -2
  13. package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +9 -5
  14. package/esm2015/src/app/shared/types.js +1 -1
  15. package/esm2015/src/app/social/job/job.model.js +26 -0
  16. package/esm2015/src/app/social/job/job.module.js +25 -0
  17. package/esm2015/src/app/social/job/job.service.js +54 -0
  18. package/esm2015/src/app/social/job/progression/job-progression.component.js +200 -0
  19. package/esm2015/src/app/social/job/progression/job-progression.list.js +20 -0
  20. package/esm2015/src/app/social/message/message.module.js +25 -0
  21. package/esm2015/src/app/social/social.errors.js +5 -2
  22. package/esm2015/src/app/social/social.module.js +10 -15
  23. package/esm2015/src/app/social/user-event/notification/user-event-notification.component.js +89 -0
  24. package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +78 -0
  25. package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +73 -0
  26. package/esm2015/src/app/social/user-event/user-event.model.js +58 -2
  27. package/esm2015/src/app/social/user-event/user-event.module.js +33 -0
  28. package/esm2015/src/app/social/user-event/user-event.service.js +412 -173
  29. package/esm2015/src/app/social/user-event/user-events.table.js +18 -13
  30. package/esm2015/sumaris-net.ngx-components.js +17 -13
  31. package/fesm2015/sumaris-net.ngx-components.js +3269 -2374
  32. package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
  33. package/package.json +1 -1
  34. package/public_api.d.ts +7 -0
  35. package/src/app/core/icon/icon.component.d.ts +4 -4
  36. package/src/app/core/icon/icon.module.d.ts +2 -0
  37. package/src/app/core/menu/menu.component.d.ts +7 -5
  38. package/src/app/core/menu/menu.model.d.ts +3 -0
  39. package/src/app/shared/material/badge/badge-icon.test.d.ts +1 -1
  40. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +6 -2
  41. package/src/app/shared/types.d.ts +4 -0
  42. package/src/app/social/job/job.model.d.ts +33 -0
  43. package/src/app/social/job/job.module.d.ts +2 -0
  44. package/src/app/social/job/job.service.d.ts +23 -0
  45. package/src/app/social/job/progression/job-progression.component.d.ts +44 -0
  46. package/src/app/social/job/progression/job-progression.list.d.ts +12 -0
  47. package/src/app/social/message/message.module.d.ts +2 -0
  48. package/src/app/social/social.errors.d.ts +3 -0
  49. package/src/app/social/social.module.d.ts +8 -0
  50. package/src/app/social/user-event/notification/user-event-notification.component.d.ts +22 -0
  51. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +30 -0
  52. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +35 -0
  53. package/src/app/social/user-event/user-event.model.d.ts +52 -8
  54. package/src/app/social/user-event/user-event.module.d.ts +2 -0
  55. package/src/app/social/user-event/user-event.service.d.ts +101 -51
  56. package/src/app/social/user-event/user-events.table.d.ts +6 -6
  57. package/src/assets/i18n/en-US.json +17 -3
  58. package/src/assets/i18n/en.json +18 -3
  59. package/src/assets/i18n/fr.json +17 -2
  60. package/src/theme/_ngx-components.scss +8 -0
  61. package/sumaris-net.ngx-components.d.ts +16 -12
  62. package/sumaris-net.ngx-components.metadata.json +1 -1
@@ -0,0 +1,89 @@
1
+ import { __awaiter } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional } from '@angular/core';
3
+ import { PopoverController } from '@ionic/angular';
4
+ import { UserEventServiceToken } from '../user-event.service';
5
+ import { UserEventNotificationList } from './user-event-notification.list';
6
+ import { AccountService } from '../../../core/services/account.service';
7
+ import { map } from 'rxjs/operators';
8
+ import { isNil } from '../../../shared/functions';
9
+ export class UserEventNotificationComponent {
10
+ constructor(userEventService, accountService, popoverController) {
11
+ this.userEventService = userEventService;
12
+ this.accountService = accountService;
13
+ this.popoverController = popoverController;
14
+ this.debug = false;
15
+ this.titleI18n = 'SOCIAL.USER_EVENT.NOTIFICATION.TITLE';
16
+ this.disabled = false;
17
+ this._logPrefix = '[user-event-notification] ';
18
+ this._readEvent = new EventEmitter();
19
+ this._readEvents = new EventEmitter();
20
+ }
21
+ get count() {
22
+ var _a;
23
+ return (_a = this.userEventService) === null || _a === void 0 ? void 0 : _a.userEventCount.pipe(map(value => value === 0 ? undefined : value));
24
+ }
25
+ ngOnInit() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ if (isNil(this.userEventService)) {
28
+ console.warn(`${this._logPrefix}No service injected`);
29
+ this.disabled = true;
30
+ return;
31
+ }
32
+ // Wait service
33
+ yield this.userEventService.ready();
34
+ // Subscribe to read event
35
+ this._readEvent.subscribe(value => {
36
+ // default: mark event as read
37
+ this.userEventService.markAsRead([value]);
38
+ });
39
+ this._readEvents.subscribe(value => {
40
+ this.userEventService.markAsRead(value);
41
+ });
42
+ });
43
+ }
44
+ showList(event) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ // Reset count
47
+ this.userEventService.resetCount();
48
+ const popover = yield this.popoverController.create({
49
+ component: UserEventNotificationList,
50
+ componentProps: {
51
+ debug: this.debug,
52
+ titleI18n: this.titleI18n,
53
+ readEvent: this._readEvent,
54
+ readEvents: this._readEvents
55
+ },
56
+ backdropDismiss: true,
57
+ keyboardClose: true,
58
+ event,
59
+ translucent: true,
60
+ cssClass: 'popover-large'
61
+ });
62
+ yield popover.present();
63
+ });
64
+ }
65
+ ngOnDestroy() {
66
+ if (this.debug) {
67
+ console.debug(`${this._logPrefix}Destroying`);
68
+ }
69
+ }
70
+ }
71
+ UserEventNotificationComponent.decorators = [
72
+ { type: Component, args: [{
73
+ selector: 'app-user-event-notification-component',
74
+ template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"count | async\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >notifications\n </mat-icon>\n</button>\n\n",
75
+ changeDetection: ChangeDetectionStrategy.OnPush,
76
+ styles: [""]
77
+ },] }
78
+ ];
79
+ UserEventNotificationComponent.ctorParameters = () => [
80
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [UserEventServiceToken,] }] },
81
+ { type: AccountService },
82
+ { type: PopoverController }
83
+ ];
84
+ UserEventNotificationComponent.propDecorators = {
85
+ debug: [{ type: Input }],
86
+ titleI18n: [{ type: Input }],
87
+ disabled: [{ type: Input }]
88
+ };
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBb0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVFsRCxNQUFNLE9BQU8sOEJBQThCO0lBY3pDLFlBQ29ELGdCQUEyRSxFQUNuSCxjQUE4QixFQUM5QixpQkFBb0M7UUFGSSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJEO1FBQ25ILG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBZnZDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQUcsc0NBQXNDLENBQUM7UUFDbkQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1sQixlQUFVLEdBQUcsNEJBQTRCLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ2pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFNeEQsQ0FBQztJQVpMLElBQUksS0FBSzs7UUFDUCxhQUFPLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ25HLENBQUM7SUFZSyxRQUFROztZQUVaLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUscUJBQXFCLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU87YUFDUjtZQUVELGVBQWU7WUFDZixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVwQywwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2hDLDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxLQUFjOztZQUMzQixjQUFjO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRW5DLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztnQkFDbEQsU0FBUyxFQUFFLHlCQUF5QjtnQkFDcEMsY0FBYyxFQUFvQztvQkFDaEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7b0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO2lCQUM3QjtnQkFDRCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLEtBQUs7Z0JBQ0wsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFFBQVEsRUFBRSxlQUFlO2FBQzFCLENBQUMsQ0FBQztZQUNILE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLENBQUM7S0FBQTtJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsWUFBWSxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDOzs7WUF4RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx1Q0FBdUM7Z0JBQ2pELG1WQUF1RDtnQkFFdkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7NENBZ0JJLFFBQVEsWUFBSSxNQUFNLFNBQUMscUJBQXFCO1lBekJwQyxjQUFjO1lBSmQsaUJBQWlCOzs7b0JBZ0J2QixLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElVc2VyRXZlbnRTZXJ2aWNlLCBVc2VyRXZlbnRTZXJ2aWNlVG9rZW4gfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdCwgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuaW1wb3J0IHsgSVVzZXJFdmVudCwgSVVzZXJFdmVudEZpbHRlciB9IGZyb20gJy4uL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24tY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50Tm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlSTE4biA9ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uVElUTEUnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGdldCBjb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJFdmVudFNlcnZpY2U/LnVzZXJFdmVudENvdW50LnBpcGUobWFwKHZhbHVlID0+IHZhbHVlID09PSAwID8gdW5kZWZpbmVkIDogdmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvZ1ByZWZpeCA9ICdbdXNlci1ldmVudC1ub3RpZmljYXRpb25dICc7XG4gIHByaXZhdGUgX3JlYWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8SVVzZXJFdmVudDxhbnk+PigpO1xuICBwcml2YXRlIF9yZWFkRXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxJVXNlckV2ZW50PGFueT5bXT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVzZXJFdmVudFNlcnZpY2VUb2tlbikgcHVibGljIHVzZXJFdmVudFNlcnZpY2U6IElVc2VyRXZlbnRTZXJ2aWNlPElVc2VyRXZlbnQ8YW55PiwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PixcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXJcbiAgKSB7IH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcblxuICAgIGlmIChpc05pbCh0aGlzLnVzZXJFdmVudFNlcnZpY2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fU5vIHNlcnZpY2UgaW5qZWN0ZWRgKTtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFdhaXQgc2VydmljZVxuICAgIGF3YWl0IHRoaXMudXNlckV2ZW50U2VydmljZS5yZWFkeSgpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHJlYWQgZXZlbnRcbiAgICB0aGlzLl9yZWFkRXZlbnQuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIC8vIGRlZmF1bHQ6IG1hcmsgZXZlbnQgYXMgcmVhZFxuICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLm1hcmtBc1JlYWQoW3ZhbHVlXSk7XG4gICAgfSk7XG4gICAgdGhpcy5fcmVhZEV2ZW50cy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLm1hcmtBc1JlYWQodmFsdWUpO1xuICAgIH0pXG4gIH1cblxuICBhc3luYyBzaG93TGlzdChldmVudDogVUlFdmVudCkge1xuICAgIC8vIFJlc2V0IGNvdW50XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLnJlc2V0Q291bnQoKTtcblxuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QsXG4gICAgICBjb21wb25lbnRQcm9wczogPFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPntcbiAgICAgICAgZGVidWc6IHRoaXMuZGVidWcsXG4gICAgICAgIHRpdGxlSTE4bjogdGhpcy50aXRsZUkxOG4sXG4gICAgICAgIHJlYWRFdmVudDogdGhpcy5fcmVhZEV2ZW50LFxuICAgICAgICByZWFkRXZlbnRzOiB0aGlzLl9yZWFkRXZlbnRzXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAga2V5Ym9hcmRDbG9zZTogdHJ1ZSxcbiAgICAgIGV2ZW50LFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBjc3NDbGFzczogJ3BvcG92ZXItbGFyZ2UnXG4gICAgfSk7XG4gICAgYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RGVzdHJveWluZ2ApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,78 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, Output } from '@angular/core';
2
+ import { BehaviorSubject, Subscription } from 'rxjs';
3
+ import { PopoverController } from '@ionic/angular';
4
+ import { UserEventServiceToken } from '../user-event.service';
5
+ export class UserEventNotificationList {
6
+ constructor(cd, popoverController, userEventService) {
7
+ this.cd = cd;
8
+ this.popoverController = popoverController;
9
+ this.userEventService = userEventService;
10
+ this.debug = false;
11
+ this.userEvents = new BehaviorSubject(undefined);
12
+ this.subscriptions = new Subscription();
13
+ }
14
+ ngOnInit() {
15
+ // Watch all user events
16
+ this.subscriptions.add(this.userEventService
17
+ .watchAll(0, 10, 'creationDate', "desc", undefined)
18
+ .subscribe(result => {
19
+ if (this.debug)
20
+ console.debug(`[user-event-notification-list] receiving ${result.total} user events`, result.data);
21
+ this.userEvents.next(result.data);
22
+ this.markForCheck();
23
+ }));
24
+ // Listen changes
25
+ this.subscriptions.add(this.userEventService.listenChanges(undefined)
26
+ .subscribe(data => {
27
+ if (this.debug)
28
+ console.debug(`[user-event-notification-list] receiving ${data.length} new user events`, data);
29
+ }));
30
+ }
31
+ ngOnDestroy() {
32
+ this.subscriptions.unsubscribe();
33
+ }
34
+ read(event, userEvent) {
35
+ var _a;
36
+ if (userEvent === null || userEvent === void 0 ? void 0 : userEvent.readDate)
37
+ return;
38
+ (_a = this.readEvent) === null || _a === void 0 ? void 0 : _a.emit(userEvent);
39
+ }
40
+ readAll(event) {
41
+ var _a;
42
+ const unreadUserEvents = (this.userEvents.value || []).filter(value => !value.readDate);
43
+ if (!unreadUserEvents.length)
44
+ return;
45
+ (_a = this.readEvents) === null || _a === void 0 ? void 0 : _a.emit(unreadUserEvents);
46
+ }
47
+ executeAction(action, userEvent) {
48
+ // Execute then close popover
49
+ action.executeAction(userEvent);
50
+ this.dismiss();
51
+ }
52
+ dismiss() {
53
+ this.popoverController.dismiss();
54
+ }
55
+ markForCheck() {
56
+ this.cd.markForCheck();
57
+ }
58
+ }
59
+ UserEventNotificationList.decorators = [
60
+ { type: Component, args: [{
61
+ selector: 'app-user-event-notification-list',
62
+ template: "\n<ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col class=\"top-action\" *ngIf=\"userEvents|async|isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"readAll($event)\">{{'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate}}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ion-item *ngIf=\"userEvents|async|isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}</ion-text>\n </ion-item>\n <ion-item\n *ngFor=\"let userEvent of userEvents | async\"\n (click)=\"read($event, userEvent)\"\n >\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"userEvent.avatar; else avatarIcon\" src=\"{{ userEvent.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"userEvent.avatarIcon\"\n [ref]=\"userEvent.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col>\n <p [class.unread]=\"!userEvent.readDate\" [innerHTML]=\"userEvent.message\"></p>\n </ion-col>\n </ion-row>\n <ion-row *ngIf=\"userEvent.actions?.length\">\n <ion-col>\n <span *ngFor=\"let action of userEvent.actions\" class=\"action\">\n <a (click)=\"executeAction(action, userEvent)\">\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n {{ action.name }}\n </a>\n </span>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <app-icon\n *ngIf=\"userEvent.icon\"\n [ref]=\"userEvent.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{userEvent.creationDate|dateFromNow}}</span>\n <span style=\"color: gray\">{{ ' | ' + (userEvent.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-item>\n\n <ion-row class=\"ion-list-footer column\">\n </ion-row>\n\n</ion-list>\n",
63
+ changeDetection: ChangeDetectionStrategy.OnPush,
64
+ styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.unread{font-weight:700}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}.action a{margin-right:10px;cursor:pointer}.action app-icon{vertical-align:middle}"]
65
+ },] }
66
+ ];
67
+ UserEventNotificationList.ctorParameters = () => [
68
+ { type: ChangeDetectorRef },
69
+ { type: PopoverController },
70
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [UserEventServiceToken,] }] }
71
+ ];
72
+ UserEventNotificationList.propDecorators = {
73
+ debug: [{ type: Input }],
74
+ titleI18n: [{ type: Input }],
75
+ readEvent: [{ type: Output }],
76
+ readEvents: [{ type: Output }]
77
+ };
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBZ0IsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFlakYsTUFBTSxPQUFPLHlCQUF5QjtJQVVwQyxZQUNZLEVBQXFCLEVBQ3JCLGlCQUFvQyxFQUNJLGdCQUEyRTtRQUZuSCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ0kscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyRDtRQVh0SCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBS3ZCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsU0FBUyxDQUFDLENBQUM7UUFDckQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBTzdDLENBQUM7SUFFRCxRQUFRO1FBRU4sd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO2FBQ2xELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLE1BQU0sQ0FBQyxLQUFLLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2pDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQzthQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxJQUFJLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqSCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYyxFQUFFLFNBQTBCOztRQUM3QyxJQUFJLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxRQUFRO1lBQUUsT0FBTztRQUNoQyxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7SUFDbEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFjOztRQUNwQixNQUFNLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3JDLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO0lBQzFDLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBdUIsRUFBRSxTQUEwQjtRQUMvRCw2QkFBNkI7UUFDN0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7WUF4RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLDI1RUFBa0Q7Z0JBRWxELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBbEJpQyxpQkFBaUI7WUFHMUMsaUJBQWlCOzRDQTZCckIsUUFBUSxZQUFJLE1BQU0sU0FBQyxxQkFBcUI7OztvQkFYMUMsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLE1BQU07eUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVXNlckV2ZW50LCBJVXNlckV2ZW50RmlsdGVyLCBVc2VyRXZlbnRBY3Rpb24gfSBmcm9tICcuLi91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IElVc2VyRXZlbnRTZXJ2aWNlLCBVc2VyRXZlbnRTZXJ2aWNlVG9rZW4gfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zIHtcbiAgZGVidWc/OiBib29sZWFuO1xuICB0aXRsZUkxOG4/OiBzdHJpbmc7XG4gIHJlYWRFdmVudD86IEV2ZW50RW1pdHRlcjxJVXNlckV2ZW50PGFueT4+O1xuICByZWFkRXZlbnRzPzogRXZlbnRFbWl0dGVyPElVc2VyRXZlbnQ8YW55PltdPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnMge1xuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlSTE4bjogc3RyaW5nO1xuICBAT3V0cHV0KCkgcmVhZEV2ZW50OiBFdmVudEVtaXR0ZXI8SVVzZXJFdmVudDxhbnk+PjtcbiAgQE91dHB1dCgpIHJlYWRFdmVudHM6IEV2ZW50RW1pdHRlcjxJVXNlckV2ZW50PGFueT5bXT47XG5cbiAgdXNlckV2ZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVVzZXJFdmVudDxhbnk+W10+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVzZXJFdmVudFNlcnZpY2VUb2tlbikgcHVibGljIHVzZXJFdmVudFNlcnZpY2U6IElVc2VyRXZlbnRTZXJ2aWNlPElVc2VyRXZlbnQ8YW55PiwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PixcbiAgKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIC8vIFdhdGNoIGFsbCB1c2VyIGV2ZW50c1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2VcbiAgICAgICAgLndhdGNoQWxsKDAsIDEwLCAnY3JlYXRpb25EYXRlJywgXCJkZXNjXCIsIHVuZGVmaW5lZClcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gcmVjZWl2aW5nICR7cmVzdWx0LnRvdGFsfSB1c2VyIGV2ZW50c2AsIHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICB0aGlzLnVzZXJFdmVudHMubmV4dChyZXN1bHQuZGF0YSlcbiAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBMaXN0ZW4gY2hhbmdlc1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UubGlzdGVuQ2hhbmdlcyh1bmRlZmluZWQpXG4gICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYFt1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSByZWNlaXZpbmcgJHtkYXRhLmxlbmd0aH0gbmV3IHVzZXIgZXZlbnRzYCwgZGF0YSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcmVhZChldmVudDogVUlFdmVudCwgdXNlckV2ZW50OiBJVXNlckV2ZW50PGFueT4pIHtcbiAgICBpZiAodXNlckV2ZW50Py5yZWFkRGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50Py5lbWl0KHVzZXJFdmVudCk7XG4gIH1cblxuICByZWFkQWxsKGV2ZW50OiBVSUV2ZW50KSB7XG4gICAgY29uc3QgdW5yZWFkVXNlckV2ZW50cyA9ICh0aGlzLnVzZXJFdmVudHMudmFsdWUgfHwgW10pLmZpbHRlcih2YWx1ZSA9PiAhdmFsdWUucmVhZERhdGUpO1xuICAgIGlmICghdW5yZWFkVXNlckV2ZW50cy5sZW5ndGgpIHJldHVybjtcbiAgICB0aGlzLnJlYWRFdmVudHM/LmVtaXQodW5yZWFkVXNlckV2ZW50cyk7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKGFjdGlvbjogVXNlckV2ZW50QWN0aW9uLCB1c2VyRXZlbnQ6IElVc2VyRXZlbnQ8YW55Pikge1xuICAgIC8vIEV4ZWN1dGUgdGhlbiBjbG9zZSBwb3BvdmVyXG4gICAgYWN0aW9uLmV4ZWN1dGVBY3Rpb24odXNlckV2ZW50KTtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgfVxuXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
+ import { AbstractUserEventService } from '../user-event.service';
4
+ import { UserEvent } from '../user-event.model';
5
+ import { of } from 'rxjs';
6
+ import { GraphqlService } from '../../../core/graphql/graphql.service';
7
+ import { AccountService } from '../../../core/services/account.service';
8
+ import { NetworkService } from '../../../core/services/network.service';
9
+ import { TranslateService } from '@ngx-translate/core';
10
+ import { Environment, ENVIRONMENT } from '../../../../environments/environment.class';
11
+ export class UserEventTestService extends AbstractUserEventService {
12
+ constructor(graphql, accountService, network, translate, environment) {
13
+ super(graphql, accountService, network, translate, undefined, undefined, undefined, environment);
14
+ this.graphql = graphql;
15
+ this.accountService = accountService;
16
+ this.network = network;
17
+ this.translate = translate;
18
+ this.environment = environment;
19
+ this.userEvents = [];
20
+ }
21
+ fromObject(source) {
22
+ return UserEvent.fromObject(source);
23
+ }
24
+ add(entity) {
25
+ entity = this.processUserEvent(entity);
26
+ entity.id = this.userEvents.length + 1;
27
+ this.userEvents.push(entity);
28
+ this.count$.next(this.userEvents.length);
29
+ }
30
+ asFilter(filter) {
31
+ return filter;
32
+ }
33
+ count(filter, options) {
34
+ return Promise.resolve(this.userEvents.length);
35
+ }
36
+ delete(entity) {
37
+ return Promise.resolve(undefined);
38
+ }
39
+ deleteAll(data, opts) {
40
+ return Promise.resolve(undefined);
41
+ }
42
+ listenChanges(filter, options) {
43
+ return of();
44
+ }
45
+ save(entity, options) {
46
+ var _a;
47
+ const toSave = (_a = this.userEvents) === null || _a === void 0 ? void 0 : _a.find(value => value.id == (entity === null || entity === void 0 ? void 0 : entity.id));
48
+ Object.assign(toSave, entity);
49
+ return entity;
50
+ }
51
+ saveAll(data, opts) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ for (const entity of (data || [])) {
54
+ yield this.save(entity);
55
+ }
56
+ return Promise.resolve(this.userEvents);
57
+ });
58
+ }
59
+ watchAll(offset, size, sortBy, sortDirection, filter, options) {
60
+ return of({ data: this.userEvents });
61
+ }
62
+ }
63
+ UserEventTestService.decorators = [
64
+ { type: Injectable }
65
+ ];
66
+ UserEventTestService.ctorParameters = () => [
67
+ { type: GraphqlService },
68
+ { type: AccountService },
69
+ { type: NetworkService },
70
+ { type: TranslateService },
71
+ { type: Environment, decorators: [{ type: Optional }, { type: Inject, args: [ENVIRONMENT,] }] }
72
+ ];
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC50ZXN0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3Rlc3RpbmcvdXNlci1ldmVudC50ZXN0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQXlCLE1BQU0sdUJBQXVCLENBQUM7QUFDeEYsT0FBTyxFQUFjLFNBQVMsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFNdEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHdCQUFvRDtJQUk1RixZQUNZLE9BQXVCLEVBQ3ZCLGNBQThCLEVBQzlCLE9BQXVCLEVBQ3ZCLFNBQTJCLEVBQ00sV0FBd0I7UUFFbkUsS0FBSyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQU52RixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDTSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVA3RCxlQUFVLEdBQXNCLEVBQUUsQ0FBQztJQVUzQyxDQUFDO0lBR0QsVUFBVSxDQUFDLE1BQVc7UUFDcEIsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBdUI7UUFDekIsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBb0I7UUFDM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFXLEVBQUUsT0FBdUM7UUFDeEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFXO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVcsRUFBRSxJQUFVO1FBQy9CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQVcsRUFBRSxPQUFrRjtRQUMzRyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFXLEVBQUUsT0FBa0M7O1FBRWxELE1BQU0sTUFBTSxTQUFHLElBQUksQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEVBQUUsQ0FBQSxDQUFDLENBQUM7UUFDdEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVLLE9BQU8sQ0FBQyxJQUFXLEVBQUUsSUFBVTs7WUFFbkMsS0FBSyxNQUFNLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDakMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxNQUFlLEVBQUUsYUFBNkIsRUFBRSxNQUFxQixFQUFFLE9BQStCO1FBQzNJLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQWxFRixVQUFVOzs7WUFURixjQUFjO1lBQ2QsY0FBYztZQUNkLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsV0FBVyx1QkFlZixRQUFRLFlBQUksTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFVzZXJFdmVudFNlcnZpY2UsIFVzZXJFdmVudFdhdGNoT3B0aW9ucyB9IGZyb20gJy4uL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJVXNlckV2ZW50LCBVc2VyRXZlbnQsIFVzZXJFdmVudEZpbHRlciB9IGZyb20gJy4uL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7IEZldGNoUG9saWN5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsIExvYWRSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50VGVzdFNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdFVzZXJFdmVudFNlcnZpY2U8VXNlckV2ZW50LCBVc2VyRXZlbnRGaWx0ZXI+IHtcblxuICBwcml2YXRlIHVzZXJFdmVudHM6IElVc2VyRXZlbnQ8YW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5ldHdvcms6IE5ldHdvcmtTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFxuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBhY2NvdW50U2VydmljZSwgbmV0d29yaywgdHJhbnNsYXRlLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBlbnZpcm9ubWVudCk7XG4gIH1cblxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpOiBVc2VyRXZlbnQge1xuICAgIHJldHVybiBVc2VyRXZlbnQuZnJvbU9iamVjdChzb3VyY2UpO1xuICB9XG5cbiAgYWRkKGVudGl0eTogSVVzZXJFdmVudDxhbnk+KSB7XG4gICAgZW50aXR5ID0gdGhpcy5wcm9jZXNzVXNlckV2ZW50KGVudGl0eSk7XG4gICAgZW50aXR5LmlkID0gdGhpcy51c2VyRXZlbnRzLmxlbmd0aCArIDE7XG4gICAgdGhpcy51c2VyRXZlbnRzLnB1c2goZW50aXR5KTtcbiAgICB0aGlzLmNvdW50JC5uZXh0KHRoaXMudXNlckV2ZW50cy5sZW5ndGgpO1xuICB9XG5cbiAgYXNGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPGFueT4pOiBhbnkge1xuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBjb3VudChmaWx0ZXI6IGFueSwgb3B0aW9ucz86IHsgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeSB9KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMudXNlckV2ZW50cy5sZW5ndGgpO1xuICB9XG5cbiAgZGVsZXRlKGVudGl0eTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBkZWxldGVBbGwoZGF0YTogYW55W10sIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIGxpc3RlbkNoYW5nZXMoZmlsdGVyOiBhbnksIG9wdGlvbnM/OiBVc2VyRXZlbnRXYXRjaE9wdGlvbnMgJiB7IGludGVydmFsPzogbnVtYmVyOyBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5IH0pOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIG9mKCk7XG4gIH1cblxuICBzYXZlKGVudGl0eTogYW55LCBvcHRpb25zPzogRW50aXR5U2VydmljZUxvYWRPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGNvbnN0IHRvU2F2ZSA9IHRoaXMudXNlckV2ZW50cz8uZmluZCh2YWx1ZSA9PiB2YWx1ZS5pZCA9PSBlbnRpdHk/LmlkKTtcbiAgICBPYmplY3QuYXNzaWduKHRvU2F2ZSwgZW50aXR5KTtcblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IGFueVtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnlbXT4ge1xuXG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgKGRhdGEgfHwgW10pKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmUoZW50aXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMudXNlckV2ZW50cyk7XG4gIH1cblxuICB3YXRjaEFsbChvZmZzZXQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLCBmaWx0ZXI/OiBQYXJ0aWFsPGFueT4sIG9wdGlvbnM/OiBVc2VyRXZlbnRXYXRjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8YW55Pj4ge1xuICAgIHJldHVybiBvZih7IGRhdGE6IHRoaXMudXNlckV2ZW50cyB9KTtcbiAgfVxuXG59XG4iXX0=
@@ -1,8 +1,10 @@
1
1
  var UserEvent_1;
2
2
  import { __decorate } from "tslib";
3
3
  import { Entity } from '../../core/services/model/entity.model';
4
- import { fromDateISOString } from '../../shared/dates';
4
+ import { fromDateISOString, toDateISOString } from '../../shared/dates';
5
5
  import { EntityClass } from '../../core/services/model/entity.decorators';
6
+ import { EntityFilter } from '../../core/services/model/filter.model';
7
+ import { isNil, isNotEmptyArray, isNotNil } from '../../shared/functions';
6
8
  export const UserEventTypes = {
7
9
  DEBUG_DATA: 'DEBUG_DATA',
8
10
  INBOX_MESSAGE: 'INBOX_MESSAGE'
@@ -14,16 +16,23 @@ let UserEvent = UserEvent_1 = class UserEvent extends Entity {
14
16
  }
15
17
  asObject(opts) {
16
18
  const target = super.asObject(opts);
19
+ target.creationDate = toDateISOString(this.creationDate);
20
+ target.readDate = toDateISOString(this.readDate);
17
21
  // Serialize content
18
22
  if (typeof target.content === 'object') {
19
23
  target.content = JSON.stringify(target.content);
20
24
  }
25
+ delete target.avatar;
26
+ delete target.avatarIcon;
27
+ delete target.icon;
28
+ delete target.actions;
21
29
  return target;
22
30
  }
23
31
  fromObject(source) {
24
32
  Object.assign(this, source); // Copy all properties
25
33
  super.fromObject(source);
26
34
  this.creationDate = fromDateISOString(source.creationDate);
35
+ this.readDate = fromDateISOString(source.readDate);
27
36
  try {
28
37
  // Deserialize content
29
38
  if (typeof source.content === 'string' && source.content.startsWith('{')) {
@@ -43,4 +52,51 @@ UserEvent = UserEvent_1 = __decorate([
43
52
  EntityClass({ typename: 'UserEventVO' })
44
53
  ], UserEvent);
45
54
  export { UserEvent };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQWlDLE1BQU0sd0NBQXdDLENBQUM7QUFFOUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixVQUFVLEVBQUUsWUFBWTtJQUN4QixhQUFhLEVBQUUsZUFBZTtDQUMvQixDQUFDO0FBRUYsV0FBVztJQUVFLFNBQVMsdUJBQVQsU0FBVSxTQUFRLE1BQWlCO0lBYzlDO1FBQ0UsS0FBSyxDQUFDLFdBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQTRCO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsb0JBQW9CO1FBQ3BCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBQ25ELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsSUFBSTtZQUNGLHNCQUFzQjtZQUN0QixJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0M7WUFFRCw4QkFBOEI7WUFDOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3pEO1NBQ0Y7UUFDRCxPQUFNLEdBQUcsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQWpEWSxTQUFTO0lBRHJCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQztHQUMxQixTQUFTLENBaURyQjtTQWpEWSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0VudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zLCBJRW50aXR5fSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7ZnJvbURhdGVJU09TdHJpbmd9IGZyb20gJy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQge0VudGl0eUNsYXNzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IFVzZXJFdmVudFR5cGVzID0ge1xuICBERUJVR19EQVRBOiAnREVCVUdfREFUQScsXG4gIElOQk9YX01FU1NBR0U6ICdJTkJPWF9NRVNTQUdFJ1xufTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdVc2VyRXZlbnRWTyd9KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudCBleHRlbmRzIEVudGl0eTxVc2VyRXZlbnQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBVc2VyRXZlbnQ7XG5cbiAgZXZlbnRUeXBlOiBzdHJpbmc7XG4gIGlzc3Vlcjogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgdXBkYXRlRGF0ZTogTW9tZW50O1xuICBjcmVhdGlvbkRhdGU6IE1vbWVudDtcblxuICBjb250ZW50OiBzdHJpbmcgfCBhbnk7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICByZWFkU2lnbmF0dXJlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVXNlckV2ZW50LlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldCA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuXG4gICAgLy8gU2VyaWFsaXplIGNvbnRlbnRcbiAgICBpZiAodHlwZW9mIHRhcmdldC5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgdGFyZ2V0LmNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0YXJnZXQuY29udGVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHNvdXJjZSk7IC8vIENvcHkgYWxsIHByb3BlcnRpZXNcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBEZXNlcmlhbGl6ZSBjb250ZW50XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZS5jb250ZW50ID09PSAnc3RyaW5nJyAmJiBzb3VyY2UuY29udGVudC5zdGFydHNXaXRoKCd7JykpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gSlNPTi5wYXJzZShzb3VyY2UuY29udGVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERlc2VyaWFsaXplIGNvbnRlbnQuY29udGV4dFxuICAgICAgaWYgKHRoaXMuY29udGVudCAmJiB0eXBlb2YgdGhpcy5jb250ZW50LmNvbnRleHQgPT09ICdzdHJpbmcnICYmIHRoaXMuY29udGVudC5jb250ZXh0LnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICB0aGlzLmNvbnRlbnQuY29udGV4dCA9IEpTT04ucGFyc2UodGhpcy5jb250ZW50LmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICBjYXRjaChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBVc2VyRXZlbnQgZGVzZXJpYWxpemF0aW9uJywgZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudEFjdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxUPj4ge1xuXG4gIG5hbWU6IHN0cmluZyB8IGFueTtcbiAgdGl0bGU/OiBzdHJpbmc7XG5cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBQcmVkZWZpbmVkQ29sb3JzO1xuXG4gIGV4ZWN1dGVBY3Rpb246IChldmVudDogVXNlckV2ZW50LCBjb250ZXh0PzogVCkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xuXG59XG4iXX0=
55
+ // @dynamic
56
+ let UserEventFilter = class UserEventFilter extends EntityFilter {
57
+ constructor() {
58
+ super(...arguments);
59
+ this.types = [];
60
+ this.levels = [];
61
+ this.issuers = [];
62
+ this.recipients = [];
63
+ this.startDate = null;
64
+ this.excludeRead = false;
65
+ }
66
+ fromObject(source, opts) {
67
+ super.fromObject(source, opts);
68
+ this.types = source.types || [];
69
+ this.levels = source.levels || [];
70
+ this.issuers = source.issuers || [];
71
+ this.recipients = source.recipients || [];
72
+ this.startDate = fromDateISOString(source.startDate);
73
+ this.excludeRead = source.excludeRead || false;
74
+ }
75
+ buildFilter() {
76
+ const filterFns = super.buildFilter();
77
+ if (isNotEmptyArray(this.types)) {
78
+ filterFns.push(t => this.types.includes(t.type));
79
+ }
80
+ if (isNotEmptyArray(this.levels)) {
81
+ filterFns.push(t => this.levels.includes(t.level));
82
+ }
83
+ if (isNotEmptyArray(this.issuers)) {
84
+ filterFns.push(t => this.issuers.includes(t.issuer));
85
+ }
86
+ if (isNotEmptyArray(this.recipients)) {
87
+ filterFns.push(t => this.recipients.includes(t.recipient));
88
+ }
89
+ if (isNotNil(this.startDate)) {
90
+ filterFns.push(t => this.startDate.isSameOrBefore(t.creationDate));
91
+ }
92
+ if (this.excludeRead === true) {
93
+ filterFns.push(t => isNil(t.readSignature)); // todo or t.signature ?
94
+ }
95
+ return filterFns;
96
+ }
97
+ };
98
+ UserEventFilter = __decorate([
99
+ EntityClass({ typename: 'UserEventFilterVO' })
100
+ ], UserEventFilter);
101
+ export { UserEventFilter };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdXNlci1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQWtDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFpQixNQUFNLHdDQUF3QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixVQUFVLEVBQUUsWUFBWTtJQUN4QixhQUFhLEVBQUUsZUFBZTtDQUMvQixDQUFDO0FBMEJGLFdBQVc7SUFFRSxTQUFTLHVCQUFULFNBQVUsU0FBUSxNQUFpQjtJQXdCOUM7UUFDRSxLQUFLLENBQUMsV0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBNEI7UUFDbkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpELG9CQUFvQjtRQUNwQixJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDdEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNqRDtRQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNyQixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ25CLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUV0QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQVc7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7UUFDbkQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuRCxJQUFJO1lBQ0Ysc0JBQXNCO1lBQ3RCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQztZQUVELDhCQUE4QjtZQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekQ7U0FDRjtRQUNELE9BQU0sR0FBRyxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7Q0FDRixDQUFBO0FBbkVZLFNBQVM7SUFEckIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBQyxDQUFDO0dBQzFCLFNBQVMsQ0FtRXJCO1NBbkVZLFNBQVM7QUFpRnRCLFdBQVc7SUFFRSxlQUFlLFNBQWYsZUFBZ0IsU0FBUSxZQUF3Qzs7O1FBSTNFLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsV0FBTSxHQUFpQixFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFDekIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFxQy9CLENBQUM7SUFuQ0MsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRVMsV0FBVztRQUNuQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFdEMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM1QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7U0FDbkU7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFO1lBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7U0FDdEU7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YsQ0FBQTtBQTlDWSxlQUFlO0lBRDNCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBQyxDQUFDO0dBQ2hDLGVBQWUsQ0E4QzNCO1NBOUNZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIElFbnRpdHkgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBmcm9tRGF0ZUlTT1N0cmluZywgdG9EYXRlSVNPU3RyaW5nIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7IEVudGl0eUNsYXNzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBFbnRpdHlGaWx0ZXIsIElFbnRpdHlGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQXBwQ29sb3JzLCBJY29uUmVmIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFVzZXJFdmVudFR5cGVzID0ge1xuICBERUJVR19EQVRBOiAnREVCVUdfREFUQScsXG4gIElOQk9YX01FU1NBR0U6ICdJTkJPWF9NRVNTQUdFJ1xufTtcblxuZXhwb3J0IHR5cGUgRXZlbnRMZXZlbCA9ICdFUlJPUicgfCAnV0FSTklORycgfCAnSU5GTycgfCAnREVCVUcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyRXZlbnQ8RSBleHRlbmRzIEVudGl0eTxFPiwgVSA9IHN0cmluZywgTCA9IEV2ZW50TGV2ZWw+XG4gIGV4dGVuZHMgSUVudGl0eTxFPiB7XG5cbiAgaXNzdWVyOiBVO1xuICByZWNpcGllbnQ6IFU7XG4gIHR5cGU6IHN0cmluZztcbiAgbGV2ZWw6IEw7XG5cbiAgdXBkYXRlRGF0ZTogTW9tZW50O1xuICBjcmVhdGlvbkRhdGU6IE1vbWVudDtcbiAgcmVhZERhdGU/OiBNb21lbnQ7XG5cbiAgbWVzc2FnZT86IHN0cmluZztcbiAgY29udGVudD86IHN0cmluZyB8IGFueTtcblxuICBhdmF0YXI/OiBzdHJpbmc7XG4gIGF2YXRhckljb24/OiBJY29uUmVmO1xuICBpY29uPzogSWNvblJlZjtcblxuICBhY3Rpb25zPzogVXNlckV2ZW50QWN0aW9uW107XG59XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnVXNlckV2ZW50Vk8nfSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnQgZXh0ZW5kcyBFbnRpdHk8VXNlckV2ZW50PiBpbXBsZW1lbnRzIElVc2VyRXZlbnQ8VXNlckV2ZW50PiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVXNlckV2ZW50O1xuXG4gIHR5cGU6IHN0cmluZztcbiAgbGV2ZWw6IEV2ZW50TGV2ZWw7XG4gIGlzc3Vlcjogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgdXBkYXRlRGF0ZTogTW9tZW50O1xuICBjcmVhdGlvbkRhdGU6IE1vbWVudDtcbiAgcmVhZERhdGU6IE1vbWVudDtcblxuICBtZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IGFueTtcbiAgaGFzaDogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbiAgcmVhZFNpZ25hdHVyZTogc3RyaW5nO1xuXG4gIGF2YXRhcj86IHN0cmluZztcbiAgYXZhdGFySWNvbj86IEljb25SZWY7XG4gIGljb24/OiBJY29uUmVmO1xuXG4gIGFjdGlvbnM/OiBVc2VyRXZlbnRBY3Rpb25bXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihVc2VyRXZlbnQuVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgdGFyZ2V0LnJlYWREYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMucmVhZERhdGUpO1xuXG4gICAgLy8gU2VyaWFsaXplIGNvbnRlbnRcbiAgICBpZiAodHlwZW9mIHRhcmdldC5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgdGFyZ2V0LmNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0YXJnZXQuY29udGVudCk7XG4gICAgfVxuXG4gICAgZGVsZXRlIHRhcmdldC5hdmF0YXI7XG4gICAgZGVsZXRlIHRhcmdldC5hdmF0YXJJY29uO1xuICAgIGRlbGV0ZSB0YXJnZXQuaWNvbjtcbiAgICBkZWxldGUgdGFyZ2V0LmFjdGlvbnM7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgc291cmNlKTsgLy8gQ29weSBhbGwgcHJvcGVydGllc1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmNyZWF0aW9uRGF0ZSA9IGZyb21EYXRlSVNPU3RyaW5nKHNvdXJjZS5jcmVhdGlvbkRhdGUpO1xuICAgIHRoaXMucmVhZERhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UucmVhZERhdGUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIERlc2VyaWFsaXplIGNvbnRlbnRcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlLmNvbnRlbnQgPT09ICdzdHJpbmcnICYmIHNvdXJjZS5jb250ZW50LnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSBKU09OLnBhcnNlKHNvdXJjZS5jb250ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gRGVzZXJpYWxpemUgY29udGVudC5jb250ZXh0XG4gICAgICBpZiAodGhpcy5jb250ZW50ICYmIHR5cGVvZiB0aGlzLmNvbnRlbnQuY29udGV4dCA9PT0gJ3N0cmluZycgJiYgdGhpcy5jb250ZW50LmNvbnRleHQuc3RhcnRzV2l0aCgneycpKSB7XG4gICAgICAgIHRoaXMuY29udGVudC5jb250ZXh0ID0gSlNPTi5wYXJzZSh0aGlzLmNvbnRlbnQuY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIFVzZXJFdmVudCBkZXNlcmlhbGl6YXRpb24nLCBlcnIpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyRXZlbnRGaWx0ZXI8RSBleHRlbmRzIElVc2VyRXZlbnQ8RSwgVSwgTD4sIFUgPSBzdHJpbmcsIEwgPSBFdmVudExldmVsPlxuICBleHRlbmRzIElFbnRpdHlGaWx0ZXI8YW55LCBFPiB7XG5cbiAgdHlwZXM6IHN0cmluZ1tdO1xuICBsZXZlbHM6IExbXTtcbiAgaXNzdWVyczogVVtdO1xuICByZWNpcGllbnRzOiBVW107XG4gIHN0YXJ0RGF0ZTogTW9tZW50O1xuICBleGNsdWRlUmVhZDogYm9vbGVhbjtcblxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1VzZXJFdmVudEZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50RmlsdGVyIGV4dGVuZHMgRW50aXR5RmlsdGVyPFVzZXJFdmVudEZpbHRlciwgVXNlckV2ZW50PiBpbXBsZW1lbnRzIElVc2VyRXZlbnRGaWx0ZXI8VXNlckV2ZW50PntcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBVc2VyRXZlbnRGaWx0ZXI7XG5cbiAgdHlwZXM6IHN0cmluZ1tdID0gW107XG4gIGxldmVsczogRXZlbnRMZXZlbFtdID0gW107XG4gIGlzc3VlcnM6IHN0cmluZ1tdID0gW107XG4gIHJlY2lwaWVudHM6IHN0cmluZ1tdID0gW107XG4gIHN0YXJ0RGF0ZTogTW9tZW50ID0gbnVsbDtcbiAgZXhjbHVkZVJlYWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMudHlwZXMgPSBzb3VyY2UudHlwZXMgfHwgW107XG4gICAgdGhpcy5sZXZlbHMgPSBzb3VyY2UubGV2ZWxzIHx8IFtdO1xuICAgIHRoaXMuaXNzdWVycyA9IHNvdXJjZS5pc3N1ZXJzIHx8IFtdO1xuICAgIHRoaXMucmVjaXBpZW50cyA9IHNvdXJjZS5yZWNpcGllbnRzIHx8IFtdO1xuICAgIHRoaXMuc3RhcnREYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5leGNsdWRlUmVhZCA9IHNvdXJjZS5leGNsdWRlUmVhZCB8fCBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxVc2VyRXZlbnQ+W10ge1xuICAgIGNvbnN0IGZpbHRlckZucyA9IHN1cGVyLmJ1aWxkRmlsdGVyKCk7XG5cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMudHlwZXMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCh0ID0+IHRoaXMudHlwZXMuaW5jbHVkZXModC50eXBlKSk7XG4gICAgfVxuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5sZXZlbHMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCh0ID0+IHRoaXMubGV2ZWxzLmluY2x1ZGVzKHQubGV2ZWwpKTtcbiAgICB9XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheSh0aGlzLmlzc3VlcnMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCh0ID0+IHRoaXMuaXNzdWVycy5pbmNsdWRlcyh0Lmlzc3VlcikpO1xuICAgIH1cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMucmVjaXBpZW50cykpIHtcbiAgICAgIGZpbHRlckZucy5wdXNoKHQgPT4gdGhpcy5yZWNpcGllbnRzLmluY2x1ZGVzKHQucmVjaXBpZW50KSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTm90TmlsKHRoaXMuc3RhcnREYXRlKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2godCA9PiB0aGlzLnN0YXJ0RGF0ZS5pc1NhbWVPckJlZm9yZSh0LmNyZWF0aW9uRGF0ZSkpXG4gICAgfVxuICAgIGlmICh0aGlzLmV4Y2x1ZGVSZWFkID09PSB0cnVlKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCh0ID0+IGlzTmlsKHQucmVhZFNpZ25hdHVyZSkpOyAvLyB0b2RvIG9yIHQuc2lnbmF0dXJlID9cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyRm5zO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50QWN0aW9uIHtcblxuICBuYW1lOiBzdHJpbmcgfCBhbnk7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjb2xvcj86IEFwcENvbG9ycztcbiAgaWNvblJlZj86IEljb25SZWY7XG5cbiAgZXhlY3V0ZUFjdGlvbjogKGV2ZW50OiBJVXNlckV2ZW50PGFueT4pID0+IGFueSB8IFByb21pc2U8YW55PjtcblxufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SharedModule } from '../../shared/shared.module';
4
+ import { UserEventsTable } from './user-events.table';
5
+ import { UserEventNotificationComponent } from './notification/user-event-notification.component';
6
+ import { UserEventNotificationList } from './notification/user-event-notification.list';
7
+ import { UserEventServiceToken } from './user-event.service';
8
+ import { UserEventTestService } from './testing/user-event.testing.service';
9
+ import { AppIconModule } from '../../core/icon/icon.module';
10
+ export class UserEventModule {
11
+ }
12
+ UserEventModule.decorators = [
13
+ { type: NgModule, args: [{
14
+ imports: [
15
+ CommonModule,
16
+ SharedModule,
17
+ AppIconModule
18
+ ],
19
+ declarations: [
20
+ UserEventsTable,
21
+ UserEventNotificationComponent,
22
+ UserEventNotificationList,
23
+ ],
24
+ exports: [
25
+ UserEventsTable,
26
+ UserEventNotificationComponent
27
+ ],
28
+ providers: [
29
+ { provide: UserEventServiceToken, useClass: UserEventTestService }
30
+ ]
31
+ },] }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBcUIxRCxNQUFNLE9BQU8sZUFBZTs7O1lBbkIzQixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixhQUFhO2lCQUNkO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO29CQUNmLDhCQUE4QjtvQkFDOUIseUJBQXlCO2lCQUMxQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtvQkFDZiw4QkFBOEI7aUJBQy9CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7aUJBQ25FO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvcmUubW9kdWxlJztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7IFVzZXJFdmVudHNUYWJsZSB9IGZyb20gJy4vdXNlci1ldmVudHMudGFibGUnO1xuaW1wb3J0IHsgVXNlckV2ZW50Tm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QgfSBmcm9tICcuL25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0JztcbmltcG9ydCB7IFVzZXJFdmVudFNlcnZpY2VUb2tlbiB9IGZyb20gJy4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJFdmVudFRlc3RTZXJ2aWNlIH0gZnJvbSAnLi90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZy5zZXJ2aWNlJztcbmltcG9ydCB7QXBwSWNvbk1vZHVsZX0gZnJvbSAnLi4vLi4vY29yZS9pY29uL2ljb24ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgQXBwSWNvbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBVc2VyRXZlbnRzVGFibGUsXG4gICAgVXNlckV2ZW50Tm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBVc2VyRXZlbnRzVGFibGUsXG4gICAgVXNlckV2ZW50Tm90aWZpY2F0aW9uQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogVXNlckV2ZW50U2VydmljZVRva2VuLCB1c2VDbGFzczogVXNlckV2ZW50VGVzdFNlcnZpY2UgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudE1vZHVsZSB7fVxuIl19