@acorex/modules 18.1.5 → 18.1.6

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 (170) hide show
  1. package/application-management/index.d.ts +2 -0
  2. package/application-management/lib/application-management.module.d.ts +0 -2
  3. package/application-management/lib/application-management.route.d.ts +2 -0
  4. package/application-management/lib/application-management.service.d.ts +18 -0
  5. package/application-management/lib/application-management.source.d.ts +7 -0
  6. package/application-management/lib/application-management.types.d.ts +50 -0
  7. package/application-management/lib/entity.loader.d.ts +9 -0
  8. package/application-management/lib/menu.provider.d.ts +4 -0
  9. package/auth/lib/auth.module.d.ts +4 -7
  10. package/auth/lib/menu.provider.d.ts +4 -0
  11. package/backend/lib/data/api/data-provider.d.ts +1 -0
  12. package/backend/lib/data/index.d.ts +0 -1
  13. package/backend/lib/data/local/local-data-provider.d.ts +1 -0
  14. package/esm2022/application-management/index.mjs +3 -1
  15. package/esm2022/application-management/lib/application-management.module.mjs +17 -47
  16. package/esm2022/application-management/lib/application-management.route.mjs +29 -0
  17. package/esm2022/application-management/lib/application-management.service.mjs +18 -2
  18. package/esm2022/application-management/lib/application-management.source.mjs +8 -0
  19. package/esm2022/application-management/lib/application-management.types.mjs +2 -0
  20. package/esm2022/application-management/lib/entities/property.entity.mjs +1 -2
  21. package/esm2022/application-management/lib/entity.loader.mjs +46 -0
  22. package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +3 -3
  23. package/esm2022/application-management/lib/menu.provider.mjs +24 -0
  24. package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +2 -2
  25. package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +6 -3
  26. package/esm2022/auth/lib/auth.module.mjs +20 -14
  27. package/esm2022/auth/lib/login/password/password.component.mjs +2 -2
  28. package/esm2022/auth/lib/menu.provider.mjs +45 -0
  29. package/esm2022/backend/lib/backend.module.mjs +22 -26
  30. package/esm2022/backend/lib/data/api/data-provider.mjs +9 -1
  31. package/esm2022/backend/lib/data/index.mjs +1 -2
  32. package/esm2022/backend/lib/data/local/local-data-provider.mjs +11 -1
  33. package/esm2022/form-management/lib/form-management.module.mjs +32 -9
  34. package/esm2022/form-management/lib/menu.provider.mjs +29 -0
  35. package/esm2022/notification-management/index.mjs +3 -1
  36. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-item/admin-notification-item.component.mjs +8 -16
  37. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-panel/admin-notification-panel.component.mjs +31 -7
  38. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-slot/admin-notification-slot.component.mjs +3 -3
  39. package/esm2022/notification-management/lib/entities/my-notification.mjs +243 -0
  40. package/esm2022/notification-management/lib/entities/notification-channel.entity.mjs +2 -3
  41. package/esm2022/notification-management/lib/entities/notification-log.entity.mjs +180 -0
  42. package/esm2022/notification-management/lib/entity.loader.mjs +41 -0
  43. package/esm2022/notification-management/lib/menu.provider.mjs +51 -0
  44. package/esm2022/notification-management/lib/notification-management-mock-data.mjs +2 -2
  45. package/esm2022/notification-management/lib/notification-management.module.mjs +34 -39
  46. package/esm2022/notification-management/lib/notification-management.type.mjs +1 -1
  47. package/esm2022/notification-management/lib/notification.service.mjs +1 -1
  48. package/esm2022/{language-management/acorex-modules-language-management.mjs → platform-management/acorex-modules-platform-management.mjs} +1 -1
  49. package/esm2022/platform-management/index.mjs +5 -0
  50. package/esm2022/platform-management/lib/comments/comment-management.service.mjs +18 -0
  51. package/esm2022/platform-management/lib/global-variables/entities/global-variable.entity.mjs +295 -0
  52. package/esm2022/platform-management/lib/global-variables/entity.loader.mjs +26 -0
  53. package/esm2022/platform-management/lib/global-variables/global-variables.service.mjs +16 -0
  54. package/esm2022/platform-management/lib/global-variables/global-variables.types.mjs +2 -0
  55. package/esm2022/platform-management/lib/global-variables/index.mjs +5 -0
  56. package/esm2022/platform-management/lib/languages/entities/language.entity.mjs +234 -0
  57. package/esm2022/platform-management/lib/languages/entity.loader.mjs +26 -0
  58. package/esm2022/platform-management/lib/languages/index.mjs +5 -0
  59. package/esm2022/platform-management/lib/languages/language-management.service.mjs +16 -0
  60. package/esm2022/platform-management/lib/languages/language.types.mjs +2 -0
  61. package/esm2022/platform-management/lib/menu.provider.mjs +46 -0
  62. package/esm2022/platform-management/lib/platform-management.module.mjs +82 -0
  63. package/esm2022/template-management/index.mjs +7 -3
  64. package/esm2022/template-management/lib/entities/category.entity.mjs +233 -0
  65. package/esm2022/template-management/lib/entities/index.mjs +4 -0
  66. package/esm2022/template-management/lib/entities/template-variable.entity.mjs +113 -110
  67. package/esm2022/template-management/lib/entities/text-template.entity.mjs +385 -0
  68. package/esm2022/template-management/lib/entity.loader.mjs +36 -0
  69. package/esm2022/template-management/lib/menu.provider.mjs +37 -0
  70. package/esm2022/template-management/lib/template-management.module.mjs +53 -37
  71. package/esm2022/template-management/lib/template-management.types.mjs +2 -0
  72. package/esm2022/template-management/lib/template.service.mjs +17 -0
  73. package/esm2022/template-management/lib/text-management.source.mjs +3 -0
  74. package/esm2022/template-management/lib/text-template-category.service.mjs +17 -0
  75. package/fesm2022/{acorex-modules-application-management-module-designer.component-CFLXuP2G.mjs → acorex-modules-application-management-module-designer.component-BCaCCEXO.mjs} +2 -2
  76. package/fesm2022/{acorex-modules-application-management-module-designer.component-CFLXuP2G.mjs.map → acorex-modules-application-management-module-designer.component-BCaCCEXO.mjs.map} +1 -1
  77. package/fesm2022/acorex-modules-application-management.mjs +140 -50
  78. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  79. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-iGiPFEeb.mjs → acorex-modules-auth-acorex-modules-auth-B0aeYVeJ.mjs} +78 -24
  80. package/fesm2022/acorex-modules-auth-acorex-modules-auth-B0aeYVeJ.mjs.map +1 -0
  81. package/fesm2022/{acorex-modules-auth-app-chooser.component-BB3SIzCP.mjs → acorex-modules-auth-app-chooser.component-4b6b3ttW.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-auth-app-chooser.component-BB3SIzCP.mjs.map → acorex-modules-auth-app-chooser.component-4b6b3ttW.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-auth-login.module-ChEv9c5I.mjs → acorex-modules-auth-login.module-A7u1YYeo.mjs} +4 -4
  84. package/fesm2022/{acorex-modules-auth-login.module-ChEv9c5I.mjs.map → acorex-modules-auth-login.module-A7u1YYeo.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-auth-master.layout-CZv3BD5c.mjs → acorex-modules-auth-master.layout--UllrmW0.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-auth-master.layout-CZv3BD5c.mjs.map → acorex-modules-auth-master.layout--UllrmW0.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-auth-password.component-CxZ1weks.mjs → acorex-modules-auth-password.component-BjqQ-qVo.mjs} +3 -3
  88. package/fesm2022/acorex-modules-auth-password.component-BjqQ-qVo.mjs.map +1 -0
  89. package/fesm2022/{acorex-modules-auth-password.component-CPWiBXdG.mjs → acorex-modules-auth-password.component-Dv0VXzh_.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-auth-password.component-CPWiBXdG.mjs.map → acorex-modules-auth-password.component-Dv0VXzh_.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-auth-routes-C7r2Jm6s.mjs → acorex-modules-auth-routes-C4eNPru3.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-auth-routes-C7r2Jm6s.mjs.map → acorex-modules-auth-routes-C4eNPru3.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-auth-two-factor.module-BgkJYe7T.mjs → acorex-modules-auth-two-factor.module-C6V_pb_Q.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-auth-two-factor.module-BgkJYe7T.mjs.map → acorex-modules-auth-two-factor.module-C6V_pb_Q.mjs.map} +1 -1
  95. package/fesm2022/acorex-modules-auth.mjs +1 -1
  96. package/fesm2022/acorex-modules-backend.mjs +40 -232
  97. package/fesm2022/acorex-modules-backend.mjs.map +1 -1
  98. package/fesm2022/acorex-modules-form-management.mjs +57 -6
  99. package/fesm2022/acorex-modules-form-management.mjs.map +1 -1
  100. package/fesm2022/acorex-modules-notification-management.mjs +590 -64
  101. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  102. package/fesm2022/acorex-modules-platform-management.mjs +752 -0
  103. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -0
  104. package/fesm2022/acorex-modules-template-management.mjs +600 -194
  105. package/fesm2022/acorex-modules-template-management.mjs.map +1 -1
  106. package/form-management/lib/form-management.module.d.ts +2 -2
  107. package/form-management/lib/menu.provider.d.ts +4 -0
  108. package/notification-management/index.d.ts +2 -0
  109. package/notification-management/lib/admin-notification-slot/admin-notification-item/admin-notification-item.component.d.ts +0 -4
  110. package/notification-management/lib/admin-notification-slot/admin-notification-panel/admin-notification-panel.component.d.ts +7 -2
  111. package/{template-management/lib/entities/global-template.entity.d.ts → notification-management/lib/entities/my-notification.d.ts} +1 -1
  112. package/notification-management/lib/entities/notification-log.entity.d.ts +3 -0
  113. package/notification-management/lib/entity.loader.d.ts +9 -0
  114. package/notification-management/lib/menu.provider.d.ts +4 -0
  115. package/notification-management/lib/notification-management-mock-data.d.ts +2 -3
  116. package/notification-management/lib/notification-management.module.d.ts +1 -7
  117. package/notification-management/lib/notification-management.service.d.ts +2 -2
  118. package/notification-management/lib/notification-management.type.d.ts +1 -1
  119. package/notification-management/lib/notification.service.d.ts +3 -4
  120. package/package.json +6 -6
  121. package/platform-management/README.md +4 -0
  122. package/platform-management/index.d.ts +4 -0
  123. package/platform-management/lib/comments/comment-management.service.d.ts +10 -0
  124. package/platform-management/lib/global-variables/entities/global-variable.entity.d.ts +3 -0
  125. package/platform-management/lib/global-variables/entity.loader.d.ts +9 -0
  126. package/platform-management/lib/global-variables/global-variables.service.d.ts +10 -0
  127. package/platform-management/lib/global-variables/global-variables.types.d.ts +7 -0
  128. package/platform-management/lib/global-variables/index.d.ts +4 -0
  129. package/platform-management/lib/languages/entity.loader.d.ts +9 -0
  130. package/platform-management/lib/languages/index.d.ts +4 -0
  131. package/platform-management/lib/languages/language-management.service.d.ts +10 -0
  132. package/platform-management/lib/languages/language.types.d.ts +5 -0
  133. package/platform-management/lib/menu.provider.d.ts +4 -0
  134. package/platform-management/lib/platform-management.module.d.ts +6 -0
  135. package/template-management/index.d.ts +6 -2
  136. package/template-management/lib/entities/category.entity.d.ts +3 -0
  137. package/template-management/lib/entities/index.d.ts +3 -0
  138. package/template-management/lib/entities/template-variable.entity.d.ts +1 -1
  139. package/template-management/lib/entities/text-template.entity.d.ts +3 -0
  140. package/template-management/lib/entity.loader.d.ts +9 -0
  141. package/template-management/lib/menu.provider.d.ts +4 -0
  142. package/template-management/lib/template-management.module.d.ts +4 -10
  143. package/template-management/lib/template-management.types.d.ts +19 -0
  144. package/template-management/lib/template.service.d.ts +10 -0
  145. package/template-management/lib/text-management.source.d.ts +2 -0
  146. package/template-management/lib/text-template-category.service.d.ts +10 -0
  147. package/backend/lib/data/api/comment.mock.service.d.ts +0 -62
  148. package/backend/lib/data/api/notification.mock.service.d.ts +0 -34
  149. package/esm2022/backend/lib/data/api/comment.mock.service.mjs +0 -142
  150. package/esm2022/backend/lib/data/api/notification.mock.service.mjs +0 -71
  151. package/esm2022/language-management/index.mjs +0 -2
  152. package/esm2022/language-management/lib/entities/language.entity.mjs +0 -242
  153. package/esm2022/language-management/lib/language-management.module.mjs +0 -39
  154. package/esm2022/language-management/lib/notification-management.service.mjs +0 -23
  155. package/esm2022/template-management/lib/entities/global-template.entity.mjs +0 -298
  156. package/esm2022/template-management/lib/template-management-mock-data.mjs +0 -11
  157. package/esm2022/template-management/lib/template-management.service.mjs +0 -24
  158. package/fesm2022/acorex-modules-auth-acorex-modules-auth-iGiPFEeb.mjs.map +0 -1
  159. package/fesm2022/acorex-modules-auth-password.component-CxZ1weks.mjs.map +0 -1
  160. package/fesm2022/acorex-modules-language-management-language.entity-CwD5FHGc.mjs +0 -266
  161. package/fesm2022/acorex-modules-language-management-language.entity-CwD5FHGc.mjs.map +0 -1
  162. package/fesm2022/acorex-modules-language-management.mjs +0 -46
  163. package/fesm2022/acorex-modules-language-management.mjs.map +0 -1
  164. package/language-management/README.md +0 -3
  165. package/language-management/index.d.ts +0 -1
  166. package/language-management/lib/language-management.module.d.ts +0 -12
  167. package/language-management/lib/notification-management.service.d.ts +0 -9
  168. package/template-management/lib/template-management-mock-data.d.ts +0 -7
  169. package/template-management/lib/template-management.service.d.ts +0 -9
  170. /package/{language-management/lib → platform-management/lib/languages}/entities/language.entity.d.ts +0 -0
@@ -5,8 +5,10 @@ import { AXPopoverModule } from '@acorex/components/popover';
5
5
  import { AXTabsModule } from '@acorex/components/tabs';
6
6
  import { AXToastService } from '@acorex/components/toast';
7
7
  import { AXFormatModule } from '@acorex/core/format';
8
+ import { AXPSessionService } from '@acorex/platform/auth';
8
9
  import { CommonModule } from '@angular/common';
9
10
  import { ChangeDetectionStrategy, Component, computed, effect, inject, output, signal } from '@angular/core';
11
+ import { Router } from '@angular/router';
10
12
  import { AXMNotificationService } from '../../notification.service';
11
13
  import { AXMAdminNotificationItemComponent } from '../admin-notification-item/admin-notification-item.component';
12
14
  import * as i0 from "@angular/core";
@@ -19,6 +21,8 @@ export class AXMAdminNotificationPanelComponent {
19
21
  this.onNewNotfication = output();
20
22
  this.notificationService = inject(AXMNotificationService);
21
23
  this.toastService = inject(AXToastService);
24
+ this.router = inject(Router);
25
+ this.sessionService = inject(AXPSessionService);
22
26
  this.notifications = signal(undefined);
23
27
  this.totalNotifications = signal(undefined);
24
28
  this.tabItems = computed(() => this.getTabItems(this.notifications()), {
@@ -27,9 +31,6 @@ export class AXMAdminNotificationPanelComponent {
27
31
  this.activeTab = signal('All');
28
32
  this.NewNotification = computed(() => this.getNewNotification(this.tabItems()));
29
33
  this.NewNotificationEffect = effect(() => this.onNewNotfication.emit(this.NewNotification()));
30
- this.onPressNotificationItem = (id) => {
31
- this.notifications.update((old) => old?.map((item) => (item.id === id && !item.readAt ? { ...item, readAt: new Date() } : item)));
32
- };
33
34
  }
34
35
  changeActiveTab(tab) {
35
36
  this.activeTab.set(tab);
@@ -104,7 +105,27 @@ export class AXMAdminNotificationPanelComponent {
104
105
  }
105
106
  }
106
107
  //
107
- markAllAsRead() {
108
+ async markAsRead(id) {
109
+ try {
110
+ const payload = { id: [id] };
111
+ await this.notificationService.markAsRead(payload);
112
+ this.toggleRead(id);
113
+ }
114
+ catch (error) { }
115
+ }
116
+ toggleRead(id) {
117
+ this.notifications.update((old) => old?.map((item) => (item.id === id ? { ...item, readAt: item.readAt ? null : new Date() } : item)));
118
+ }
119
+ async markAllAsRead() {
120
+ try {
121
+ await this.notificationService.markAsRead();
122
+ this.toggleMarkAllAsRead();
123
+ }
124
+ catch (error) {
125
+ console.error(error);
126
+ }
127
+ }
128
+ toggleMarkAllAsRead() {
108
129
  this.notifications.update((notification) => notification?.map((item) => {
109
130
  if (!item.readAt) {
110
131
  return { ...item, readAt: new Date() };
@@ -112,8 +133,11 @@ export class AXMAdminNotificationPanelComponent {
112
133
  return item;
113
134
  }));
114
135
  }
136
+ viewAllNotifications() {
137
+ this.router.navigate([`${this.sessionService.application?.name}/m/notification-management/e/my-notification/list`]);
138
+ }
115
139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for(tab of tabItems(); track tab.text){\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if(tab.count){\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] ax-overflow-y-auto\">\n @for(notif of getNotificationItems(tab.text); track notif.id){\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"onPressNotificationItem($event)\"\n ></axp-master-notification-item>\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n color=\"ghost\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for(tab of tabItems(); track tab.text){\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if(tab.count){\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] ax-overflow-y-auto\">\n @for(notif of getNotificationItems(tab.text); track notif.id){\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n color=\"ghost\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
141
  }
118
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
119
143
  type: Component,
@@ -126,6 +150,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
126
150
  AXPopoverModule,
127
151
  AXMAdminNotificationItemComponent,
128
152
  AXFormatModule,
129
- ], template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for(tab of tabItems(); track tab.text){\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if(tab.count){\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] ax-overflow-y-auto\">\n @for(notif of getNotificationItems(tab.text); track notif.id){\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"onPressNotificationItem($event)\"\n ></axp-master-notification-item>\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n color=\"ghost\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n" }]
153
+ ], template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for(tab of tabItems(); track tab.text){\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if(tab.count){\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] ax-overflow-y-auto\">\n @for(notif of getNotificationItems(tab.text); track notif.id){\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n color=\"ghost\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n" }]
130
154
  }] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9ub3RpZmljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2FkbWluLW5vdGlmaWNhdGlvbi1zbG90L2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC9hZG1pbi1ub3RpZmljYXRpb24tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsL2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTXJILE9BQU8sRUFBRSxzQkFBc0Is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SSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQTBCLENBQUM7UUFDOUcsQ0FBQztJQUNILENBQUM7SUFDRCxFQUFFO0lBQ1EsYUFBYTtRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ3pDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0E1R1Usa0NBQWtDO2tHQUFsQyxrQ0FBa0MsMklDaEMvQywwaERBd0NBLDJDRGxCSSxZQUFZLDhCQUNaLGNBQWMsdVpBQ2QsWUFBWSwyaUJBQ1osaUJBQWlCLHVWQUNqQixhQUFhLHlJQUNiLGVBQWUsK0JBQ2YsaUNBQWlDLGdJQUNqQyxjQUFjOzsyRkFHTCxrQ0FBa0M7a0JBaEI5QyxTQUFTOytCQUNFLDhCQUE4QixjQUU1QixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyxjQUFjO3FCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhNTm90aWZpY2F0aW9uQ2F0ZWdvcnksXG4gIEFYTU5vdGlmaWNhdGlvbkl0ZW0sXG4gIEFYTU5vdGlmaWNhdGlvblJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24tbWFuYWdlbWVudC50eXBlJztcbmltcG9ydCB7IEFYTU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBWE1BZG1pbk5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9hZG1pbi1ub3RpZmljYXRpb24taXRlbS9hZG1pbi1ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhtLWFkbWluLW5vdGlmaWNhdGlvbi1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1ub3RpZmljYXRpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhNQWRtaW5Ob3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEFYRm9ybWF0TW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb25OZXdOb3RmaWNhdGlvbiA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYTU5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0U2VydmljZSA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG5cbiAgbm90aWZpY2F0aW9ucyA9IHNpZ25hbDxBWE1Ob3RpZmljYXRpb25JdGVtW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHRvdGFsTm90aWZpY2F0aW9ucyA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgdGFiSXRlbXMgPSBjb21wdXRlZDxBWFRhYkRhdGFbXT4oKCkgPT4gdGhpcy5nZXRUYWJJdGVtcyh0aGlzLm5vdGlmaWNhdGlvbnMoKSksIHtcbiAgICBlcXVhbDogKGEsIGIpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSxcbiAgfSk7XG4gIGFjdGl2ZVRhYiA9IHNpZ25hbDxBWE1UYWJEYXRhVGV4dD4oJ0FsbCcpO1xuXG4gIGNoYW5nZUFjdGl2ZVRhYih0YWI6IEFYTVRhYkRhdGFUZXh0KSB7XG4gICAgdGhpcy5hY3RpdmVUYWIuc2V0KHRhYik7XG4gIH1cblxuICBOZXdOb3RpZmljYXRpb24gPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMuZ2V0TmV3Tm90aWZpY2F0aW9uKHRoaXMudGFiSXRlbXMoKSkpO1xuICBOZXdOb3RpZmljYXRpb25FZmZlY3QgPSBlZmZlY3QoKCkgPT4gdGhpcy5vbk5ld05vdGZpY2F0aW9uLmVtaXQodGhpcy5OZXdOb3RpZmljYXRpb24oKSkpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE5vdGlmaWNhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTm90aWZpY2F0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZTogQVhNTm90aWZpY2F0aW9uUmVzcG9uc2UgPSBhd2FpdCB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0TGlzdCgpO1xuICAgICAgdGhpcy50b3RhbE5vdGlmaWNhdGlvbnMuc2V0KHJlc3BvbnNlLnRvdGFsKTtcbiAgICAgIGNvbnN0IG9yZGVyZWRSZXNwb25zZSA9IHJlc3BvbnNlLml0ZW1zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEudGVtcGxhdGUuaXNQaW5uZWQgPT09IGIudGVtcGxhdGUuaXNQaW5uZWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUoYS5jcmVhdGVBdCkuZ2V0VGltZSgpIC0gbmV3IERhdGUoYi5jcmVhdGVBdCkuZ2V0VGltZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhLnRlbXBsYXRlLmlzUGlubmVkID8gMSA6IC0xO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuc2V0KG9yZGVyZWRSZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICBjb250ZW50OiB0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnID8gZXJyb3IgOiAnRmFpbGVkIHRvIGxvYWQgbm90aWZpY2F0aW9ucyEnLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25QcmVzc05vdGlmaWNhdGlvbkl0ZW0gPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIHRoaXMubm90aWZpY2F0aW9ucy51cGRhdGUoKG9sZCkgPT5cbiAgICAgIG9sZD8ubWFwKChpdGVtKSA9PiAoaXRlbS5pZCA9PT0gaWQgJiYgIWl0ZW0ucmVhZEF0ID8geyAuLi5pdGVtLCByZWFkQXQ6IG5ldyBEYXRlKCkgfSA6IGl0ZW0pKVxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXRUYWJJdGVtcyhub3RpZmljYXRpb25zOiBBWE1Ob3RpZmljYXRpb25JdGVtW10gfCB1bmRlZmluZWQpOiBBWFRhYkRhdGFbXSB7XG4gICAgaWYgKCFub3RpZmljYXRpb25zKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0FsbCcsXG4gICAgICAgICAgLy9hY3RpdmU6IHRydWUsXG4gICAgICAgICAgY291bnQ6IDAsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBjb25zdCBjYXRlZ29yeUNvdW50TWFwID0gbmV3IE1hcDxBWE1UYWJEYXRhVGV4dCwgbnVtYmVyPigpO1xuICAgIG5vdGlmaWNhdGlvbnMuZm9yRWFjaCgobm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IG5vdGlmaWNhdGlvbi50ZW1wbGF0ZS5jYXRlZ29yeTtcbiAgICAgIGlmICghY2F0ZWdvcnlDb3VudE1hcC5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgIGNhdGVnb3J5Q291bnRNYXAuc2V0KGNhdGVnb3J5LCAwKTtcbiAgICAgIH1cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLnJlYWRBdCkge1xuICAgICAgICBjYXRlZ29yeUNvdW50TWFwLnNldChjYXRlZ29yeSwgY2F0ZWdvcnlDb3VudE1hcC5nZXQoY2F0ZWdvcnkpISArIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHRhYkl0ZW1zID0gQXJyYXkuZnJvbShjYXRlZ29yeUNvdW50TWFwLmVudHJpZXMoKSkubWFwKChbY2F0ZWdvcnksIGNvdW50XSkgPT4gKHtcbiAgICAgIHRleHQ6IGNhdGVnb3J5LFxuICAgICAgY291bnQ6IGNvdW50LFxuICAgIH0pKTtcbiAgICBjb25zdCB0b3RhbENvdW50ID0gQXJyYXkuZnJvbShjYXRlZ29yeUNvdW50TWFwLnZhbHVlcygpKS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKTtcbiAgICB0YWJJdGVtcy51bnNoaWZ0KHtcbiAgICAgIHRleHQ6ICdBbGwnLFxuICAgICAgY291bnQ6IHRvdGFsQ291bnQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRhYkl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXdOb3RpZmljYXRpb24oZGF0YTogQVhUYWJEYXRhW10pOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gZGF0YS5maWx0ZXIoKHRhYikgPT4gdGFiLnRleHQgIT09ICdBbGwnKS5yZWR1Y2UoKHN1bSwgdGFiKSA9PiBzdW0gKyB0YWIuY291bnQsIDApO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXROb3RpZmljYXRpb25JdGVtcyhjYXRlZ29yeTogQVhNVGFiRGF0YVRleHQpIHtcbiAgICBpZiAoY2F0ZWdvcnkgPT09ICdBbGwnKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnMoKT8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlLmNhdGVnb3J5ID09PSBjYXRlZ29yeSkgYXMgQVhNTm90aWZpY2F0aW9uSXRlbVtdO1xuICAgIH1cbiAgfVxuICAvL1xuICBwcm90ZWN0ZWQgbWFya0FsbEFzUmVhZCgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKChub3RpZmljYXRpb24pID0+XG4gICAgICBub3RpZmljYXRpb24/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoIWl0ZW0ucmVhZEF0KSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgcmVhZEF0OiBuZXcgRGF0ZSgpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEFYVGFiRGF0YSB7XG4gIHRleHQ6IEFYTVRhYkRhdGFUZXh0O1xuICBjb3VudDogbnVtYmVyO1xufVxudHlwZSBBWE1UYWJEYXRhVGV4dCA9IEFYTU5vdGlmaWNhdGlvbkNhdGVnb3J5IHwgJ0FsbCc7XG4iLCI8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICA8c3BhbiBjbGFzcz1cImF4LXRleHQteGxcIj5Ob3RpZmljYXRpb25zPC9zcGFuPlxuICA8YXgtYnV0dG9uIGNvbG9yPVwiZGVmYXVsdFwiIGxvb2s9XCJibGFua1wiPlxuICAgIDxheC1pY29uPlxuICAgICAgPGkgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWdlYXIgZmEtbGdcIj48L2k+XG4gICAgPC9heC1pY29uPlxuICA8L2F4LWJ1dHRvbj5cbjwvZGl2PlxuPGF4LXRhYnMgW2NvbnRlbnRdPVwiY29uc1wiIGxvb2s9XCJ3aXRoLWxpbmVcIiBsb2NhdGlvbj1cImJvdHRvbVwiPlxuICBAZm9yKHRhYiBvZiB0YWJJdGVtcygpOyB0cmFjayB0YWIudGV4dCl7XG4gIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGV4dFwiIFthY3RpdmVdPVwiYWN0aXZlVGFiKCkgPT09IHRhYi50ZXh0XCIgKGFjdGl2ZUNoYW5nZSk9XCJjaGFuZ2VBY3RpdmVUYWIodGFiLnRleHQpXCI+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgIEBpZih0YWIuY291bnQpe1xuICAgICAgPGF4LWJhZGdlIFtjb2xvcl09XCJhY3RpdmVUYWIoKSA9PT0gdGFiLnRleHQgPyAncHJpbWFyeScgOiAnZ2hvc3QnXCIgW3RleHRdPVwidGFiLmNvdW50LnRvU3RyaW5nKClcIj48L2F4LWJhZGdlPlxuICAgICAgfVxuICAgIDwvYXgtc3VmZml4PlxuICAgIDxheC1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1heC1oLVs1MHZoXSBheC1vdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgQGZvcihub3RpZiBvZiBnZXROb3RpZmljYXRpb25JdGVtcyh0YWIudGV4dCk7IHRyYWNrIG5vdGlmLmlkKXtcbiAgICAgICAgPGF4cC1tYXN0ZXItbm90aWZpY2F0aW9uLWl0ZW1cbiAgICAgICAgICBbZGF0YV09XCJub3RpZlwiXG4gICAgICAgICAgKG9uUHJlc3NOb3RpZmljYXRpb25JdGVtKT1cIm9uUHJlc3NOb3RpZmljYXRpb25JdGVtKCRldmVudClcIlxuICAgICAgICA+PC9heHAtbWFzdGVyLW5vdGlmaWNhdGlvbi1pdGVtPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC00IGF4LWp1c3RpZnktYmV0d2VlbiBheC1wLTQgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWRlZmF1bHRcIj5cbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJOZXdOb3RpZmljYXRpb24oKSA9PT0gMFwiXG4gICAgICAgICAgY29sb3I9XCJnaG9zdFwiXG4gICAgICAgICAgdGV4dD1cIk1hcmsgYWxsIGFzIHJlYWRcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIm1hcmtBbGxBc1JlYWQoKVwiXG4gICAgICAgID48L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiVmlldyBhbGwgbm90aWZpY2F0aW9uc1wiPjwvYXgtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LXRhYi1pdGVtPlxuICB9XG48L2F4LXRhYnM+XG5cbjxuZy10ZW1wbGF0ZSBbYXhUYWJDb250ZW50XSAjY29ucz1cImF4VGFiQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9ub3RpZmljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2FkbWluLW5vdGlmaWNhdGlvbi1zbG90L2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC9hZG1pbi1ub3RpZmljYXRpb24tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsL2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFB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Z0JBQ2pCLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ1Msb0JBQW9CO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLG1EQUFtRCxDQUFDLENBQUMsQ0FBQztJQUN0SCxDQUFDOzhHQW5JVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywySUNuQy9DLGtqREF3Q0EsMkNEZkksWUFBWSw4QkFDWixjQUFjLHVaQUNkLFlBQVksMmlCQUNaLGlCQUFpQix1VkFDakIsYUFBYSx5SUFDYixlQUFlLCtCQUNmLGlDQUFpQyxnSUFDakMsY0FBYzs7MkZBR0wsa0NBQWtDO2tCQWhCOUMsU0FBUzsrQkFDRSw4QkFBOEIsY0FFNUIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlDQUFpQzt3QkFDakMsY0FBYztxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhGb3JtYXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBWE1Ob3RpZmljYXRpb25DYXRlZ29yeSxcbiAgQVhNTm90aWZpY2F0aW9uSXRlbSxcbiAgQVhNTm90aWZpY2F0aW9uTWFya0FzUmVhZFJlcXVlc3QsXG4gIEFYTU5vdGlmaWNhdGlvblJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24tbWFuYWdlbWVudC50eXBlJztcbmltcG9ydCB7IEFYTU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBWE1BZG1pbk5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9hZG1pbi1ub3RpZmljYXRpb24taXRlbS9hZG1pbi1ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhtLWFkbWluLW5vdGlmaWNhdGlvbi1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1ub3RpZmljYXRpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhNQWRtaW5Ob3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEFYRm9ybWF0TW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb25OZXdOb3RmaWNhdGlvbiA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYTU5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0U2VydmljZSA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIG5vdGlmaWNhdGlvbnMgPSBzaWduYWw8QVhNTm90aWZpY2F0aW9uSXRlbVtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICB0b3RhbE5vdGlmaWNhdGlvbnMgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHRhYkl0ZW1zID0gY29tcHV0ZWQ8QVhUYWJEYXRhW10+KCgpID0+IHRoaXMuZ2V0VGFiSXRlbXModGhpcy5ub3RpZmljYXRpb25zKCkpLCB7XG4gICAgZXF1YWw6IChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gIH0pO1xuICBhY3RpdmVUYWIgPSBzaWduYWw8QVhNVGFiRGF0YVRleHQ+KCdBbGwnKTtcblxuICBjaGFuZ2VBY3RpdmVUYWIodGFiOiBBWE1UYWJEYXRhVGV4dCkge1xuICAgIHRoaXMuYWN0aXZlVGFiLnNldCh0YWIpO1xuICB9XG5cbiAgTmV3Tm90aWZpY2F0aW9uID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB0aGlzLmdldE5ld05vdGlmaWNhdGlvbih0aGlzLnRhYkl0ZW1zKCkpKTtcbiAgTmV3Tm90aWZpY2F0aW9uRWZmZWN0ID0gZWZmZWN0KCgpID0+IHRoaXMub25OZXdOb3RmaWNhdGlvbi5lbWl0KHRoaXMuTmV3Tm90aWZpY2F0aW9uKCkpKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWROb3RpZmljYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE5vdGlmaWNhdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IEFYTU5vdGlmaWNhdGlvblJlc3BvbnNlID0gYXdhaXQgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldExpc3QoKTtcbiAgICAgIHRoaXMudG90YWxOb3RpZmljYXRpb25zLnNldChyZXNwb25zZS50b3RhbCk7XG4gICAgICBjb25zdCBvcmRlcmVkUmVzcG9uc2UgPSByZXNwb25zZS5pdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLnRlbXBsYXRlLmlzUGlubmVkID09PSBiLnRlbXBsYXRlLmlzUGlubmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGEuY3JlYXRlQXQpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGIuY3JlYXRlQXQpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYS50ZW1wbGF0ZS5pc1Bpbm5lZCA/IDEgOiAtMTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnNldChvcmRlcmVkUmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgY29udGVudDogdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyA/IGVycm9yIDogJ0ZhaWxlZCB0byBsb2FkIG5vdGlmaWNhdGlvbnMhJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJJdGVtcyhub3RpZmljYXRpb25zOiBBWE1Ob3RpZmljYXRpb25JdGVtW10gfCB1bmRlZmluZWQpOiBBWFRhYkRhdGFbXSB7XG4gICAgaWYgKCFub3RpZmljYXRpb25zKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0FsbCcsXG4gICAgICAgICAgLy9hY3RpdmU6IHRydWUsXG4gICAgICAgICAgY291bnQ6IDAsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICBjb25zdCBjYXRlZ29yeUNvdW50TWFwID0gbmV3IE1hcDxBWE1UYWJEYXRhVGV4dCwgbnVtYmVyPigpO1xuICAgIG5vdGlmaWNhdGlvbnMuZm9yRWFjaCgobm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IG5vdGlmaWNhdGlvbi50ZW1wbGF0ZS5jYXRlZ29yeTtcbiAgICAgIGlmICghY2F0ZWdvcnlDb3VudE1hcC5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgIGNhdGVnb3J5Q291bnRNYXAuc2V0KGNhdGVnb3J5LCAwKTtcbiAgICAgIH1cbiAgICAgIGlmICghbm90aWZpY2F0aW9uLnJlYWRBdCkge1xuICAgICAgICBjYXRlZ29yeUNvdW50TWFwLnNldChjYXRlZ29yeSwgY2F0ZWdvcnlDb3VudE1hcC5nZXQoY2F0ZWdvcnkpISArIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHRhYkl0ZW1zID0gQXJyYXkuZnJvbShjYXRlZ29yeUNvdW50TWFwLmVudHJpZXMoKSkubWFwKChbY2F0ZWdvcnksIGNvdW50XSkgPT4gKHtcbiAgICAgIHRleHQ6IGNhdGVnb3J5LFxuICAgICAgY291bnQ6IGNvdW50LFxuICAgIH0pKTtcbiAgICBjb25zdCB0b3RhbENvdW50ID0gQXJyYXkuZnJvbShjYXRlZ29yeUNvdW50TWFwLnZhbHVlcygpKS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKTtcbiAgICB0YWJJdGVtcy51bnNoaWZ0KHtcbiAgICAgIHRleHQ6ICdBbGwnLFxuICAgICAgY291bnQ6IHRvdGFsQ291bnQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRhYkl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXdOb3RpZmljYXRpb24oZGF0YTogQVhUYWJEYXRhW10pOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gZGF0YS5maWx0ZXIoKHRhYikgPT4gdGFiLnRleHQgIT09ICdBbGwnKS5yZWR1Y2UoKHN1bSwgdGFiKSA9PiBzdW0gKyB0YWIuY291bnQsIDApO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXROb3RpZmljYXRpb25JdGVtcyhjYXRlZ29yeTogQVhNVGFiRGF0YVRleHQpIHtcbiAgICBpZiAoY2F0ZWdvcnkgPT09ICdBbGwnKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnMoKT8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlLmNhdGVnb3J5ID09PSBjYXRlZ29yeSkgYXMgQVhNTm90aWZpY2F0aW9uSXRlbVtdO1xuICAgIH1cbiAgfVxuICAvL1xuXG4gIHByb3RlY3RlZCBhc3luYyBtYXJrQXNSZWFkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGF5bG9hZDogQVhNTm90aWZpY2F0aW9uTWFya0FzUmVhZFJlcXVlc3QgPSB7IGlkOiBbaWRdIH07XG4gICAgICBhd2FpdCB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWFya0FzUmVhZChwYXlsb2FkKTtcbiAgICAgIHRoaXMudG9nZ2xlUmVhZChpZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVJlYWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9ucy51cGRhdGUoKG9sZCkgPT5cbiAgICAgIG9sZD8ubWFwKChpdGVtKSA9PiAoaXRlbS5pZCA9PT0gaWQgPyB7IC4uLml0ZW0sIHJlYWRBdDogaXRlbS5yZWFkQXQgPyBudWxsIDogbmV3IERhdGUoKSB9IDogaXRlbSkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBtYXJrQWxsQXNSZWFkKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWFya0FzUmVhZCgpO1xuICAgICAgdGhpcy50b2dnbGVNYXJrQWxsQXNSZWFkKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTWFya0FsbEFzUmVhZCgpIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKChub3RpZmljYXRpb24pID0+XG4gICAgICBub3RpZmljYXRpb24/Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoIWl0ZW0ucmVhZEF0KSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgcmVhZEF0OiBuZXcgRGF0ZSgpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgcHJvdGVjdGVkIHZpZXdBbGxOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lfS9tL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L2UvbXktbm90aWZpY2F0aW9uL2xpc3RgXSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEFYVGFiRGF0YSB7XG4gIHRleHQ6IEFYTVRhYkRhdGFUZXh0O1xuICBjb3VudDogbnVtYmVyO1xufVxudHlwZSBBWE1UYWJEYXRhVGV4dCA9IEFYTU5vdGlmaWNhdGlvbkNhdGVnb3J5IHwgJ0FsbCc7XG4iLCI8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlclwiPlxuICA8c3BhbiBjbGFzcz1cImF4LXRleHQteGxcIj5Ob3RpZmljYXRpb25zPC9zcGFuPlxuICA8YXgtYnV0dG9uIGNvbG9yPVwiZGVmYXVsdFwiIGxvb2s9XCJibGFua1wiPlxuICAgIDxheC1pY29uPlxuICAgICAgPGkgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWdlYXIgZmEtbGdcIj48L2k+XG4gICAgPC9heC1pY29uPlxuICA8L2F4LWJ1dHRvbj5cbjwvZGl2PlxuPGF4LXRhYnMgW2NvbnRlbnRdPVwiY29uc1wiIGxvb2s9XCJ3aXRoLWxpbmVcIiBsb2NhdGlvbj1cImJvdHRvbVwiPlxuICBAZm9yKHRhYiBvZiB0YWJJdGVtcygpOyB0cmFjayB0YWIudGV4dCl7XG4gIDxheC10YWItaXRlbSBbdGV4dF09XCJ0YWIudGV4dFwiIFthY3RpdmVdPVwiYWN0aXZlVGFiKCkgPT09IHRhYi50ZXh0XCIgKGFjdGl2ZUNoYW5nZSk9XCJjaGFuZ2VBY3RpdmVUYWIodGFiLnRleHQpXCI+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgIEBpZih0YWIuY291bnQpe1xuICAgICAgPGF4LWJhZGdlIFtjb2xvcl09XCJhY3RpdmVUYWIoKSA9PT0gdGFiLnRleHQgPyAncHJpbWFyeScgOiAnZ2hvc3QnXCIgW3RleHRdPVwidGFiLmNvdW50LnRvU3RyaW5nKClcIj48L2F4LWJhZGdlPlxuICAgICAgfVxuICAgIDwvYXgtc3VmZml4PlxuICAgIDxheC1jb250ZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1heC1oLVs1MHZoXSBheC1vdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgQGZvcihub3RpZiBvZiBnZXROb3RpZmljYXRpb25JdGVtcyh0YWIudGV4dCk7IHRyYWNrIG5vdGlmLmlkKXtcbiAgICAgICAgPGF4cC1tYXN0ZXItbm90aWZpY2F0aW9uLWl0ZW1cbiAgICAgICAgICBbZGF0YV09XCJub3RpZlwiXG4gICAgICAgICAgKG9uUHJlc3NOb3RpZmljYXRpb25JdGVtKT1cIm1hcmtBc1JlYWQoJGV2ZW50KVwiXG4gICAgICAgID48L2F4cC1tYXN0ZXItbm90aWZpY2F0aW9uLWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTQgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXAtNCBheC1ib3JkZXItdCBheC1ib3JkZXItZGVmYXVsdFwiPlxuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIk5ld05vdGlmaWNhdGlvbigpID09PSAwXCJcbiAgICAgICAgICBjb2xvcj1cImdob3N0XCJcbiAgICAgICAgICB0ZXh0PVwiTWFyayBhbGwgYXMgcmVhZFwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwibWFya0FsbEFzUmVhZCgpXCJcbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJWaWV3IGFsbCBub3RpZmljYXRpb25zXCIgKG9uQ2xpY2spPVwidmlld0FsbE5vdGlmaWNhdGlvbnMoKVwiPjwvYXgtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LXRhYi1pdGVtPlxuICB9XG48L2F4LXRhYnM+XG5cbjxuZy10ZW1wbGF0ZSBbYXhUYWJDb250ZW50XSAjY29ucz1cImF4VGFiQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -19,7 +19,7 @@ export class AXMAdminNotificationSlotComponent {
19
19
  this.totalNewNotification.set(value);
20
20
  }
21
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-button color=\"secondary\" class=\"ax-relative\" look=\"blank\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if(totalNewNotification()){\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-button color=\"secondary\" class=\"ax-relative\" look=\"blank\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if(totalNewNotification()){\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
23
  }
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
25
25
  type: Component,
@@ -31,6 +31,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
31
31
  AXPopoverModule,
32
32
  AXMAdminNotificationItemComponent,
33
33
  AXMAdminNotificationPanelComponent,
34
- ], template: "<ax-button color=\"secondary\" class=\"ax-relative\" look=\"blank\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if(totalNewNotification()){\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n" }]
34
+ ], template: "<ax-button color=\"secondary\" class=\"ax-relative\" look=\"blank\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if(totalNewNotification()){\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n" }]
35
35
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7QUFlcEgsTUFBTSxPQUFPLGlDQUFpQztJQWQ5QztRQWVFLHlCQUFvQixHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztLQUkxQztJQUhDLHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQUpVLGlDQUFpQztrR0FBakMsaUNBQWlDLHdFQ3RCOUMseXdCQWVBLDJDREZJLFlBQVksOEJBQ1osY0FBYyx1WkFDZCxpQkFBaUIsdVZBQ2pCLGFBQWEseUlBQ2IsZUFBZSxxVEFFZixrQ0FBa0M7OzJGQUd6QixpQ0FBaUM7a0JBZDdDLFNBQVM7aUNBRUksSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQ0FBaUM7d0JBQ2pDLGtDQUFrQztxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsL2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1ub3RpZmljYXRpb24tc2xvdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZG1pbk5vdGlmaWNhdGlvblNsb3RDb21wb25lbnQge1xuICB0b3RhbE5ld05vdGlmaWNhdGlvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBzZXRUb3RhbE5ld05vdGlmaWNhdGlvbih2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbE5ld05vdGlmaWNhdGlvbi5zZXQodmFsdWUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJheC1yZWxhdGl2ZVwiIGxvb2s9XCJibGFua1wiICNub3RpZmljYXRpb24+XG4gIDxheC1pY29uPlxuICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1iZWxsIGF4LXRleHQtc2xhdGUtNDAwIGRhcms6YXgtdGV4dC1zbGF0ZS0yMDBcIj48L2k+XG4gIDwvYXgtaWNvbj5cbiAgPGF4LXN1ZmZpeCBjbGFzcz1cImF4LWFic29sdXRlIGF4LXRvcC0wIGF4LWxlZnQtMS8yXCI+XG4gICAgQGlmKHRvdGFsTmV3Tm90aWZpY2F0aW9uKCkpe1xuICAgIDxheC1iYWRnZSBjb2xvcj1cInN1Y2Nlc3NcIiBbdGV4dF09XCJ0b3RhbE5ld05vdGlmaWNhdGlvbigpLnRvU3RyaW5nKClcIj48L2F4LWJhZGdlPlxuICAgIH1cbiAgPC9heC1zdWZmaXg+XG48L2F4LWJ1dHRvbj5cbjxheC1wb3BvdmVyIFt0YXJnZXRdPVwibm90aWZpY2F0aW9uXCIgW29wZW5Pbl09XCIndG9nZ2xlJ1wiIFtjbG9zZU9uXT1cIidjbGlja091dCdcIiBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtYmctc3VyZmFjZSBheC1ib3JkZXIgYXgtYm9yZGVyLWRlZmF1bHQgYXgtcm91bmRlZC1tZCBheC1zaGFkb3ctbWQgYXgtdy1mdWxsXCI+XG4gICAgPGF4bS1hZG1pbi1ub3RpZmljYXRpb24tcGFuZWwgKG9uTmV3Tm90ZmljYXRpb24pPVwic2V0VG90YWxOZXdOb3RpZmljYXRpb24oJGV2ZW50KVwiPiA8L2F4bS1hZG1pbi1ub3RpZmljYXRpb24tcGFuZWw+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7QUFlcEgsTUFBTSxPQUFPLGlDQUFpQztJQWQ5QztRQWVFLHlCQUFvQixHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztLQUkxQztJQUhDLHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQUpVLGlDQUFpQztrR0FBakMsaUNBQWlDLHdFQ3RCOUMsZ3VCQWVBLDJDREZJLFlBQVksOEJBQ1osY0FBYyx1WkFDZCxpQkFBaUIsdVZBQ2pCLGFBQWEseUlBQ2IsZUFBZSxtVUFFZixrQ0FBa0M7OzJGQUd6QixpQ0FBaUM7a0JBZDdDLFNBQVM7aUNBRUksSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQ0FBaUM7d0JBQ2pDLGtDQUFrQztxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsL2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1ub3RpZmljYXRpb24tc2xvdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZG1pbk5vdGlmaWNhdGlvblNsb3RDb21wb25lbnQge1xuICB0b3RhbE5ld05vdGlmaWNhdGlvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBzZXRUb3RhbE5ld05vdGlmaWNhdGlvbih2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbE5ld05vdGlmaWNhdGlvbi5zZXQodmFsdWUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uIGNvbG9yPVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJheC1yZWxhdGl2ZVwiIGxvb2s9XCJibGFua1wiICNub3RpZmljYXRpb24+XG4gIDxheC1pY29uPlxuICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1iZWxsXCI+PC9pPlxuICA8L2F4LWljb24+XG4gIDxheC1zdWZmaXggY2xhc3M9XCJheC1hYnNvbHV0ZSBheC10b3AtMCBheC1sZWZ0LTEvMlwiPlxuICAgIEBpZih0b3RhbE5ld05vdGlmaWNhdGlvbigpKXtcbiAgICA8YXgtYmFkZ2UgY29sb3I9XCJzdWNjZXNzXCIgW3RleHRdPVwidG90YWxOZXdOb3RpZmljYXRpb24oKS50b1N0cmluZygpXCI+PC9heC1iYWRnZT5cbiAgICB9XG4gIDwvYXgtc3VmZml4PlxuPC9heC1idXR0b24+XG48YXgtcG9wb3ZlciBbdGFyZ2V0XT1cIm5vdGlmaWNhdGlvblwiIFtvcGVuT25dPVwiJ3RvZ2dsZSdcIiBbY2xvc2VPbl09XCInY2xpY2tPdXQnXCIgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyIGF4LWJvcmRlci1kZWZhdWx0IGF4LXJvdW5kZWQtbWQgYXgtc2hhZG93LW1kIGF4LXctZnVsbFwiPlxuICAgIDxheG0tYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsIChvbk5ld05vdGZpY2F0aW9uKT1cInNldFRvdGFsTmV3Tm90aWZpY2F0aW9uKCRldmVudClcIj4gPC9heG0tYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsPlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==
@@ -0,0 +1,243 @@
1
+ import { AXPDataGenerator, AXPEntityCommandScope, AXPEntityDataProviderImpl, AXPEntityQueryType, AXPEntityStorageService, } from '@acorex/platform/common';
2
+ import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
3
+ export async function myNotificationEntityFactory(injector) {
4
+ const storageService = injector.get(AXPEntityStorageService);
5
+ const dataProvider = new AXPEntityDataProviderImpl(storageService, 'notifications');
6
+ const entityDef = {
7
+ module: 'notification-management',
8
+ name: 'notification',
9
+ source: 'notification-management.notification',
10
+ title: 'My Notifications',
11
+ formats: {
12
+ individual: 'Notification',
13
+ plural: 'My Notifications',
14
+ },
15
+ groups: [
16
+ { id: 'data', title: 'Data' },
17
+ { id: 'content', title: 'Content' },
18
+ { id: 'action', title: 'Action' },
19
+ { id: 'user', title: 'User' },
20
+ { id: 'template', title: 'Template' },
21
+ ],
22
+ properties: [
23
+ {
24
+ name: 'id',
25
+ title: 'ID',
26
+ groupId: 'data',
27
+ schema: {
28
+ dataType: 'string',
29
+ hidden: true,
30
+ nullable: false,
31
+ readonly: true,
32
+ unique: { enabled: true },
33
+ },
34
+ },
35
+ {
36
+ name: 'title',
37
+ title: 'Title',
38
+ groupId: 'data',
39
+ schema: {
40
+ dataType: 'string',
41
+ interface: {
42
+ type: AXPWidgetsCatalog.text,
43
+ },
44
+ },
45
+ },
46
+ {
47
+ name: 'body',
48
+ title: 'Body',
49
+ groupId: 'data',
50
+ schema: {
51
+ dataType: 'string',
52
+ interface: {
53
+ type: AXPWidgetsCatalog.largeText,
54
+ },
55
+ },
56
+ },
57
+ {
58
+ name: 'channel',
59
+ title: 'Channel',
60
+ groupId: 'data',
61
+ schema: {
62
+ dataType: 'string',
63
+ interface: {
64
+ type: AXPWidgetsCatalog.select,
65
+ options: { dataSource: ['InApp', 'Email', 'SMS'], multiple: false },
66
+ },
67
+ },
68
+ },
69
+ {
70
+ name: 'content.type',
71
+ title: 'Content Data',
72
+ groupId: 'content',
73
+ schema: {
74
+ dataType: 'object',
75
+ interface: {
76
+ type: AXPWidgetsCatalog.richText,
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: 'action.type',
82
+ title: 'Action Type',
83
+ groupId: 'action',
84
+ schema: {
85
+ dataType: 'string',
86
+ interface: {
87
+ type: AXPWidgetsCatalog.select,
88
+ options: { dataSource: ['Link', 'Entity', 'Popup'], multiple: false },
89
+ },
90
+ },
91
+ },
92
+ {
93
+ name: 'User.name',
94
+ title: 'Username',
95
+ groupId: 'user',
96
+ schema: {
97
+ dataType: 'string',
98
+ interface: {
99
+ type: AXPWidgetsCatalog.text,
100
+ },
101
+ },
102
+ },
103
+ {
104
+ name: 'template.category',
105
+ title: 'Category',
106
+ groupId: 'template',
107
+ schema: {
108
+ dataType: 'string',
109
+ interface: {
110
+ type: AXPWidgetsCatalog.select,
111
+ options: { dataSource: ['Inbox', 'Archive'], multiple: false },
112
+ },
113
+ },
114
+ },
115
+ {
116
+ name: 'template.prority',
117
+ title: 'Prority',
118
+ groupId: 'template',
119
+ schema: {
120
+ dataType: 'string',
121
+ interface: {
122
+ type: AXPWidgetsCatalog.select,
123
+ options: { dataSource: ['Warning', 'Danger', 'Notice'], multiple: false },
124
+ },
125
+ },
126
+ },
127
+ {
128
+ name: 'template.isPinned',
129
+ title: 'Is Pinned',
130
+ groupId: 'template',
131
+ schema: {
132
+ dataType: 'boolean',
133
+ interface: {
134
+ type: AXPWidgetsCatalog.checkbox,
135
+ options: {
136
+ label: 'Is Pinned',
137
+ },
138
+ },
139
+ },
140
+ },
141
+ {
142
+ name: 'readAt',
143
+ title: 'Read At',
144
+ groupId: 'data',
145
+ schema: {
146
+ dataType: 'datetime',
147
+ interface: {
148
+ type: AXPWidgetsCatalog.dateTime,
149
+ options: { format: 'date' },
150
+ },
151
+ },
152
+ },
153
+ {
154
+ name: 'createAt',
155
+ title: 'Created At',
156
+ groupId: 'data',
157
+ schema: {
158
+ dataType: 'datetime',
159
+ interface: {
160
+ type: AXPWidgetsCatalog.dateTime,
161
+ options: { format: 'date' },
162
+ },
163
+ },
164
+ },
165
+ ],
166
+ columns: [
167
+ { name: 'title' },
168
+ { name: 'body' },
169
+ { name: 'channel' },
170
+ { name: 'user.name' },
171
+ { name: 'template.category' },
172
+ { name: 'template.prority' },
173
+ { name: 'createAt' },
174
+ { name: 'readAt' },
175
+ ],
176
+ commands: {
177
+ create: {
178
+ execute: async (data) => {
179
+ console.log('CREATE', data);
180
+ const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });
181
+ await dataProvider.insertOne(entity);
182
+ return entity;
183
+ },
184
+ },
185
+ delete: {
186
+ execute: async (id) => {
187
+ console.log('CREATE', id);
188
+ await dataProvider.deleteOne(id);
189
+ },
190
+ },
191
+ update: {
192
+ execute: async (data) => {
193
+ await dataProvider.updateOne(data.id, data);
194
+ },
195
+ },
196
+ },
197
+ queries: {
198
+ byKey: {
199
+ execute: async (id) => {
200
+ return await dataProvider.getOne(id);
201
+ },
202
+ type: AXPEntityQueryType.Single,
203
+ },
204
+ list: {
205
+ execute: async (e) => {
206
+ const list = await dataProvider.getAll();
207
+ return {
208
+ total: list.length,
209
+ items: list.slice(e.skip, e.skip + e.take),
210
+ };
211
+ },
212
+ type: AXPEntityQueryType.List,
213
+ },
214
+ },
215
+ interfaces: {
216
+ master: {
217
+ create: { sections: [{ id: 'content' }, { id: 'action' }, { id: 'user' }, { id: 'template' }] },
218
+ update: { sections: [{ id: 'content' }, { id: 'action' }, { id: 'user' }, { id: 'template' }] },
219
+ list: {
220
+ actions: [
221
+ // {
222
+ // title: 'Create New',
223
+ // command: 'create-entity',
224
+ // priority: 'primary',
225
+ // type: 'create',
226
+ // scope: AXPEntityCommandScope.TypeLevel,
227
+ // },
228
+ {
229
+ title: 'Delete',
230
+ command: 'delete-entity',
231
+ priority: 'primary',
232
+ type: 'delete',
233
+ scope: AXPEntityCommandScope.Selected,
234
+ },
235
+ ],
236
+ views: [{ name: 'all', title: 'All Notifications', fixed: true, columns: [], conditions: [], sorts: [] }],
237
+ },
238
+ },
239
+ },
240
+ };
241
+ return entityDef;
242
+ }
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvbXktbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHcEUsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FBQyxRQUFrQjtJQUNsRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSx5QkFBeUIsQ0FBTSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFekYsTUFBTSxTQUFTLEdBQWM7UUFDM0IsTUFBTSxFQUFFLHlCQUF5QjtRQUNqQyxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsc0NBQXNDO1FBQzlDLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLGNBQWM7WUFDMUIsTUFBTSxFQUFFLGtCQUFrQjtTQUMzQjtRQUNELE1BQU0sRUFBRTtZQUNOLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQzdCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ25DLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ2pDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQzdCLEVBQUUs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QUF5Qjt3QkFDekIsOEJBQThCO3dCQUM5Qix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsNENBQTRDO3dCQUM1QyxLQUFLO3dCQUNMOzRCQUNFLEtBQUssRUFBRSxRQUFROzRCQUNmLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixRQUFRLEVBQUUsU0FBUzs0QkFDbkIsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFFBQVE7eUJBQ3RDO3FCQUNGO29CQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUMxRzthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYUERhdGFHZW5lcmF0b3IsXG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlEYXRhUHJvdmlkZXJJbXBsLFxuICBBWFBFbnRpdHlRdWVyeVR5cGUsXG4gIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG15Tm90aWZpY2F0aW9uRW50aXR5RmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgY29uc3Qgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuICBjb25zdCBkYXRhUHJvdmlkZXIgPSBuZXcgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxhbnk+KHN0b3JhZ2VTZXJ2aWNlLCAnbm90aWZpY2F0aW9ucycpO1xuXG4gIGNvbnN0IGVudGl0eURlZjogQVhQRW50aXR5ID0ge1xuICAgIG1vZHVsZTogJ25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50JyxcbiAgICBuYW1lOiAnbm90aWZpY2F0aW9uJyxcbiAgICBzb3VyY2U6ICdub3RpZmljYXRpb24tbWFuYWdlbWVudC5ub3RpZmljYXRpb24nLFxuICAgIHRpdGxlOiAnTXkgTm90aWZpY2F0aW9ucycsXG4gICAgZm9ybWF0czoge1xuICAgICAgaW5kaXZpZHVhbDogJ05vdGlmaWNhdGlvbicsXG4gICAgICBwbHVyYWw6ICdNeSBOb3RpZmljYXRpb25zJyxcbiAgICB9LFxuICAgIGdyb3VwczogW1xuICAgICAgeyBpZDogJ2RhdGEnLCB0aXRsZTogJ0RhdGEnIH0sXG4gICAgICB7IGlkOiAnY29udGVudCcsIHRpdGxlOiAnQ29udGVudCcgfSxcbiAgICAgIHsgaWQ6ICdhY3Rpb24nLCB0aXRsZTogJ0FjdGlvbicgfSxcbiAgICAgIHsgaWQ6ICd1c2VyJywgdGl0bGU6ICdVc2VyJyB9LFxuICAgICAgeyBpZDogJ3RlbXBsYXRlJywgdGl0bGU6ICdUZW1wbGF0ZScgfSxcbiAgICBdLFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdGl0bGU6ICdJRCcsXG4gICAgICAgIGdyb3VwSWQ6ICdkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgICAgdW5pcXVlOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICBncm91cElkOiAnZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdib2R5JyxcbiAgICAgICAgdGl0bGU6ICdCb2R5JyxcbiAgICAgICAgZ3JvdXBJZDogJ2RhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5sYXJnZVRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjaGFubmVsJyxcbiAgICAgICAgdGl0bGU6ICdDaGFubmVsJyxcbiAgICAgICAgZ3JvdXBJZDogJ2RhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGRhdGFTb3VyY2U6IFsnSW5BcHAnLCAnRW1haWwnLCAnU01TJ10sIG11bHRpcGxlOiBmYWxzZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29udGVudC50eXBlJyxcbiAgICAgICAgdGl0bGU6ICdDb250ZW50IERhdGEnLFxuICAgICAgICBncm91cElkOiAnY29udGVudCcsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnJpY2hUZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYWN0aW9uLnR5cGUnLFxuICAgICAgICB0aXRsZTogJ0FjdGlvbiBUeXBlJyxcbiAgICAgICAgZ3JvdXBJZDogJ2FjdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgZGF0YVNvdXJjZTogWydMaW5rJywgJ0VudGl0eScsICdQb3B1cCddLCBtdWx0aXBsZTogZmFsc2UgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1VzZXIubmFtZScsXG4gICAgICAgIHRpdGxlOiAnVXNlcm5hbWUnLFxuICAgICAgICBncm91cElkOiAndXNlcicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RlbXBsYXRlLmNhdGVnb3J5JyxcbiAgICAgICAgdGl0bGU6ICdDYXRlZ29yeScsXG4gICAgICAgIGdyb3VwSWQ6ICd0ZW1wbGF0ZScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgZGF0YVNvdXJjZTogWydJbmJveCcsICdBcmNoaXZlJ10sIG11bHRpcGxlOiBmYWxzZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGVtcGxhdGUucHJvcml0eScsXG4gICAgICAgIHRpdGxlOiAnUHJvcml0eScsXG4gICAgICAgIGdyb3VwSWQ6ICd0ZW1wbGF0ZScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgZGF0YVNvdXJjZTogWydXYXJuaW5nJywgJ0RhbmdlcicsICdOb3RpY2UnXSwgbXVsdGlwbGU6IGZhbHNlIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0ZW1wbGF0ZS5pc1Bpbm5lZCcsXG4gICAgICAgIHRpdGxlOiAnSXMgUGlubmVkJyxcbiAgICAgICAgZ3JvdXBJZDogJ3RlbXBsYXRlJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmNoZWNrYm94LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBsYWJlbDogJ0lzIFBpbm5lZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAncmVhZEF0JyxcbiAgICAgICAgdGl0bGU6ICdSZWFkIEF0JyxcbiAgICAgICAgZ3JvdXBJZDogJ2RhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGV0aW1lJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgICAgb3B0aW9uczogeyBmb3JtYXQ6ICdkYXRlJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRlQXQnLFxuICAgICAgICB0aXRsZTogJ0NyZWF0ZWQgQXQnLFxuICAgICAgICBncm91cElkOiAnZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZXRpbWUnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZGF0ZVRpbWUsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGZvcm1hdDogJ2RhdGUnIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBbXG4gICAgICB7IG5hbWU6ICd0aXRsZScgfSxcbiAgICAgIHsgbmFtZTogJ2JvZHknIH0sXG4gICAgICB7IG5hbWU6ICdjaGFubmVsJyB9LFxuICAgICAgeyBuYW1lOiAndXNlci5uYW1lJyB9LFxuICAgICAgeyBuYW1lOiAndGVtcGxhdGUuY2F0ZWdvcnknIH0sXG4gICAgICB7IG5hbWU6ICd0ZW1wbGF0ZS5wcm9yaXR5JyB9LFxuICAgICAgeyBuYW1lOiAnY3JlYXRlQXQnIH0sXG4gICAgICB7IG5hbWU6ICdyZWFkQXQnIH0sXG4gICAgXSxcbiAgICBjb21tYW5kczoge1xuICAgICAgY3JlYXRlOiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQ1JFQVRFJywgZGF0YSk7XG4gICAgICAgICAgY29uc3QgZW50aXR5ID0gT2JqZWN0LmFzc2lnbihkYXRhLCB7IGlkOiBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKSB9KTtcbiAgICAgICAgICBhd2FpdCBkYXRhUHJvdmlkZXIuaW5zZXJ0T25lKGVudGl0eSk7XG4gICAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWxldGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQ1JFQVRFJywgaWQpO1xuICAgICAgICAgIGF3YWl0IGRhdGFQcm92aWRlci5kZWxldGVPbmUoaWQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgYXdhaXQgZGF0YVByb3ZpZGVyLnVwZGF0ZU9uZShkYXRhLmlkLCBkYXRhKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBxdWVyaWVzOiB7XG4gICAgICBieUtleToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhUHJvdmlkZXIuZ2V0T25lKGlkKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLlNpbmdsZSxcbiAgICAgIH0sXG4gICAgICBsaXN0OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBsaXN0ID0gYXdhaXQgZGF0YVByb3ZpZGVyLmdldEFsbCgpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3RhbDogbGlzdC5sZW5ndGgsXG4gICAgICAgICAgICBpdGVtczogbGlzdC5zbGljZShlLnNraXAsIGUuc2tpcCArIGUudGFrZSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QsXG4gICAgICB9LFxuICAgIH0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIGNyZWF0ZTogeyBzZWN0aW9uczogW3sgaWQ6ICdjb250ZW50JyB9LCB7IGlkOiAnYWN0aW9uJyB9LCB7IGlkOiAndXNlcicgfSwgeyBpZDogJ3RlbXBsYXRlJyB9XSB9LFxuICAgICAgICB1cGRhdGU6IHsgc2VjdGlvbnM6IFt7IGlkOiAnY29udGVudCcgfSwgeyBpZDogJ2FjdGlvbicgfSwgeyBpZDogJ3VzZXInIH0sIHsgaWQ6ICd0ZW1wbGF0ZScgfV0gfSxcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgIC8vICAgdGl0bGU6ICdDcmVhdGUgTmV3JyxcbiAgICAgICAgICAgIC8vICAgY29tbWFuZDogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgLy8gICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgLy8gICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgICAgIC8vICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmlld3M6IFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCBOb3RpZmljYXRpb25zJywgZml4ZWQ6IHRydWUsIGNvbHVtbnM6IFtdLCBjb25kaXRpb25zOiBbXSwgc29ydHM6IFtdIH1dLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBlbnRpdHlEZWY7XG59XG4iXX0=