nuxeo-development-framework 3.8.2 → 3.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +32267 -30524
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +154 -0
  4. package/esm2015/lib/components/notifications/components/base-notifications.component.js +35 -0
  5. package/esm2015/lib/components/notifications/components/index.js +7 -0
  6. package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +44 -0
  7. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +41 -129
  8. package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +34 -0
  9. package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +26 -0
  10. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +75 -165
  11. package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +59 -0
  12. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +53 -175
  13. package/esm2015/lib/components/notifications/components/notifications-list/options.js +24 -0
  14. package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +43 -0
  15. package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +28 -0
  16. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +30 -0
  17. package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +163 -0
  18. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +28 -0
  19. package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +158 -0
  20. package/esm2015/lib/components/notifications/constants/date.js +8 -0
  21. package/esm2015/lib/components/notifications/constants/index.js +5 -0
  22. package/esm2015/lib/components/notifications/constants/pagination.js +5 -0
  23. package/esm2015/lib/components/notifications/constants/panel.js +5 -0
  24. package/esm2015/lib/components/notifications/constants/status.js +10 -0
  25. package/esm2015/lib/components/notifications/containers/index.js +3 -0
  26. package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +98 -0
  27. package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +18 -0
  28. package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +67 -0
  29. package/esm2015/lib/components/notifications/directives/button.directive.js +28 -0
  30. package/esm2015/lib/components/notifications/directives/index.js +3 -0
  31. package/esm2015/lib/components/notifications/directives/notification.directive.js +28 -0
  32. package/esm2015/lib/components/notifications/index.js +2 -0
  33. package/esm2015/lib/components/notifications/models/common.js +2 -0
  34. package/esm2015/lib/components/notifications/models/index.js +11 -0
  35. package/esm2015/lib/components/notifications/models/notification-definition.model.js +2 -0
  36. package/esm2015/lib/components/notifications/models/notification-options.js +2 -0
  37. package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +2 -0
  38. package/esm2015/lib/components/notifications/models/notification-subscription.model.js +2 -0
  39. package/esm2015/lib/components/notifications/models/notification.model.js +2 -0
  40. package/esm2015/lib/components/notifications/models/notifications-list-options.js +3 -0
  41. package/esm2015/lib/components/notifications/models/paging-response.model.js +2 -0
  42. package/esm2015/lib/components/notifications/models/params.model.js +2 -0
  43. package/esm2015/lib/components/notifications/models/vocabularies.js +2 -0
  44. package/esm2015/lib/components/notifications/notifications.module.js +80 -46
  45. package/esm2015/lib/components/notifications/public-api.js +9 -0
  46. package/esm2015/lib/components/notifications/services/index.js +2 -0
  47. package/esm2015/lib/components/notifications/services/listener.service.js +19 -0
  48. package/esm2015/lib/components/notifications/services/notifications.service.js +155 -0
  49. package/esm2015/lib/components/notifications/services/params.service.js +31 -0
  50. package/esm2015/lib/components/notifications/services/response.service.js +65 -0
  51. package/esm2015/lib/components/notifications/utilities/index.js +2 -0
  52. package/esm2015/lib/components/notifications/utilities/response.adapter.js +12 -0
  53. package/esm2015/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.js +7 -11
  54. package/esm2015/lib/components/toasts/index.js +2 -0
  55. package/esm2015/lib/components/toasts/public-api.js +3 -0
  56. package/esm2015/lib/components/toasts/toasts.module.js +19 -0
  57. package/esm2015/lib/core/models/api-response.model.js +2 -0
  58. package/esm2015/lib/core/models/automation-response.model.js +2 -0
  59. package/esm2015/lib/core/models/base-response.models.js +2 -0
  60. package/esm2015/lib/core/models/index.js +5 -0
  61. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +3 -3
  62. package/esm2015/lib/core/services/translation/translation.service.js +3 -3
  63. package/esm2015/public-api.js +136 -142
  64. package/fesm2015/nuxeo-development-framework.js +25617 -24039
  65. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  66. package/lib/components/notifications/components/base-list-notfications.component.d.ts +40 -0
  67. package/lib/components/notifications/components/base-notifications.component.d.ts +20 -0
  68. package/lib/components/notifications/components/index.d.ts +6 -0
  69. package/lib/components/notifications/components/notification-item/get-icon.pipe.d.ts +8 -0
  70. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +21 -22
  71. package/lib/components/notifications/components/notification-source-select/notification-source-select.component.d.ts +12 -0
  72. package/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.d.ts +8 -0
  73. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +29 -30
  74. package/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.d.ts +19 -0
  75. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +15 -54
  76. package/lib/components/notifications/components/notifications-list/options.d.ts +2 -0
  77. package/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.d.ts +15 -0
  78. package/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.d.ts +8 -0
  79. package/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.d.ts +3 -0
  80. package/lib/components/notifications/components/notifications-settings/notifications-settings.component.d.ts +40 -0
  81. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.d.ts +9 -0
  82. package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.d.ts +43 -0
  83. package/lib/components/notifications/constants/date.d.ts +7 -0
  84. package/lib/components/notifications/constants/index.d.ts +4 -0
  85. package/lib/components/notifications/constants/pagination.d.ts +4 -0
  86. package/lib/components/notifications/constants/panel.d.ts +4 -0
  87. package/lib/components/notifications/constants/status.d.ts +9 -0
  88. package/lib/components/notifications/containers/index.d.ts +2 -0
  89. package/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.d.ts +27 -0
  90. package/lib/components/notifications/containers/notifications-list-container/options.d.ts +2 -0
  91. package/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.d.ts +22 -0
  92. package/lib/components/notifications/directives/button.directive.d.ts +9 -0
  93. package/lib/components/notifications/directives/index.d.ts +2 -0
  94. package/lib/components/notifications/directives/notification.directive.d.ts +9 -0
  95. package/lib/components/notifications/index.d.ts +1 -0
  96. package/lib/components/notifications/models/common.d.ts +64 -0
  97. package/lib/components/notifications/models/index.d.ts +10 -0
  98. package/lib/components/notifications/models/notification-definition.model.d.ts +17 -0
  99. package/lib/components/notifications/models/notification-options.d.ts +7 -0
  100. package/lib/components/notifications/models/notification-setting.presenter.d.ts +24 -0
  101. package/lib/components/notifications/models/notification-subscription.model.d.ts +13 -0
  102. package/lib/components/notifications/models/notification.model.d.ts +16 -0
  103. package/lib/components/notifications/models/notifications-list-options.d.ts +34 -0
  104. package/lib/components/notifications/models/paging-response.model.d.ts +12 -0
  105. package/lib/components/notifications/models/params.model.d.ts +6 -0
  106. package/lib/components/notifications/models/vocabularies.d.ts +12 -0
  107. package/lib/components/notifications/notifications.module.d.ts +32 -16
  108. package/lib/components/notifications/public-api.d.ts +8 -0
  109. package/lib/components/notifications/services/index.d.ts +1 -0
  110. package/lib/components/notifications/services/listener.service.d.ts +8 -0
  111. package/lib/components/notifications/services/notifications.service.d.ts +55 -0
  112. package/lib/components/notifications/services/params.service.d.ts +19 -0
  113. package/lib/components/notifications/services/response.service.d.ts +19 -0
  114. package/lib/components/notifications/utilities/index.d.ts +1 -0
  115. package/lib/components/notifications/utilities/response.adapter.d.ts +3 -0
  116. package/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.d.ts +1 -3
  117. package/lib/components/toasts/index.d.ts +1 -0
  118. package/lib/components/toasts/public-api.d.ts +2 -0
  119. package/lib/components/toasts/toasts.module.d.ts +8 -0
  120. package/lib/core/models/api-response.model.d.ts +24 -0
  121. package/lib/core/models/automation-response.model.d.ts +24 -0
  122. package/lib/core/models/base-response.models.d.ts +12 -0
  123. package/lib/core/models/index.d.ts +4 -0
  124. package/lib/core/services/nuxeo/nuxeo.service.d.ts +1 -1
  125. package/lib/core/services/translation/translation.service.d.ts +3 -3
  126. package/package.json +1 -1
  127. package/public-api.d.ts +130 -136
  128. package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +0 -22
  129. package/esm2015/lib/components/notifications/notifications.service.js +0 -358
  130. package/lib/components/notifications/components/notification-options/notification-options.component.d.ts +0 -10
  131. package/lib/components/notifications/notifications.service.d.ts +0 -87
@@ -0,0 +1,154 @@
1
+ import { ChangeDetectorRef, Directive, EventEmitter, Output, } from '@angular/core';
2
+ import { finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators';
3
+ import { NOTIFICATION_STATUS, PAGINATION_MODE } from '../constants';
4
+ import { ListenerService } from '../services/listener.service';
5
+ import { ParamsService } from '../services/params.service';
6
+ import { ResponseService } from '../services/response.service';
7
+ import { BaseNotification } from './base-notifications.component';
8
+ import * as i0 from "@angular/core";
9
+ export class BaseListNotifications extends BaseNotification {
10
+ constructor(inject) {
11
+ super(inject);
12
+ this.inject = inject;
13
+ this.markAllRead = new EventEmitter();
14
+ this.itemClicked = new EventEmitter();
15
+ this._paramsService = this.inject.get(ParamsService);
16
+ this._responseService = this.inject.get(ResponseService);
17
+ this._listenerService = this.inject.get(ListenerService);
18
+ this._cdr = this.inject.get(ChangeDetectorRef);
19
+ this.response$ = this._responseService.response$;
20
+ this.trackByFn = (_, item) => item.uid;
21
+ this.isLoadingResult = false;
22
+ this.direction$ = this._translationService.isArabic$.pipe(map((isArabic) => (isArabic ? 'rtl' : 'ltr')));
23
+ this.paginationModeEnum = PAGINATION_MODE;
24
+ this._listenerService.onUpdate$
25
+ .pipe(switchMap((data) => this._updateList()), takeUntil(this.destroy$))
26
+ .subscribe((res) => {
27
+ this._responseService.setResponse(res, true);
28
+ });
29
+ }
30
+ markAllAsRead(event) {
31
+ this.notificationsService
32
+ .markAllAsRead()
33
+ .pipe(takeUntil(this.destroy$))
34
+ .subscribe((res) => {
35
+ this._listenerService.triggerUpdate('markAllAsRead');
36
+ this.markAllRead.emit(event);
37
+ this._responseService.resetPagination();
38
+ this._paramsService.applyParams({
39
+ override: true,
40
+ params: {
41
+ currentPageIndex: 0,
42
+ },
43
+ });
44
+ });
45
+ }
46
+ onScrollDown() {
47
+ if (this._responseService.totalItems > this._responseService.itemsLength &&
48
+ !this.isLoadingResult) {
49
+ this._responseService.increasePage();
50
+ this._paramsService.applyParams({
51
+ override: false,
52
+ params: Object.assign(Object.assign({}, this._paramsService.activatedQuery.params), { currentPageIndex: this._responseService.selectedPage }),
53
+ });
54
+ }
55
+ }
56
+ changePage(page) {
57
+ this._responseService.setPage(page);
58
+ this._paramsService.applyParams({
59
+ override: true,
60
+ params: Object.assign(Object.assign({}, this._paramsService.activatedQuery.params), { currentPageIndex: this._responseService.selectedPage }),
61
+ });
62
+ }
63
+ onItemClick(notification) {
64
+ var _a;
65
+ this.itemClicked.emit(notification);
66
+ if (((_a = notification.properties) === null || _a === void 0 ? void 0 : _a['notif_cnt:status']) !== NOTIFICATION_STATUS.read) {
67
+ this.markAsRead(notification);
68
+ }
69
+ }
70
+ markAsRead(notification) {
71
+ this.notificationsService
72
+ .markAsRead(notification.uid)
73
+ .pipe(takeUntil(this.destroy$))
74
+ .subscribe((res) => {
75
+ this._listenerService.triggerUpdate('markAsRead');
76
+ });
77
+ }
78
+ markAsUnread(notification) {
79
+ this.notificationsService
80
+ .markAsUnread(notification.uid)
81
+ .pipe(takeUntil(this.destroy$))
82
+ .subscribe((res) => {
83
+ this._listenerService.triggerUpdate('markAsUnread');
84
+ });
85
+ }
86
+ markAsDeleted(notification) {
87
+ this.notificationsService
88
+ .markAsDeleted(notification.uid)
89
+ .pipe(takeUntil(this.destroy$))
90
+ .subscribe((res) => {
91
+ this._listenerService.triggerUpdate('markAsDeleted');
92
+ });
93
+ }
94
+ _applyFilter(params) {
95
+ this._responseService.resetPagination();
96
+ this._paramsService.applyParams({
97
+ override: true,
98
+ params,
99
+ });
100
+ }
101
+ _prepareData() {
102
+ let isOverride = false;
103
+ this._paramsService.params$
104
+ .pipe(tap((query) => {
105
+ isOverride = query.override;
106
+ this.isLoadingResult = true;
107
+ this._cdr.detectChanges();
108
+ }), switchMap((query) => {
109
+ return this.notificationsService.getNotifications(query.params).pipe(finalize(() => {
110
+ this.isLoadingResult = false;
111
+ this._cdr.detectChanges();
112
+ }));
113
+ }), takeUntil(this.destroy$))
114
+ .subscribe((res) => {
115
+ this._responseService.setResponse(res, isOverride);
116
+ });
117
+ }
118
+ _prepareLanguage() {
119
+ this._translationService.isArabic$
120
+ .pipe(map((data) => (data ? 'ar-AR' : 'en-US')), takeUntil(this.destroy$))
121
+ .subscribe((res) => {
122
+ this.currentLang = res;
123
+ });
124
+ }
125
+ _updateList() {
126
+ const query = this._paramsService.activatedQuery;
127
+ const payload = Object.assign(Object.assign({}, query), { currentPageIndex: 0 });
128
+ if (!this.options) {
129
+ return this.notificationsService.getNotificationsMongo(payload);
130
+ }
131
+ if (this.options.paginationMode === PAGINATION_MODE.navigator) {
132
+ Object.assign(payload, {
133
+ currentPageIndex: this._responseService.selectedPage,
134
+ });
135
+ }
136
+ if (this.options.paginationMode === PAGINATION_MODE.scroll) {
137
+ const page = this._responseService.selectedPage + 1;
138
+ Object.assign(payload, {
139
+ pageSize: Math.floor(page * ((query === null || query === void 0 ? void 0 : query.pageSize) || 20)),
140
+ });
141
+ }
142
+ return this.notificationsService.getNotificationsMongo(payload);
143
+ }
144
+ }
145
+ BaseListNotifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseListNotifications, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
146
+ BaseListNotifications.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseListNotifications, outputs: { markAllRead: "markAllRead", itemClicked: "itemClicked" }, usesInheritance: true, ngImport: i0 });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseListNotifications, decorators: [{
148
+ type: Directive
149
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { markAllRead: [{
150
+ type: Output
151
+ }], itemClicked: [{
152
+ type: Output
153
+ }] } });
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LW5vdGZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvY29tcG9uZW50cy9iYXNlLWxpc3Qtbm90ZmljYXRpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU1wRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQXdCekQsWUFBc0IsTUFBZ0I7UUFDcEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRE0sV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQXZCNUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFcEQsbUJBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxJ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QUFDLElBQUksR0FBRyxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsS0FBSSxFQUFFLENBQUMsQ0FBQzthQUNyRCxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O21IQXJMVSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxTQUFTOytGQUVFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE5PVElGSUNBVElPTl9TVEFUVVMsIFBBR0lOQVRJT05fTU9ERSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7XHJcbiAgTm90aWZpY2F0aW9uTW9kZWwsXHJcbiAgTm90aWZpY2F0aW9uc0xpc3RPcHRpb25zLFxyXG4gIFBheWxvYWRQYXJhbXNNb2RlbCxcclxufSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBMaXN0ZW5lclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9saXN0ZW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFyYW1zU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BhcmFtcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzcG9uc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVzcG9uc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VOb3RpZmljYXRpb24gfSBmcm9tICcuL2Jhc2Utbm90aWZpY2F0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlTGlzdE5vdGlmaWNhdGlvbnMgZXh0ZW5kcyBCYXNlTm90aWZpY2F0aW9uIHtcclxuICBAT3V0cHV0KCkgbWFya0FsbFJlYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90aWZpY2F0aW9uTW9kZWw+KCk7XHJcblxyXG4gIHByb3RlY3RlZCBfcGFyYW1zU2VydmljZSA9IHRoaXMuaW5qZWN0LmdldChQYXJhbXNTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgX3Jlc3BvbnNlU2VydmljZSA9IHRoaXMuaW5qZWN0LmdldChSZXNwb25zZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBfbGlzdGVuZXJTZXJ2aWNlID0gdGhpcy5pbmplY3QuZ2V0KExpc3RlbmVyU2VydmljZSk7XHJcblxyXG4gIHByb3RlY3RlZCBfY2RyID0gdGhpcy5pbmplY3QuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcmVhZG9ubHkgcmVzcG9uc2UkID0gdGhpcy5fcmVzcG9uc2VTZXJ2aWNlLnJlc3BvbnNlJDtcclxuXHJcbiAgdHJhY2tCeUZuID0gKF86IG51bWJlciwgaXRlbTogTm90aWZpY2F0aW9uTW9kZWwpID0+IGl0ZW0udWlkO1xyXG5cclxuICBpc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgY3VycmVudExhbmc6IHN0cmluZztcclxuXHJcbiAgZGlyZWN0aW9uJCA9IHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYyQucGlwZShcclxuICAgIG1hcCgoaXNBcmFiaWMpID0+IChpc0FyYWJpYyA/ICdydGwnIDogJ2x0cicpKVxyXG4gICk7XHJcblxyXG4gIG9wdGlvbnM6IE5vdGlmaWNhdGlvbnNMaXN0T3B0aW9ucztcclxuICBwYWdpbmF0aW9uTW9kZUVudW0gPSBQQUdJTkFUSU9OX01PREU7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdDogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKGluamVjdCk7XHJcblxyXG4gICAgdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLm9uVXBkYXRlJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMuX3VwZGF0ZUxpc3QoKSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VTZXJ2aWNlLnNldFJlc3BvbnNlKHJlcywgdHJ1ZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWFya0FsbEFzUmVhZChldmVudCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZVxyXG4gICAgICAubWFya0FsbEFzUmVhZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLnRyaWdnZXJVcGRhdGUoJ21hcmtBbGxBc1JlYWQnKTtcclxuICAgICAgICB0aGlzLm1hcmtBbGxSZWFkLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlU2VydmljZS5yZXNldFBhZ2luYXRpb24oKTtcclxuICAgICAgICB0aGlzLl9wYXJhbXNTZXJ2aWNlLmFwcGx5UGFyYW1zKHtcclxuICAgICAgICAgIG92ZXJyaWRlOiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IDAsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsRG93bigpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5fcmVzcG9uc2VTZXJ2aWNlLnRvdGFsSXRlbXMgPiB0aGlzLl9yZXNwb25zZVNlcnZpY2UuaXRlbXNMZW5ndGggJiZcclxuICAgICAgIXRoaXMuaXNMb2FkaW5nUmVzdWx0XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fcmVzcG9uc2VTZXJ2aWNlLmluY3JlYXNlUGFnZSgpO1xyXG4gICAgICB0aGlzLl9wYXJhbXNTZXJ2aWNlLmFwcGx5UGFyYW1zKHtcclxuICAgICAgICBvdmVycmlkZTogZmFsc2UsXHJcbiAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAuLi50aGlzLl9wYXJhbXNTZXJ2aWNlLmFjdGl2YXRlZFF1ZXJ5LnBhcmFtcyxcclxuICAgICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuX3Jlc3BvbnNlU2VydmljZS5zZWxlY3RlZFBhZ2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcmVzcG9uc2VTZXJ2aWNlLnNldFBhZ2UocGFnZSk7XHJcbiAgICB0aGlzLl9wYXJhbXNTZXJ2aWNlLmFwcGx5UGFyYW1zKHtcclxuICAgICAgb3ZlcnJpZGU6IHRydWUsXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIC4uLnRoaXMuX3BhcmFtc1NlcnZpY2UuYWN0aXZhdGVkUXVlcnkucGFyYW1zLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuX3Jlc3BvbnNlU2VydmljZS5zZWxlY3RlZFBhZ2UsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uSXRlbUNsaWNrKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uTW9kZWwpIHtcclxuICAgIHRoaXMuaXRlbUNsaWNrZWQuZW1pdChub3RpZmljYXRpb24pO1xyXG4gICAgaWYgKG5vdGlmaWNhdGlvbi5wcm9wZXJ0aWVzPy5bJ25vdGlmX2NudDpzdGF0dXMnXSAhPT0gTk9USUZJQ0FUSU9OX1NUQVRVUy5yZWFkKSB7XHJcbiAgICAgIHRoaXMubWFya0FzUmVhZChub3RpZmljYXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFya0FzUmVhZChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbk1vZGVsKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICAgIC5tYXJrQXNSZWFkKG5vdGlmaWNhdGlvbi51aWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLnRyaWdnZXJVcGRhdGUoJ21hcmtBc1JlYWQnKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZVxyXG4gICAgICAubWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbi51aWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLnRyaWdnZXJVcGRhdGUoJ21hcmtBc1VucmVhZCcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG1hcmtBc0RlbGV0ZWQobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25Nb2RlbCkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZVxyXG4gICAgICAubWFya0FzRGVsZXRlZChub3RpZmljYXRpb24udWlkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2xpc3RlbmVyU2VydmljZS50cmlnZ2VyVXBkYXRlKCdtYXJrQXNEZWxldGVkJyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9hcHBseUZpbHRlcihwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuX3Jlc3BvbnNlU2VydmljZS5yZXNldFBhZ2luYXRpb24oKTtcclxuICAgIHRoaXMuX3BhcmFtc1NlcnZpY2UuYXBwbHlQYXJhbXMoe1xyXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3ByZXBhcmVEYXRhKCkge1xyXG4gICAgbGV0IGlzT3ZlcnJpZGUgPSBmYWxzZTtcclxuICAgIHRoaXMuX3BhcmFtc1NlcnZpY2UucGFyYW1zJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKHF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICBpc092ZXJyaWRlID0gcXVlcnkub3ZlcnJpZGU7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgocXVlcnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbnMocXVlcnkucGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZVNlcnZpY2Uuc2V0UmVzcG9uc2UocmVzLCBpc092ZXJyaWRlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3ByZXBhcmVMYW5ndWFnZSgpIHtcclxuICAgIHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiAoZGF0YSA/ICdhci1BUicgOiAnZW4tVVMnKSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3VwZGF0ZUxpc3QoKSB7XHJcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuX3BhcmFtc1NlcnZpY2UuYWN0aXZhdGVkUXVlcnk7XHJcblxyXG4gICAgY29uc3QgcGF5bG9hZDogUGF5bG9hZFBhcmFtc01vZGVsID0geyAuLi5xdWVyeSwgY3VycmVudFBhZ2VJbmRleDogMCB9O1xyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbnNNb25nbyhwYXlsb2FkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnBhZ2luYXRpb25Nb2RlID09PSBQQUdJTkFUSU9OX01PREUubmF2aWdhdG9yKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24ocGF5bG9hZCwge1xyXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuX3Jlc3BvbnNlU2VydmljZS5zZWxlY3RlZFBhZ2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMucGFnaW5hdGlvbk1vZGUgPT09IFBBR0lOQVRJT05fTU9ERS5zY3JvbGwpIHtcclxuICAgICAgY29uc3QgcGFnZSA9IHRoaXMuX3Jlc3BvbnNlU2VydmljZS5zZWxlY3RlZFBhZ2UgKyAxO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHBheWxvYWQsIHtcclxuICAgICAgICBwYWdlU2l6ZTogTWF0aC5mbG9vcihwYWdlICogKHF1ZXJ5Py5wYWdlU2l6ZSB8fCAyMCkpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5nZXROb3RpZmljYXRpb25zTW9uZ28ocGF5bG9hZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Directive } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { TranslationService } from '../../../Core/services/translation/translation.service';
5
+ import { NotificationsService } from '../services/notifications.service';
6
+ import * as i0 from "@angular/core";
7
+ export class DestroySubject {
8
+ constructor() {
9
+ this.destroy$ = new Subject();
10
+ }
11
+ ngOnDestroy() {
12
+ this.destroy$.next();
13
+ this.destroy$.complete();
14
+ }
15
+ }
16
+ DestroySubject.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DestroySubject, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ DestroySubject.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: DestroySubject, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DestroySubject, decorators: [{
19
+ type: Directive
20
+ }] });
21
+ export class BaseNotification extends DestroySubject {
22
+ constructor(inject) {
23
+ super();
24
+ this.inject = inject;
25
+ this.notificationsService = this.inject.get(NotificationsService);
26
+ this._translationService = this.inject.get(TranslationService);
27
+ this.direction$ = this._translationService.isArabic$.pipe(map((isArabic) => (isArabic ? 'rtl' : 'ltr')));
28
+ }
29
+ }
30
+ BaseNotification.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseNotification, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
31
+ BaseNotification.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseNotification, usesInheritance: true, ngImport: i0 });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseNotification, decorators: [{
33
+ type: Directive
34
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ub3RpZmljYXRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL2Jhc2Utbm90aWZpY2F0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBR3pFLE1BQU0sT0FBZ0IsY0FBYztJQURwQztRQUVFLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBS2hDO0lBSkMsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs0R0FMbUIsY0FBYztnR0FBZCxjQUFjOzRGQUFkLGNBQWM7a0JBRG5DLFNBQVM7O0FBVVYsTUFBTSxPQUFnQixnQkFBaUIsU0FBUSxjQUFjO0lBUTNELFlBQXNCLE1BQWdCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQVB0Qix5QkFBb0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFELHdCQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFcEUsZUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFJRixDQUFDOzs4R0FWbUIsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZXN0cm95U3ViamVjdCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb3RpZmljYXRpb24gZXh0ZW5kcyBEZXN0cm95U3ViamVjdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3QuZ2V0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3RyYW5zbGF0aW9uU2VydmljZSA9IHRoaXMuaW5qZWN0LmdldChUcmFuc2xhdGlvblNlcnZpY2UpO1xyXG5cclxuICByZWFkb25seSBkaXJlY3Rpb24kID0gdGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljJC5waXBlKFxyXG4gICAgbWFwKChpc0FyYWJpYykgPT4gKGlzQXJhYmljID8gJ3J0bCcgOiAnbHRyJykpXHJcbiAgKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdDogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './notification-item/notification-item.component';
2
+ export * from './notification-source-select/notification-source-select.component';
3
+ export * from './notification-status-toggle/notification-status-toggle.component';
4
+ export * from './notifications-button/notifications-button.component';
5
+ export * from './notifications-date-select/notifications-date-select.component';
6
+ export * from './notifications-list/notifications-list.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24tc291cmNlLXNlbGVjdC9ub3RpZmljYXRpb24tc291cmNlLXNlbGVjdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbi1zdGF0dXMtdG9nZ2xlL25vdGlmaWNhdGlvbi1zdGF0dXMtdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zLWRhdGUtc2VsZWN0L25vdGlmaWNhdGlvbnMtZGF0ZS1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zLWxpc3Qvbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GetIconPipe {
4
+ transform(data, options) {
5
+ if (!data || !options) {
6
+ return '';
7
+ }
8
+ if (options.property && Object.keys((options === null || options === void 0 ? void 0 : options.types) || {}).length) {
9
+ const key = resolveData(data, options.property);
10
+ return options.types[key] || (options === null || options === void 0 ? void 0 : options.default);
11
+ }
12
+ return (options === null || options === void 0 ? void 0 : options.default) || '';
13
+ }
14
+ }
15
+ GetIconPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
16
+ GetIconPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetIconPipe, name: "getIcon" });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GetIconPipe, decorators: [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'getIcon',
21
+ }]
22
+ }] });
23
+ function resolveData(data, field) {
24
+ if (data && field) {
25
+ if (field.indexOf('.') == -1) {
26
+ return data[field];
27
+ }
28
+ else {
29
+ let fields = field.split('.');
30
+ let value = data;
31
+ for (let i = 0, len = fields.length; i < len; ++i) {
32
+ if (value == null) {
33
+ return null;
34
+ }
35
+ value = value[fields[i]];
36
+ }
37
+ return value;
38
+ }
39
+ }
40
+ else {
41
+ return null;
42
+ }
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWljb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1pdGVtL2dldC1pY29uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFNBQVMsQ0FBQyxJQUF1QixFQUFFLE9BQTBDO1FBQzNFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssS0FBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDaEUsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLENBQUEsQ0FBQztTQUMvQztRQUVELE9BQU8sQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxLQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzt5R0FaVSxXQUFXO3VHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFIdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEI7O0FBZ0JELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsS0FBYTtJQUN6RCxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLE1BQU0sR0FBYSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25Nb2RlbCwgTm90aWZpY2F0aW9uc0xpc3RPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZ2V0SWNvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZXRJY29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShkYXRhOiBOb3RpZmljYXRpb25Nb2RlbCwgb3B0aW9uczogTm90aWZpY2F0aW9uc0xpc3RPcHRpb25zWydpY29ucyddKTogc3RyaW5nIHtcclxuICAgIGlmICghZGF0YSB8fCAhb3B0aW9ucykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMucHJvcGVydHkgJiYgT2JqZWN0LmtleXMob3B0aW9ucz8udHlwZXMgfHwge30pLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBrZXkgPSByZXNvbHZlRGF0YShkYXRhLCBvcHRpb25zLnByb3BlcnR5KTtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMudHlwZXNba2V5XSB8fCBvcHRpb25zPy5kZWZhdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zPy5kZWZhdWx0IHx8ICcnO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVzb2x2ZURhdGEoZGF0YTogTm90aWZpY2F0aW9uTW9kZWwsIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xyXG4gIGlmIChkYXRhICYmIGZpZWxkKSB7XHJcbiAgICBpZiAoZmllbGQuaW5kZXhPZignLicpID09IC0xKSB7XHJcbiAgICAgIHJldHVybiBkYXRhW2ZpZWxkXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBmaWVsZHM6IHN0cmluZ1tdID0gZmllbGQuc3BsaXQoJy4nKTtcclxuICAgICAgbGV0IHZhbHVlID0gZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGZpZWxkcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtmaWVsZHNbaV1dO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,143 +1,55 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from "@angular/core";
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
2
+ import { NOTIFICATION_STATUS } from '../../constants';
3
+ import { DestroySubject } from '../base-notifications.component';
2
4
  import * as i0 from "@angular/core";
3
- import * as i1 from "../../../../core/services/translation/translation.service";
4
- import * as i2 from "@angular/router";
5
- import * as i3 from "@angular/material/list";
6
- import * as i4 from "@angular/material/icon";
7
- import * as i5 from "@angular/material/menu";
8
- import * as i6 from "@angular/common";
9
- import * as i7 from "@angular/material/core";
10
- import * as i8 from "@angular/cdk/bidi";
11
- import * as i9 from "../../../../pipes/time-ago.pipe";
12
- import * as i10 from "@ngx-translate/core";
13
- export class NotificationItemComponent {
14
- constructor(translationSrvice, router) {
15
- this.translationSrvice = translationSrvice;
16
- this.router = router;
17
- this.update = new EventEmitter();
18
- this.arContent = "";
19
- this.enContent = "";
20
- this.lang = 'en';
5
+ import * as i1 from "@angular/material/button";
6
+ import * as i2 from "@angular/material/icon";
7
+ import * as i3 from "@angular/material/menu";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "./get-icon.pipe";
10
+ import * as i6 from "../../../../pipes/time-ago.pipe";
11
+ import * as i7 from "@ngx-translate/core";
12
+ export class NotificationItemComponent extends DestroySubject {
13
+ constructor() {
14
+ super();
15
+ this.markAsUnread = new EventEmitter();
16
+ this.markAsRead = new EventEmitter();
17
+ this.markAsDeleted = new EventEmitter();
18
+ this.status = NOTIFICATION_STATUS;
21
19
  }
22
- stop(event) {
23
- event.stopPropagation();
24
- }
25
- toggleRead(event) {
26
- this.update.emit({ action: "status", notification: this.notification });
27
- }
28
- ngOnInit() {
29
- this.langSubscription = this.translationSrvice.isArabic.subscribe(res => {
30
- this.lang = res ? 'ar' : 'en';
31
- });
32
- // this.notification.notificationContents.forEach((res) => {
33
- // if (res.lang === "AR") {
34
- // this.arContent = res.message;
35
- // }
36
- // if (res.lang === "EN") {
37
- // this.enContent = res.message;
38
- // }
39
- // });
20
+ set notification(value) {
21
+ this._notification = value;
40
22
  }
41
- ngOnChanges(changes) {
42
- if (this.notification.data.correspondenceReferenceNumber) {
43
- this.notification.notificationContents.forEach((res) => {
44
- if (res.lang === "AR") {
45
- this.arContent = res.message;
46
- }
47
- if (res.lang === "EN") {
48
- this.enContent = res.message;
49
- }
50
- });
51
- }
52
- else {
53
- this.notification.notificationContents.forEach((res) => {
54
- if (res.lang === "AR") {
55
- this.arContent = res.message.replace("رقم", "رقم -");
56
- if (res.message.includes('ExtRequest') || res.message.includes('IntRequest')) {
57
- this.arContent = res.message.replace("المستند", "الطلب");
58
- this.arContent = this.arContent.replace(('IntRequest'), "رقم - ");
59
- this.arContent = this.arContent.replace(('ExtRequest'), "رقم - ");
60
- }
61
- }
62
- if (res.lang === "EN") {
63
- this.enContent = res.message.replace("correspondence", "correspondence -");
64
- if (res.message.includes('ExtRequest') || res.message.includes('IntRequest')) {
65
- this.enContent = res.message.replace("document", "request");
66
- this.enContent = this.enContent.replace(('IntRequest'), "number - ");
67
- this.enContent = this.enContent.replace(('ExtRequest'), "number - ");
68
- }
69
- }
70
- });
71
- }
23
+ get notification() {
24
+ return this._notification;
72
25
  }
73
- /* async showOptions(event) {
74
- event.stopPropagation();
75
- const popover = await this.popoverCtrl.create({
76
- component: NotificationOptionsComponent,
77
- cssClass: 'notification-options',
78
- event: event,
79
- showBackdrop: false,
80
- });
81
- await popover.present();
82
- const { data } = await popover.onDidDismiss();
83
- if (data && this.notification) {
84
- this.updateNotification(data);
85
-
86
- }
87
-
88
- } */
89
- updateNotification(data) {
90
- this.update.emit({ action: data, notification: this.notification });
91
- }
92
- navigateToDetais(corrId) {
93
- let sourceType = this.notification.sourceType;
94
- const isAssignmentOrApproval = sourceType === "approval" || sourceType === "assignment";
95
- const correspondence = sourceType === "correspondence";
96
- const assignment = sourceType === "assignment";
97
- const approval = sourceType === "approval";
98
- const memo = sourceType === "memo";
99
- const general = sourceType === "general";
100
- const workspace = sourceType === "corrWorkspace";
101
- const id = memo ? this.notification.sourceId : corrId;
102
- if (corrId) {
103
- this.router.navigate([
104
- {
105
- outlets: { viewer: ["view", id] },
106
- },
107
- ], {
108
- queryParams: Object.assign(Object.assign(Object.assign({ location: this.router.url }, (approval && { approvalMode: true })), (assignment && { assignmentMode: true })), (assignment && {
109
- assignmentId: this.notification.data.assignmentId,
110
- })),
111
- });
112
- }
113
- if (workspace) {
114
- this.router.navigate([{ outlets: { viewer: ['workspace-viewer', this.notification.sourceId] } }], {
115
- queryParams: { location: this.router.url },
116
- });
117
- }
118
- if (memo) {
119
- this.router.navigate([{ outlets: { viewer: ["memo", id] } }], {
120
- queryParams: { location: this.router.url },
121
- });
122
- }
26
+ closeMenu(event, menu) {
27
+ event.stopPropagation();
28
+ menu.closed.emit();
123
29
  }
124
30
  }
125
- NotificationItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationItemComponent, deps: [{ token: i1.TranslationService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
126
- NotificationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationItemComponent, selector: "app-notification-item", inputs: { notification: "notification", isArabic: "isArabic" }, outputs: { update: "update" }, host: { classAttribute: "notification-item" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"notification-item\">\r\n <mat-list-item\r\n (click)=\"navigateToDetais(notification.data.correspondenceId)\"\r\n [ngClass]=\"{ unread: notification.status != 'READ' }\"\r\n >\r\n <p [dir]=\"isArabic ? 'rtl' : 'ltr'\" mat-line class=\"wrap\">{{ isArabic ? arContent : enContent }}</p>\r\n <p mat-line class=\"time-ago\">{{ notification?.sendDate | timeAgo: lang }}</p>\r\n <button\r\n class=\"mat-icon-button\"\r\n (click)=\"stop($event)\"\r\n [matMenuTriggerFor]=\"appMenu\"\r\n mat-icon-button\r\n >\r\n <mat-icon class=\"mat-24 notification-item-ActionsTrigger\">more_vert</mat-icon>\r\n </button>\r\n <mat-menu class=\"notificationItemActions\" #appMenu=\"matMenu\">\r\n <div class=\"actionsContainer\" (click)=\"stop($event)\">\r\n <mat-list-item\r\n (click)=\"toggleRead($event)\"\r\n class=\"user-option mat-menu-item\"\r\n >\r\n <mat-icon *ngIf=\"notification.status === 'READ'\" class=\"option-icon\"\r\n >check_circle_outline</mat-icon\r\n >\r\n <mat-icon *ngIf=\"notification.status != 'READ'\" class=\"option-icon\"\r\n >check_circle</mat-icon\r\n >\r\n <span class=\"read_unread_action\">{{\r\n (notification.status === \"READ\"\r\n ? \"notifications.markAsUnread\"\r\n : \"notifications.markAsRead\"\r\n ) | translate\r\n }}\r\n </span>\r\n </mat-list-item>\r\n <mat-list-item\r\n (click)=\"updateNotification('delete')\"\r\n class=\"user-option mat-menu-item\"\r\n >\r\n <mat-icon class=\"option-icon\">remove_circle</mat-icon>\r\n <span class=\"remove_action\">{{ \"notifications.delete\" | translate }}</span>\r\n </mat-list-item>\r\n </div>\r\n </mat-menu>\r\n </mat-list-item>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.user-option{cursor:pointer}.notification-item .mat-icon-button{background:none;border:none;margin:0;padding:0}.notification-item mat-list-item{border:1px solid #b4bac6;height:80px;font-size:11px}.notification-item mat-list-item:hover{cursor:pointer}.notification-item mat-list-item p{font-size:12px}.notification-item mat-list-item.unread{background:#f7f8f9}.notification-item mat-list-item .time-ago{font-size:11px!important;opacity:.8}.notification-item mat-list-item .options{opacity:0;transition:.3s}.notification-item mat-list-item .options ion-button{margin:0!important}.notification-item mat-list-item .options:focus{opacity:1}.notification-item mat-list-item:hover .options{opacity:1}.notification-item .type{padding:2px;margin:0;height:18px}.rtl .notification-item .mat-list-item-content{flex-direction:row-reverse}\n"], components: [{ type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.MatLine, selector: "[mat-line], [matLine]" }, { type: i8.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "timeAgo": i9.TimeAgoPipe, "translate": i10.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
31
+ NotificationItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ NotificationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationItemComponent, selector: "app-notification-item", inputs: { iconOptions: "iconOptions", currentLang: "currentLang", notification: "notification" }, outputs: { markAsUnread: "markAsUnread", markAsRead: "markAsRead", markAsDeleted: "markAsDeleted" }, usesInheritance: true, ngImport: i0, template: "<div\r\n *ngIf=\"notification?.properties as properties\"\r\n class=\"notification-item\"\r\n [class.new-item]=\"properties['notif_cnt:status'] == status.new\"\r\n [class.unread-item]=\"properties['notif_cnt:status'] == status.unRead\"\r\n>\r\n <div class=\"notification-item__icon\">\r\n <div class=\"notification-item__icon__wrapper\" *ngIf=\"iconOptions?.active\">\r\n <i [class]=\"notification | getIcon : iconOptions\"></i>\r\n </div>\r\n </div>\r\n <div class=\"notification-item__content\">\r\n <p class=\"notification-item__message line-clamp-2\">\r\n {{\r\n currentLang === 'ar-AR'\r\n ? properties['notif_cnt:arMessage']\r\n : properties['notif_cnt:enMessage']\r\n }}\r\n </p>\r\n <button\r\n class=\"mat-icon-button\"\r\n [matMenuTriggerFor]=\"appMenu\"\r\n mat-icon-button\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon class=\"mat-24\">more_horiz</mat-icon>\r\n </button>\r\n <span class=\"notification-item__date\">{{\r\n properties['dc:created'] | timeAgo : currentLang\r\n }}</span>\r\n </div>\r\n\r\n <mat-menu class=\"notification-item__actions\" #appMenu=\"matMenu\">\r\n <span (click)=\"closeMenu($event, appMenu)\">\r\n <button\r\n *ngIf=\"properties['notif_cnt:status'] == status.read\"\r\n mat-menu-item\r\n class=\"notification-item__actions__item\"\r\n (click)=\"markAsUnread.emit(notification)\"\r\n >\r\n <span class=\"mx-1\">{{ 'notifications.markAsUnread' | translate }}</span>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"\r\n properties['notif_cnt:status'] == status.new ||\r\n properties['notif_cnt:status'] == status.unRead\r\n \"\r\n mat-menu-item\r\n class=\"notification-item__actions__item\"\r\n (click)=\"markAsRead.emit(notification)\"\r\n >\r\n <span class=\"mx-1\">{{ 'notifications.markAsRead' | translate }}</span>\r\n </button>\r\n\r\n <button\r\n mat-menu-item\r\n (click)=\"markAsDeleted.emit(notification)\"\r\n class=\"notification-item__actions__item\"\r\n >\r\n <span>{{ 'notifications.delete' | translate }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n</div>\r\n", styles: [".notification-item{display:var(--n-item-display, grid);grid-template-columns:var(--n-item-columns, auto 1fr);grid-gap:var(--n-item-gap, .5rem);gap:var(--n-item-gap, .5rem);padding:var(--n-items-padding, .5rem 1rem);border:var(--n-item-border, solid #eee);border-width:var(--n-item-border-width, 0 0 1px 0);background:var(--n-item-background, transparent);min-height:var(--n-item-height, 85px)}.notification-item.new-item{--n-item-background: var(--n-status-new-color, #fcfcfc)}.notification-item.unread-item{--n-item-background: var(--n-status-unread-color, #fcfcfc)}.notification-item__icon{display:var(--n-item-icon-display, flex);align-items:var(--n-item-icon-align-items, center)}.notification-item__icon__wrapper{width:var(--n-item-icon-width, 56px);height:var(--n-item-icon-height, 56px);background:var(--n-item-icon-background, rgba(0, 0, 0, .025));color:var(--n-item-icon-color, #636363);font-size:var(--n-item-icon-size, 1.5rem);border-radius:var(--n-item-icon-radius, 50%);display:grid;place-items:center}.notification-item__content{display:var(--n-item-content-display, grid);grid-template-columns:var(--n-item-content-columns, 1fr auto);grid-gap:var(--n-item-gap, .2rem);gap:var(--n-item-gap, .2rem)}.notification-item__message{margin-bottom:0;font-size:var(--n-item-font-size, .9rem);color:var(--n-item-message-color)}.notification-item__date{font-size:var(--n-item-date-size, .8rem);text-align:var(--n-item-date-align, end);grid-column:var(--n-item-date-column, span 2);padding:var(--n-item-date-padding, 0 11px);color:var(--n-item-date-color)}.notification-item__actions{border-radius:var(--n-actions-radius, 4px);background:var(--n-actions-background, #fff);box-shadow:var(--n-actions-shadow, 0px 1px 4px -1px rgba(28, 52, 84, .26))}.notification-item__actions .mat-menu-content:not(:empty){padding:var(--n-actions--menu-padding, .5rem)}.notification-item__actions__item{text-align:var(--action-item-align, start)!important;background:var(--action-item-background, transparent)!important;color:var(--action-item-color, #28282d);padding:var(--action-item-padding, .4rem);height:var(--action-item-height, 38px);line-height:var(--action-item-line, 38px);border-radius:var(--action-item-radius, 4px);font-size:var(--action-item-size, 14px)}.notification-item__actions__item:hover{--action-item-background: var(--action-hover-background, #e6f7ff);--action-item-color: var(--action-hover-color, #005fdb)}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "getIcon": i5.GetIconPipe, "timeAgo": i6.TimeAgoPipe, "translate": i7.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
127
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationItemComponent, decorators: [{
128
34
  type: Component,
129
35
  args: [{
130
- selector: "app-notification-item",
131
- styleUrls: ["./notification-item.component.scss"],
132
- templateUrl: "./notification-item.component.html",
133
- host: { class: "notification-item" },
36
+ selector: 'app-notification-item',
37
+ styleUrls: ['./notification-item.component.scss'],
38
+ templateUrl: './notification-item.component.html',
39
+ changeDetection: ChangeDetectionStrategy.OnPush,
134
40
  encapsulation: ViewEncapsulation.None,
135
41
  }]
136
- }], ctorParameters: function () { return [{ type: i1.TranslationService }, { type: i2.Router }]; }, propDecorators: { notification: [{
42
+ }], ctorParameters: function () { return []; }, propDecorators: { iconOptions: [{
137
43
  type: Input
138
- }], update: [{
139
- type: Output
140
- }], isArabic: [{
44
+ }], currentLang: [{
45
+ type: Input
46
+ }], notification: [{
141
47
  type: Input
48
+ }], markAsUnread: [{
49
+ type: Output
50
+ }], markAsRead: [{
51
+ type: Output
52
+ }], markAsDeleted: [{
53
+ type: Output
142
54
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQVl2QixNQUFNLE9BQU8seUJBQXlCO0lBU3BDLFlBQW9CLGlCQUFxQyxFQUFVLE1BQWM7UUFBN0Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFQdkUsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsU0FBSSxHQUFHLElBQUksQ0FBQztJQUd5RSxDQUFDO0lBRXRGLElBQUksQ0FBQyxLQUFLO1FBQ1IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFB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QWYsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtbm90aWZpY2F0aW9uLWl0ZW1cIixcclxuICBzdHlsZVVybHM6IFtcIi4vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIGhvc3Q6IHsgY2xhc3M6IFwibm90aWZpY2F0aW9uLWl0ZW1cIiB9LFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBub3RpZmljYXRpb247XHJcbiAgQE91dHB1dCgpIHVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNBcmFiaWM7XHJcbiAgYXJDb250ZW50ID0gXCJcIjtcclxuICBlbkNvbnRlbnQgPSBcIlwiO1xyXG4gIGxhbmcgPSAnZW4nO1xyXG4gIGxhbmdTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGlvblNydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgc3RvcChldmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHRvZ2dsZVJlYWQoZXZlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlLmVtaXQoeyBhY3Rpb246IFwic3RhdHVzXCIsIG5vdGlmaWNhdGlvbjogdGhpcy5ub3RpZmljYXRpb24gfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvblNydmljZS5pc0FyYWJpYy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5sYW5nID0gcmVzID8gJ2FyJyA6ICdlbic7XHJcbiAgICB9KVxyXG4gICAgLy8gdGhpcy5ub3RpZmljYXRpb24ubm90aWZpY2F0aW9uQ29udGVudHMuZm9yRWFjaCgocmVzKSA9PiB7XHJcbiAgICAvLyAgIGlmIChyZXMubGFuZyA9PT0gXCJBUlwiKSB7XHJcbiAgICAvLyAgICAgdGhpcy5hckNvbnRlbnQgPSByZXMubWVzc2FnZTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBpZiAocmVzLmxhbmcgPT09IFwiRU5cIikge1xyXG4gICAgLy8gICAgIHRoaXMuZW5Db250ZW50ID0gcmVzLm1lc3NhZ2U7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ub3RpZmljYXRpb24uZGF0YS5jb3JyZXNwb25kZW5jZVJlZmVyZW5jZU51bWJlcikge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25Db250ZW50cy5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzLmxhbmcgPT09IFwiQVJcIikge1xyXG4gICAgICAgICAgdGhpcy5hckNvbnRlbnQgPSByZXMubWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcy5sYW5nID09PSBcIkVOXCIpIHtcclxuICAgICAgICAgIHRoaXMuZW5Db250ZW50ID0gcmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbkNvbnRlbnRzLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMubGFuZyA9PT0gXCJBUlwiKSB7XHJcbiAgICAgICAgICB0aGlzLmFyQ29udGVudCA9IHJlcy5tZXNzYWdlLnJlcGxhY2UoXCLYsdmC2YVcIiwgXCLYsdmC2YUgLVwiKTtcclxuICAgICAgICAgIGlmIChyZXMubWVzc2FnZS5pbmNsdWRlcygnRXh0UmVxdWVzdCcpIHx8IHJlcy5tZXNzYWdlLmluY2x1ZGVzKCdJbnRSZXF1ZXN0JykpIHtcclxuICAgICAgICAgICAgdGhpcy5hckNvbnRlbnQgPSByZXMubWVzc2FnZS5yZXBsYWNlKFwi2KfZhNmF2LPYqtmG2K9cIiwgXCLYp9mE2LfZhNioXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmFyQ29udGVudCA9IHRoaXMuYXJDb250ZW50LnJlcGxhY2UoKCdJbnRSZXF1ZXN0JyksIFwi2LHZgtmFIC0gXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmFyQ29udGVudCA9IHRoaXMuYXJDb250ZW50LnJlcGxhY2UoKCdFeHRSZXF1ZXN0JyksIFwi2LHZgtmFIC0gXCIpO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcy5sYW5nID09PSBcIkVOXCIpIHtcclxuICAgICAgICAgIHRoaXMuZW5Db250ZW50ID0gcmVzLm1lc3NhZ2UucmVwbGFjZShcImNvcnJlc3BvbmRlbmNlXCIsIFwiY29ycmVzcG9uZGVuY2UgLVwiKTtcclxuICAgICAgICAgIGlmIChyZXMubWVzc2FnZS5pbmNsdWRlcygnRXh0UmVxdWVzdCcpIHx8IHJlcy5tZXNzYWdlLmluY2x1ZGVzKCdJbnRSZXF1ZXN0JykpIHtcclxuICAgICAgICAgICAgdGhpcy5lbkNvbnRlbnQgPSByZXMubWVzc2FnZS5yZXBsYWNlKFwiZG9jdW1lbnRcIiwgXCJyZXF1ZXN0XCIpO1xyXG4gICAgICAgICAgICB0aGlzLmVuQ29udGVudCA9IHRoaXMuZW5Db250ZW50LnJlcGxhY2UoKCdJbnRSZXF1ZXN0JyksIFwibnVtYmVyIC0gXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmVuQ29udGVudCA9IHRoaXMuZW5Db250ZW50LnJlcGxhY2UoKCdFeHRSZXF1ZXN0JyksIFwibnVtYmVyIC0gXCIpO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiBhc3luYyBzaG93T3B0aW9ucyhldmVudCkge1xyXG4gICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3BvdmVyQ3RybC5jcmVhdGUoe1xyXG4gICAgICAgICAgIGNvbXBvbmVudDogTm90aWZpY2F0aW9uT3B0aW9uc0NvbXBvbmVudCxcclxuICAgICAgICAgICBjc3NDbGFzczogJ25vdGlmaWNhdGlvbi1vcHRpb25zJyxcclxuICAgICAgICAgICBldmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgc2hvd0JhY2tkcm9wOiBmYWxzZSxcclxuICAgICAgIH0pO1xyXG4gICAgICAgYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XHJcbiAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHBvcG92ZXIub25EaWREaXNtaXNzKCk7XHJcbiAgICAgICBpZiAoZGF0YSAmJiB0aGlzLm5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgIHRoaXMudXBkYXRlTm90aWZpY2F0aW9uKGRhdGEpO1xyXG5cclxuICAgICAgIH1cclxuXHJcbiAgIH0gKi9cclxuICB1cGRhdGVOb3RpZmljYXRpb24oZGF0YSkge1xyXG4gICAgdGhpcy51cGRhdGUuZW1pdCh7IGFjdGlvbjogZGF0YSwgbm90aWZpY2F0aW9uOiB0aGlzLm5vdGlmaWNhdGlvbiB9KTtcclxuICB9XHJcbiAgbmF2aWdhdGVUb0RldGFpcyhjb3JySWQpIHtcclxuICAgIGxldCBzb3VyY2VUeXBlID0gdGhpcy5ub3RpZmljYXRpb24uc291cmNlVHlwZTtcclxuICAgIGNvbnN0IGlzQXNzaWdubWVudE9yQXBwcm92YWw6IGJvb2xlYW4gPVxyXG4gICAgICBzb3VyY2VUeXBlID09PSBcImFwcHJvdmFsXCIgfHwgc291cmNlVHlwZSA9PT0gXCJhc3NpZ25tZW50XCI7XHJcbiAgICBjb25zdCBjb3JyZXNwb25kZW5jZSA9IHNvdXJjZVR5cGUgPT09IFwiY29ycmVzcG9uZGVuY2VcIjtcclxuICAgIGNvbnN0IGFzc2lnbm1lbnQgPSBzb3VyY2VUeXBlID09PSBcImFzc2lnbm1lbnRcIjtcclxuICAgIGNvbnN0IGFwcHJvdmFsID0gc291cmNlVHlwZSA9PT0gXCJhcHByb3ZhbFwiO1xyXG4gICAgY29uc3QgbWVtbyA9IHNvdXJjZVR5cGUgPT09IFwibWVtb1wiO1xyXG4gICAgY29uc3QgZ2VuZXJhbCA9IHNvdXJjZVR5cGUgPT09IFwiZ2VuZXJhbFwiO1xyXG4gICAgY29uc3Qgd29ya3NwYWNlID0gc291cmNlVHlwZSA9PT0gXCJjb3JyV29ya3NwYWNlXCJcclxuICAgIGNvbnN0IGlkID0gbWVtbyA/IHRoaXMubm90aWZpY2F0aW9uLnNvdXJjZUlkIDogY29ycklkO1xyXG4gICAgaWYgKGNvcnJJZCkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dGxldHM6IHsgdmlld2VyOiBbXCJ2aWV3XCIsIGlkXSB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmwsXHJcbiAgICAgICAgICAgIC4uLihhcHByb3ZhbCAmJiB7IGFwcHJvdmFsTW9kZTogdHJ1ZSB9KSxcclxuICAgICAgICAgICAgLi4uKGFzc2lnbm1lbnQgJiYgeyBhc3NpZ25tZW50TW9kZTogdHJ1ZSB9KSxcclxuICAgICAgICAgICAgLi4uKGFzc2lnbm1lbnQgJiYge1xyXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRJZDogdGhpcy5ub3RpZmljYXRpb24uZGF0YS5hc3NpZ25tZW50SWQsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZih3b3Jrc3BhY2Upe1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICBbeyBvdXRsZXRzOiB7IHZpZXdlcjogWyd3b3Jrc3BhY2Utdmlld2VyJyAsdGhpcy5ub3RpZmljYXRpb24uc291cmNlSWRdIH0gfV0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9LFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfVxyXG4gICAgaWYgKG1lbW8pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3sgb3V0bGV0czogeyB2aWV3ZXI6IFtcIm1lbW9cIiwgaWRdIH0gfV0sIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIj5cclxuICA8bWF0LWxpc3QtaXRlbVxyXG4gICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9EZXRhaXMobm90aWZpY2F0aW9uLmRhdGEuY29ycmVzcG9uZGVuY2VJZClcIlxyXG4gICAgW25nQ2xhc3NdPVwieyB1bnJlYWQ6IG5vdGlmaWNhdGlvbi5zdGF0dXMgIT0gJ1JFQUQnIH1cIlxyXG4gID5cclxuICAgIDxwIFtkaXJdPVwiaXNBcmFiaWMgPyAncnRsJyA6ICdsdHInXCIgbWF0LWxpbmUgY2xhc3M9XCJ3cmFwXCI+e3sgaXNBcmFiaWMgPyBhckNvbnRlbnQgOiBlbkNvbnRlbnQgfX08L3A+XHJcbiAgICA8cCBtYXQtbGluZSBjbGFzcz1cInRpbWUtYWdvXCI+e3sgbm90aWZpY2F0aW9uPy5zZW5kRGF0ZSB8IHRpbWVBZ286IGxhbmcgIH19PC9wPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cIm1hdC1pY29uLWJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJzdG9wKCRldmVudClcIlxyXG4gICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYXBwTWVudVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjQgbm90aWZpY2F0aW9uLWl0ZW0tQWN0aW9uc1RyaWdnZXJcIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgY2xhc3M9XCJub3RpZmljYXRpb25JdGVtQWN0aW9uc1wiICNhcHBNZW51PVwibWF0TWVudVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc0NvbnRhaW5lclwiIChjbGljayk9XCJzdG9wKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbVxyXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBjbGFzcz1cInVzZXItb3B0aW9uIG1hdC1tZW51LWl0ZW1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm5vdGlmaWNhdGlvbi5zdGF0dXMgPT09ICdSRUFEJ1wiIGNsYXNzPVwib3B0aW9uLWljb25cIlxyXG4gICAgICAgICAgICA+Y2hlY2tfY2lyY2xlX291dGxpbmU8L21hdC1pY29uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJub3RpZmljYXRpb24uc3RhdHVzICE9ICdSRUFEJ1wiIGNsYXNzPVwib3B0aW9uLWljb25cIlxyXG4gICAgICAgICAgICA+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkX3VucmVhZF9hY3Rpb25cIj57e1xyXG4gICAgICAgICAgICAobm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJSRUFEXCJcclxuICAgICAgICAgICAgICA/IFwibm90aWZpY2F0aW9ucy5tYXJrQXNVbnJlYWRcIlxyXG4gICAgICAgICAgICAgIDogXCJub3RpZmljYXRpb25zLm1hcmtBc1JlYWRcIlxyXG4gICAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW1cclxuICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVOb3RpZmljYXRpb24oJ2RlbGV0ZScpXCJcclxuICAgICAgICAgIGNsYXNzPVwidXNlci1vcHRpb24gbWF0LW1lbnUtaXRlbVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwib3B0aW9uLWljb25cIj5yZW1vdmVfY2lyY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVtb3ZlX2FjdGlvblwiPnt7IFwibm90aWZpY2F0aW9ucy5kZWxldGVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtbWVudT5cclxuICA8L21hdC1saXN0LWl0ZW0+XHJcbjwvZGl2PlxyXG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBU2pFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBbUIzRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBTkEsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNyRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUV2RCxXQUFNLEdBQUcsbUJBQW1CLENBQUM7SUFHdEMsQ0FBQztJQWZELElBQWEsWUFBWSxDQUFDLEtBQXdCO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQVdELFNBQVMsQ0FBQyxLQUFZLEVBQUUsSUFBYTtRQUNuQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOzt1SEExQlUseUJBQXlCOzJHQUF6Qix5QkFBeUIsMlJDckJ0Qywyd0VBaUVBOzRGRDVDYSx5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7MEVBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBUUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWF0TWVudSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBOT1RJRklDQVRJT05fU1RBVFVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kZWwsIE5vdGlmaWNhdGlvbnNMaXN0T3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0IH0gZnJvbSAnLi4vYmFzZS1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1ub3RpZmljYXRpb24taXRlbScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveVN1YmplY3Qge1xyXG5cclxuICBASW5wdXQoKSBpY29uT3B0aW9uczogTm90aWZpY2F0aW9uc0xpc3RPcHRpb25zWydpY29ucyddO1xyXG5cclxuICBASW5wdXQoKSBjdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgc2V0IG5vdGlmaWNhdGlvbih2YWx1ZTogTm90aWZpY2F0aW9uTW9kZWwpIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5vdGlmaWNhdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb247XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbWFya0FzVW5yZWFkID0gbmV3IEV2ZW50RW1pdHRlcjxOb3RpZmljYXRpb25Nb2RlbD4oKTtcclxuICBAT3V0cHV0KCkgbWFya0FzUmVhZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90aWZpY2F0aW9uTW9kZWw+KCk7XHJcbiAgQE91dHB1dCgpIG1hcmtBc0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGlmaWNhdGlvbk1vZGVsPigpO1xyXG5cclxuICByZWFkb25seSBzdGF0dXMgPSBOT1RJRklDQVRJT05fU1RBVFVTO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlTWVudShldmVudDogRXZlbnQsIG1lbnU6IE1hdE1lbnUpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgbWVudS5jbG9zZWQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJub3RpZmljYXRpb24/LnByb3BlcnRpZXMgYXMgcHJvcGVydGllc1wiXHJcbiAgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbVwiXHJcbiAgW2NsYXNzLm5ldy1pdGVtXT1cInByb3BlcnRpZXNbJ25vdGlmX2NudDpzdGF0dXMnXSA9PSBzdGF0dXMubmV3XCJcclxuICBbY2xhc3MudW5yZWFkLWl0ZW1dPVwicHJvcGVydGllc1snbm90aWZfY250OnN0YXR1cyddID09IHN0YXR1cy51blJlYWRcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtX19pY29uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1fX2ljb25fX3dyYXBwZXJcIiAqbmdJZj1cImljb25PcHRpb25zPy5hY3RpdmVcIj5cclxuICAgICAgPGkgW2NsYXNzXT1cIm5vdGlmaWNhdGlvbiB8IGdldEljb24gOiBpY29uT3B0aW9uc1wiPjwvaT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbV9fY29udGVudFwiPlxyXG4gICAgPHAgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbV9fbWVzc2FnZSBsaW5lLWNsYW1wLTJcIj5cclxuICAgICAge3tcclxuICAgICAgICBjdXJyZW50TGFuZyA9PT0gJ2FyLUFSJ1xyXG4gICAgICAgICAgPyBwcm9wZXJ0aWVzWydub3RpZl9jbnQ6YXJNZXNzYWdlJ11cclxuICAgICAgICAgIDogcHJvcGVydGllc1snbm90aWZfY250OmVuTWVzc2FnZSddXHJcbiAgICAgIH19XHJcbiAgICA8L3A+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwibWF0LWljb24tYnV0dG9uXCJcclxuICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFwcE1lbnVcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC0yNFwiPm1vcmVfaG9yaXo8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtX19kYXRlXCI+e3tcclxuICAgICAgcHJvcGVydGllc1snZGM6Y3JlYXRlZCddIHwgdGltZUFnbyA6IGN1cnJlbnRMYW5nXHJcbiAgICB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1hdC1tZW51IGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1fX2FjdGlvbnNcIiAjYXBwTWVudT1cIm1hdE1lbnVcIj5cclxuICAgIDxzcGFuIChjbGljayk9XCJjbG9zZU1lbnUoJGV2ZW50LCBhcHBNZW51KVwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJwcm9wZXJ0aWVzWydub3RpZl9jbnQ6c3RhdHVzJ10gPT0gc3RhdHVzLnJlYWRcIlxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtX19hY3Rpb25zX19pdGVtXCJcclxuICAgICAgICAoY2xpY2spPVwibWFya0FzVW5yZWFkLmVtaXQobm90aWZpY2F0aW9uKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTFcIj57eyAnbm90aWZpY2F0aW9ucy5tYXJrQXNVbnJlYWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgcHJvcGVydGllc1snbm90aWZfY250OnN0YXR1cyddID09IHN0YXR1cy5uZXcgfHxcclxuICAgICAgICAgIHByb3BlcnRpZXNbJ25vdGlmX2NudDpzdGF0dXMnXSA9PSBzdGF0dXMudW5SZWFkXHJcbiAgICAgICAgXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbV9fYWN0aW9uc19faXRlbVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm1hcmtBc1JlYWQuZW1pdChub3RpZmljYXRpb24pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXgtMVwiPnt7ICdub3RpZmljYXRpb25zLm1hcmtBc1JlYWQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgKGNsaWNrKT1cIm1hcmtBc0RlbGV0ZWQuZW1pdChub3RpZmljYXRpb24pXCJcclxuICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pdGVtX19hY3Rpb25zX19pdGVtXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7ICdub3RpZmljYXRpb25zLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation, } from '@angular/core';
2
+ import { BaseNotification } from '../base-notifications.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/button";
5
+ import * as i2 from "@angular/material/menu";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/cdk/bidi";
8
+ import * as i5 from "@ngx-translate/core";
9
+ export class NotificationSourceSelectComponent extends BaseNotification {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.sourceTypes$ = this.notificationsService.getSourceTypes();
13
+ this.typeChanged = new EventEmitter();
14
+ }
15
+ selectFilterType(type) {
16
+ this.selectedFilterType = type;
17
+ this.typeChanged.emit(type === null || type === void 0 ? void 0 : type.id);
18
+ }
19
+ }
20
+ NotificationSourceSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationSourceSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ NotificationSourceSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationSourceSelectComponent, selector: "app-notification-source-select", outputs: { typeChanged: "typeChanged" }, usesInheritance: true, ngImport: i0, template: "<span [dir]=\"direction$ | async\" *ngIf=\"sourceTypes$ | async as sourceTypes\">\r\n <button\r\n (click)=\"$event.stopPropagation()\"\r\n class=\"type-filter-trigger px-2\"\r\n [matMenuTriggerFor]=\"filterTypeMenu\"\r\n #filterTypeMenuTrigger=\"matMenuTrigger\"\r\n mat-stroked-button\r\n >\r\n <span>{{\r\n (selectedFilterType\r\n ? 'vocabulary.VOC_Notf_SourceTypes.' + selectedFilterType.properties.id\r\n : 'notifications.allTypes'\r\n ) | translate\r\n }}</span>\r\n <span class=\"icon icon-chevron-down\"></span>\r\n </button>\r\n <mat-menu class=\"source-type-select-menu\" #filterTypeMenu=\"matMenu\">\r\n <span (click)=\"$event.stopPropagation()\">\r\n <button\r\n mat-menu-item\r\n class=\"source-type-select-menu__option\"\r\n (click)=\"selectFilterType(null); filterTypeMenuTrigger.closed.emit()\"\r\n >\r\n <span>{{ 'notifications.all' | translate }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n class=\"source-type-select-menu__option\"\r\n *ngFor=\"let type of sourceTypes\"\r\n (click)=\"selectFilterType(type); filterTypeMenuTrigger.closed.emit()\"\r\n >\r\n <span>{{\r\n 'vocabulary.VOC_Notf_SourceTypes.' + type?.properties.id | translate\r\n }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n</span>\r\n", styles: [".source-type-select-menu{box-shadow:var(--source-type-menu-shadow, 0px 1px 4px -1px rgba(28, 52, 84, .26))}.source-type-select-menu .mat-menu-content:not(:empty){padding:var(--source-type-menu-padding, .5rem)}.source-type-select-menu__option{background:var(--source-type-option-background, transparent)!important;border-radius:var(--source-type-option-radius, 4px);font-size:var(--source-type-option-size, 14px);color:var(--source-type-option-color, #28282d);height:var(--source-type-option-height, 38px);line-height:var(--source-type-option-line-height, 38px)}.source-type-select-menu__option:hover{--source-type-option-background: var(--source-type-option-hover-background, #e6f7ff);--source-type-option-color: var(--source-type-option-hover-color, #005fdb)}.source-type-select-menu__option .mat-icon{color:currentColor}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe, "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationSourceSelectComponent, decorators: [{
23
+ type: Component,
24
+ args: [{
25
+ selector: 'app-notification-source-select',
26
+ templateUrl: './notification-source-select.component.html',
27
+ styleUrls: ['./notification-source-select.component.scss'],
28
+ changeDetection: ChangeDetectionStrategy.OnPush,
29
+ encapsulation: ViewEncapsulation.None,
30
+ }]
31
+ }], propDecorators: { typeChanged: [{
32
+ type: Output
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXNvdXJjZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLXNvdXJjZS1zZWxlY3Qvbm90aWZpY2F0aW9uLXNvdXJjZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uLXNvdXJjZS1zZWxlY3Qvbm90aWZpY2F0aW9uLXNvdXJjZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLGdCQUFnQjtJQVB2RTs7UUFRRSxpQkFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FTcEQ7SUFKQyxnQkFBZ0IsQ0FBQyxJQUFvQjtRQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDOzsrSEFWVSxpQ0FBaUM7bUhBQWpDLGlDQUFpQyxzSUNqQjlDLGc0Q0FzQ0E7NEZEckJhLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxXQUFXLEVBQUUsNkNBQTZDO29CQUMxRCxTQUFTLEVBQUUsQ0FBQyw2Q0FBNkMsQ0FBQztvQkFDMUQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs4QkFHVyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVm9jYWJ1bGFyeVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXNlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vYmFzZS1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1ub3RpZmljYXRpb24tc291cmNlLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi1zb3VyY2Utc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24tc291cmNlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Tb3VyY2VTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm90aWZpY2F0aW9uIHtcclxuICBzb3VyY2VUeXBlcyQgPSB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmdldFNvdXJjZVR5cGVzKCk7XHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHNlbGVjdGVkRmlsdGVyVHlwZTogVm9jYWJ1bGFyeVR5cGUgfCBudWxsO1xyXG5cclxuXHJcbiAgc2VsZWN0RmlsdGVyVHlwZSh0eXBlOiBWb2NhYnVsYXJ5VHlwZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy50eXBlQ2hhbmdlZC5lbWl0KHR5cGU/LmlkKTtcclxuICB9XHJcbn1cclxuIiwiPHNwYW4gW2Rpcl09XCJkaXJlY3Rpb24kIHwgYXN5bmNcIiAqbmdJZj1cInNvdXJjZVR5cGVzJCB8IGFzeW5jIGFzIHNvdXJjZVR5cGVzXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICBjbGFzcz1cInR5cGUtZmlsdGVyLXRyaWdnZXIgcHgtMlwiXHJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZmlsdGVyVHlwZU1lbnVcIlxyXG4gICAgI2ZpbHRlclR5cGVNZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcclxuICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gID5cclxuICAgIDxzcGFuPnt7XHJcbiAgICAgIChzZWxlY3RlZEZpbHRlclR5cGVcclxuICAgICAgICA/ICd2b2NhYnVsYXJ5LlZPQ19Ob3RmX1NvdXJjZVR5cGVzLicgKyBzZWxlY3RlZEZpbHRlclR5cGUucHJvcGVydGllcy5pZFxyXG4gICAgICAgIDogJ25vdGlmaWNhdGlvbnMuYWxsVHlwZXMnXHJcbiAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpY29uIGljb24tY2hldnJvbi1kb3duXCI+PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSBjbGFzcz1cInNvdXJjZS10eXBlLXNlbGVjdC1tZW51XCIgI2ZpbHRlclR5cGVNZW51PVwibWF0TWVudVwiPlxyXG4gICAgPHNwYW4gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgIGNsYXNzPVwic291cmNlLXR5cGUtc2VsZWN0LW1lbnVfX29wdGlvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZpbHRlclR5cGUobnVsbCk7IGZpbHRlclR5cGVNZW51VHJpZ2dlci5jbG9zZWQuZW1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7ICdub3RpZmljYXRpb25zLmFsbCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgIGNsYXNzPVwic291cmNlLXR5cGUtc2VsZWN0LW1lbnVfX29wdGlvblwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHR5cGUgb2Ygc291cmNlVHlwZXNcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RGaWx0ZXJUeXBlKHR5cGUpOyBmaWx0ZXJUeXBlTWVudVRyaWdnZXIuY2xvc2VkLmVtaXQoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3Bhbj57e1xyXG4gICAgICAgICAgJ3ZvY2FidWxhcnkuVk9DX05vdGZfU291cmNlVHlwZXMuJyArIHR5cGU/LnByb3BlcnRpZXMuaWQgfCB0cmFuc2xhdGVcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9zcGFuPlxyXG4iXX0=