@acorex/modules 18.2.4 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/auth/lib/account/app-chooser/app-chooser-slot.component.d.ts +1 -1
  2. package/fesm2022/{acorex-modules-application-management-module-designer.component-B6WPz0N8.mjs → acorex-modules-application-management-module-designer.component-1pXIvIeG.mjs} +9 -23
  3. package/fesm2022/acorex-modules-application-management-module-designer.component-1pXIvIeG.mjs.map +1 -0
  4. package/fesm2022/acorex-modules-application-management.mjs +44 -48
  5. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  6. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DQzSrtut.mjs → acorex-modules-auth-acorex-modules-auth-CtWwcZOU.mjs} +44 -51
  7. package/fesm2022/acorex-modules-auth-acorex-modules-auth-CtWwcZOU.mjs.map +1 -0
  8. package/fesm2022/{acorex-modules-auth-app-chooser.component-BFQgjqFV.mjs → acorex-modules-auth-app-chooser.component-BK4Hs5OP.mjs} +7 -13
  9. package/fesm2022/acorex-modules-auth-app-chooser.component-BK4Hs5OP.mjs.map +1 -0
  10. package/fesm2022/{acorex-modules-auth-blank.layout-Bq822Iz4.mjs → acorex-modules-auth-blank.layout-B1a0710P.mjs} +5 -5
  11. package/fesm2022/acorex-modules-auth-blank.layout-B1a0710P.mjs.map +1 -0
  12. package/fesm2022/{acorex-modules-auth-login.module-KR2dB8vW.mjs → acorex-modules-auth-login.module-Cvr3l9wl.mjs} +8 -24
  13. package/fesm2022/acorex-modules-auth-login.module-Cvr3l9wl.mjs.map +1 -0
  14. package/fesm2022/acorex-modules-auth-master.layout-4jTF1Xhx.mjs +23 -0
  15. package/fesm2022/acorex-modules-auth-master.layout-4jTF1Xhx.mjs.map +1 -0
  16. package/fesm2022/{acorex-modules-auth-password.component-DpjEjw0o.mjs → acorex-modules-auth-password.component-C5soTmv9.mjs} +8 -16
  17. package/fesm2022/acorex-modules-auth-password.component-C5soTmv9.mjs.map +1 -0
  18. package/fesm2022/{acorex-modules-auth-password.component-9uIMNoQE.mjs → acorex-modules-auth-password.component-DeCK_glZ.mjs} +6 -19
  19. package/fesm2022/acorex-modules-auth-password.component-DeCK_glZ.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-auth-routes-CWqGOFnQ.mjs → acorex-modules-auth-routes-DqgtVe9G.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-auth-routes-CWqGOFnQ.mjs.map → acorex-modules-auth-routes-DqgtVe9G.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs → acorex-modules-auth-tenant-chooser.component-CorZ4Z7h.mjs} +6 -6
  23. package/fesm2022/acorex-modules-auth-tenant-chooser.component-CorZ4Z7h.mjs.map +1 -0
  24. package/fesm2022/{acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs → acorex-modules-auth-two-factor-code.component-BEsTVMeC.mjs} +6 -6
  25. package/fesm2022/acorex-modules-auth-two-factor-code.component-BEsTVMeC.mjs.map +1 -0
  26. package/fesm2022/{acorex-modules-auth-two-factor.module-Bnoi3ZXB.mjs → acorex-modules-auth-two-factor.module-C99NYq3o.mjs} +7 -23
  27. package/fesm2022/acorex-modules-auth-two-factor.module-C99NYq3o.mjs.map +1 -0
  28. package/fesm2022/acorex-modules-auth.mjs +1 -19
  29. package/fesm2022/acorex-modules-auth.mjs.map +1 -1
  30. package/fesm2022/acorex-modules-backend.mjs +36 -35
  31. package/fesm2022/acorex-modules-backend.mjs.map +1 -1
  32. package/fesm2022/acorex-modules-conversation.mjs +50 -51
  33. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  34. package/fesm2022/acorex-modules-form-template-management-category.entity-xUkZHVgy.mjs +195 -0
  35. package/fesm2022/acorex-modules-form-template-management-category.entity-xUkZHVgy.mjs.map +1 -0
  36. package/fesm2022/{acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs → acorex-modules-form-template-management-designer.page-BLbPLLdP.mjs} +8 -5
  37. package/fesm2022/acorex-modules-form-template-management-designer.page-BLbPLLdP.mjs.map +1 -0
  38. package/fesm2022/acorex-modules-form-template-management-template-picker.component-D_FkgF0W.mjs +123 -0
  39. package/fesm2022/acorex-modules-form-template-management-template-picker.component-D_FkgF0W.mjs.map +1 -0
  40. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-Bgx5YRBc.mjs +111 -0
  41. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-Bgx5YRBc.mjs.map +1 -0
  42. package/fesm2022/acorex-modules-form-template-management-template.entity-CGhbmYel.mjs +470 -0
  43. package/fesm2022/acorex-modules-form-template-management-template.entity-CGhbmYel.mjs.map +1 -0
  44. package/fesm2022/acorex-modules-form-template-management.mjs +383 -730
  45. package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
  46. package/fesm2022/acorex-modules-localization-management.mjs +332 -334
  47. package/fesm2022/acorex-modules-localization-management.mjs.map +1 -1
  48. package/fesm2022/acorex-modules-notification-management.mjs +33 -34
  49. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  50. package/fesm2022/acorex-modules-platform-management.mjs +77 -84
  51. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  52. package/fesm2022/acorex-modules-scheduler-job-management.mjs +34 -23
  53. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  54. package/fesm2022/acorex-modules-text-template-management.mjs +22 -22
  55. package/form-template-management/index.d.ts +4 -0
  56. package/form-template-management/lib/components/widgets/template/index.d.ts +4 -0
  57. package/form-template-management/lib/components/widgets/template/template-picker/template-picker.component.d.ts +30 -0
  58. package/form-template-management/lib/components/widgets/template/template-widget-designer.component.d.ts +25 -0
  59. package/form-template-management/lib/components/widgets/template/template-widget-edit.component.d.ts +13 -0
  60. package/form-template-management/lib/components/widgets/template/template-widget-view.component.d.ts +11 -0
  61. package/form-template-management/lib/components/widgets/template/template-widget.config.d.ts +5 -0
  62. package/form-template-management/lib/components/widgets/template/template.provider.d.ts +30 -0
  63. package/form-template-management/lib/entities/category/category.types.d.ts +0 -1
  64. package/form-template-management/lib/entities/category/index.d.ts +0 -1
  65. package/form-template-management/lib/entities/template/index.d.ts +0 -1
  66. package/form-template-management/lib/entities/template/template.types.d.ts +11 -0
  67. package/form-template-management/lib/pages/designer/designer.page.d.ts +1 -0
  68. package/form-template-management/lib/services/designer-connector.service.d.ts +7 -3
  69. package/form-template-management/lib/services/template.provider.d.ts +3 -4
  70. package/localization-management/index.d.ts +2 -1
  71. package/package.json +11 -33
  72. package/platform-management/index.d.ts +2 -1
  73. package/platform-management/lib/common/{entity.loader.d.ts → entity.provider.d.ts} +3 -3
  74. package/platform-management/lib/common/index.d.ts +1 -2
  75. package/scheduler-job-management/index.d.ts +1 -0
  76. package/esm2022/acorex-modules.mjs +0 -5
  77. package/esm2022/application-management/acorex-modules-application-management.mjs +0 -5
  78. package/esm2022/application-management/index.mjs +0 -14
  79. package/esm2022/application-management/lib/application-management-mock-data.mjs +0 -109
  80. package/esm2022/application-management/lib/application-management.module.mjs +0 -117
  81. package/esm2022/application-management/lib/application-management.route.mjs +0 -29
  82. package/esm2022/application-management/lib/application-management.service.mjs +0 -66
  83. package/esm2022/application-management/lib/application-management.source.mjs +0 -9
  84. package/esm2022/application-management/lib/application-management.types.mjs +0 -2
  85. package/esm2022/application-management/lib/const.mjs +0 -6
  86. package/esm2022/application-management/lib/entities/application-module.entity.mjs +0 -270
  87. package/esm2022/application-management/lib/entities/applications.entity.mjs +0 -311
  88. package/esm2022/application-management/lib/entities/edition.entity.mjs +0 -281
  89. package/esm2022/application-management/lib/entities/entity.entity.mjs +0 -295
  90. package/esm2022/application-management/lib/entities/feature.entity.mjs +0 -281
  91. package/esm2022/application-management/lib/entities/modules.entity.mjs +0 -321
  92. package/esm2022/application-management/lib/entities/permission.entity.mjs +0 -281
  93. package/esm2022/application-management/lib/entities/property.entity.mjs +0 -447
  94. package/esm2022/application-management/lib/entity.loader.mjs +0 -46
  95. package/esm2022/application-management/lib/layouts/index.mjs +0 -2
  96. package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +0 -84
  97. package/esm2022/application-management/lib/menu.provider.mjs +0 -28
  98. package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +0 -150
  99. package/esm2022/application-management/lib/module-designer/module-designer.service.mjs +0 -3
  100. package/esm2022/application-management/lib/module-designer/module-designer.type.mjs +0 -2
  101. package/esm2022/application-management/lib/services/application-management.service.mjs +0 -17
  102. package/esm2022/application-management/lib/services/application-module-management.service.mjs +0 -17
  103. package/esm2022/application-management/lib/services/context-menu.service.mjs +0 -166
  104. package/esm2022/application-management/lib/services/edition-management.service.mjs +0 -17
  105. package/esm2022/application-management/lib/services/entity-management.service.mjs +0 -17
  106. package/esm2022/application-management/lib/services/feature-management.service.mjs +0 -17
  107. package/esm2022/application-management/lib/services/module-management.service.mjs +0 -17
  108. package/esm2022/application-management/lib/services/permission-management.service.mjs +0 -17
  109. package/esm2022/application-management/lib/services/property-management.service.mjs +0 -17
  110. package/esm2022/application-management/lib/workflows/create-module-entity.workflow.mjs +0 -66
  111. package/esm2022/application-management/lib/workflows/index.mjs +0 -3
  112. package/esm2022/application-management/lib/workflows/show-module-entity-details.workflow.mjs +0 -9
  113. package/esm2022/auth/acorex-modules-auth.mjs +0 -5
  114. package/esm2022/auth/index.mjs +0 -5
  115. package/esm2022/auth/lib/account/account.module.mjs +0 -110
  116. package/esm2022/auth/lib/account/app-chooser/app-chooser-list.component.mjs +0 -31
  117. package/esm2022/auth/lib/account/app-chooser/app-chooser-slot.component.mjs +0 -42
  118. package/esm2022/auth/lib/account/app-chooser/app-chooser.component.mjs +0 -62
  119. package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +0 -108
  120. package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser-dropdown.component.mjs +0 -26
  121. package/esm2022/auth/lib/account/tenant-chooser/tenant-chooser.component.mjs +0 -80
  122. package/esm2022/auth/lib/auth.config.mjs +0 -23
  123. package/esm2022/auth/lib/auth.module.mjs +0 -51
  124. package/esm2022/auth/lib/auth.routes.mjs +0 -39
  125. package/esm2022/auth/lib/error-handler.mjs +0 -47
  126. package/esm2022/auth/lib/forgot/password/password.component.mjs +0 -56
  127. package/esm2022/auth/lib/forgot/routes.mjs +0 -7
  128. package/esm2022/auth/lib/login/login.module.mjs +0 -52
  129. package/esm2022/auth/lib/login/password/password.component.mjs +0 -118
  130. package/esm2022/auth/lib/menu.provider.mjs +0 -41
  131. package/esm2022/auth/lib/shared/layouts/blank/blank.layout.mjs +0 -15
  132. package/esm2022/auth/lib/shared/layouts/master/master.layout.mjs +0 -20
  133. package/esm2022/auth/lib/shared/services/idle.service.mjs +0 -42
  134. package/esm2022/auth/lib/shared/services/index.mjs +0 -2
  135. package/esm2022/auth/lib/store/auth.effects.mjs +0 -90
  136. package/esm2022/auth/lib/store/index.mjs +0 -3
  137. package/esm2022/auth/lib/two-factor/two-factor-code/two-factor-code.component.mjs +0 -37
  138. package/esm2022/auth/lib/two-factor/two-factor.module.mjs +0 -42
  139. package/esm2022/backend/acorex-modules-backend.mjs +0 -5
  140. package/esm2022/backend/index.mjs +0 -5
  141. package/esm2022/backend/lib/auth/oidc/application.loader.mjs +0 -54
  142. package/esm2022/backend/lib/auth/oidc/configuration.service.mjs +0 -52
  143. package/esm2022/backend/lib/auth/oidc/feature.loader.mjs +0 -21
  144. package/esm2022/backend/lib/auth/oidc/index.mjs +0 -7
  145. package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +0 -217
  146. package/esm2022/backend/lib/auth/oidc/permission.loader.mjs +0 -34
  147. package/esm2022/backend/lib/auth/oidc/signincallback.component.mjs +0 -43
  148. package/esm2022/backend/lib/auth/oidc/tenant.loader.mjs +0 -34
  149. package/esm2022/backend/lib/backend.configs.mjs +0 -2
  150. package/esm2022/backend/lib/backend.module.mjs +0 -130
  151. package/esm2022/backend/lib/data/api/comment.service.mjs +0 -46
  152. package/esm2022/backend/lib/data/api/data-provider.mjs +0 -165
  153. package/esm2022/backend/lib/data/api/file.service.mjs +0 -101
  154. package/esm2022/backend/lib/data/api/module-designer.service.mjs +0 -95
  155. package/esm2022/backend/lib/data/index.mjs +0 -5
  156. package/esm2022/conversation/acorex-modules-conversation.mjs +0 -5
  157. package/esm2022/conversation/index.mjs +0 -17
  158. package/esm2022/conversation/lib/const.mjs +0 -8
  159. package/esm2022/conversation/lib/conversation.module.mjs +0 -17
  160. package/esm2022/conversation/lib/entities/chat/chat.module.mjs +0 -141
  161. package/esm2022/conversation/lib/entities/chat/chat.service.mjs +0 -23
  162. package/esm2022/conversation/lib/entities/chat/chat.type.mjs +0 -2
  163. package/esm2022/conversation/lib/entities/chat/components/chat-item/chat-item.component.mjs +0 -53
  164. package/esm2022/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.mjs +0 -13
  165. package/esm2022/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.mjs +0 -28
  166. package/esm2022/conversation/lib/entities/chat/components/chat-preview/chat-preview.component.mjs +0 -124
  167. package/esm2022/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.mjs +0 -22
  168. package/esm2022/conversation/lib/entities/chat/pages/chat/chat.component.mjs +0 -80
  169. package/esm2022/conversation/lib/entities/comments/comment.module.mjs +0 -100
  170. package/esm2022/conversation/lib/entities/comments/comments.service.mjs +0 -21
  171. package/esm2022/conversation/lib/entities/comments/comments.type.mjs +0 -2
  172. package/esm2022/conversation/lib/entities/comments/pages/comment-list-view.component.mjs +0 -392
  173. package/esm2022/conversation/lib/entities/comments/pages/comment-lookup-popup.component.mjs +0 -56
  174. package/esm2022/form-template-management/acorex-modules-form-template-management.mjs +0 -5
  175. package/esm2022/form-template-management/index.mjs +0 -2
  176. package/esm2022/form-template-management/lib/components/widgets/template-designer/index.mjs +0 -3
  177. package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget-view.component.mjs +0 -44
  178. package/esm2022/form-template-management/lib/components/widgets/template-designer/template-designer-widget.config.mjs +0 -23
  179. package/esm2022/form-template-management/lib/const.mjs +0 -8
  180. package/esm2022/form-template-management/lib/entities/category/category.entity.mjs +0 -241
  181. package/esm2022/form-template-management/lib/entities/category/category.module.mjs +0 -28
  182. package/esm2022/form-template-management/lib/entities/category/category.service.mjs +0 -17
  183. package/esm2022/form-template-management/lib/entities/category/category.types.mjs +0 -2
  184. package/esm2022/form-template-management/lib/entities/category/index.mjs +0 -5
  185. package/esm2022/form-template-management/lib/entities/template/index.mjs +0 -5
  186. package/esm2022/form-template-management/lib/entities/template/template.entity.mjs +0 -434
  187. package/esm2022/form-template-management/lib/entities/template/template.module.mjs +0 -28
  188. package/esm2022/form-template-management/lib/entities/template/template.service.mjs +0 -17
  189. package/esm2022/form-template-management/lib/entities/template/template.types.mjs +0 -2
  190. package/esm2022/form-template-management/lib/entity.provider.mjs +0 -25
  191. package/esm2022/form-template-management/lib/form-template-management.module.mjs +0 -143
  192. package/esm2022/form-template-management/lib/menu.provider.mjs +0 -32
  193. package/esm2022/form-template-management/lib/pages/designer/designer.page.mjs +0 -29
  194. package/esm2022/form-template-management/lib/services/designer-connector.service.mjs +0 -40
  195. package/esm2022/form-template-management/lib/services/template.provider.mjs +0 -31
  196. package/esm2022/form-template-management/lib/workflows/create-template.workflow.mjs +0 -40
  197. package/esm2022/form-template-management/lib/workflows/design-template.workflow.mjs +0 -32
  198. package/esm2022/index.mjs +0 -2
  199. package/esm2022/localization-management/acorex-modules-localization-management.mjs +0 -5
  200. package/esm2022/localization-management/index.mjs +0 -8
  201. package/esm2022/localization-management/lib/const.mjs +0 -9
  202. package/esm2022/localization-management/lib/culture/culture.entity.mjs +0 -239
  203. package/esm2022/localization-management/lib/culture/culture.service.mjs +0 -17
  204. package/esm2022/localization-management/lib/culture/culture.types.mjs +0 -2
  205. package/esm2022/localization-management/lib/culture/index.mjs +0 -4
  206. package/esm2022/localization-management/lib/entity.loader.mjs +0 -36
  207. package/esm2022/localization-management/lib/language/index.mjs +0 -4
  208. package/esm2022/localization-management/lib/language/language-slot/language-slot.component.mjs +0 -30
  209. package/esm2022/localization-management/lib/language/language.entity.mjs +0 -239
  210. package/esm2022/localization-management/lib/language/language.service.mjs +0 -17
  211. package/esm2022/localization-management/lib/language/language.types.mjs +0 -2
  212. package/esm2022/localization-management/lib/localization-management.module.mjs +0 -99
  213. package/esm2022/localization-management/lib/localization-management.source.mjs +0 -4
  214. package/esm2022/localization-management/lib/localization-store.service.mjs +0 -34
  215. package/esm2022/localization-management/lib/menu.provider.mjs +0 -44
  216. package/esm2022/localization-management/lib/time-zone/index.mjs +0 -4
  217. package/esm2022/localization-management/lib/time-zone/time-zone.entity.mjs +0 -256
  218. package/esm2022/localization-management/lib/time-zone/time-zone.service.mjs +0 -17
  219. package/esm2022/localization-management/lib/time-zone/time-zone.types.mjs +0 -2
  220. package/esm2022/notification-management/acorex-modules-notification-management.mjs +0 -5
  221. package/esm2022/notification-management/index.mjs +0 -9
  222. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-item/admin-notification-item.component.mjs +0 -39
  223. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-panel/admin-notification-panel.component.mjs +0 -155
  224. package/esm2022/notification-management/lib/admin-notification-slot/admin-notification-slot/admin-notification-slot.component.mjs +0 -36
  225. package/esm2022/notification-management/lib/const.mjs +0 -9
  226. package/esm2022/notification-management/lib/entities/my-notification.mjs +0 -236
  227. package/esm2022/notification-management/lib/entities/notification-channel.entity.mjs +0 -344
  228. package/esm2022/notification-management/lib/entities/notification-log.entity.mjs +0 -180
  229. package/esm2022/notification-management/lib/entities/notification-template.entity.mjs +0 -298
  230. package/esm2022/notification-management/lib/entities/notification.entity.mjs +0 -207
  231. package/esm2022/notification-management/lib/entity.loader.mjs +0 -41
  232. package/esm2022/notification-management/lib/menu.provider.mjs +0 -54
  233. package/esm2022/notification-management/lib/notification-management-mock-data.mjs +0 -55
  234. package/esm2022/notification-management/lib/notification-management.module.mjs +0 -61
  235. package/esm2022/notification-management/lib/notification-management.service.mjs +0 -39
  236. package/esm2022/notification-management/lib/notification-management.type.mjs +0 -2
  237. package/esm2022/notification-management/lib/notification.service.mjs +0 -3
  238. package/esm2022/platform-management/acorex-modules-platform-management.mjs +0 -5
  239. package/esm2022/platform-management/index.mjs +0 -4
  240. package/esm2022/platform-management/lib/common/common.module.mjs +0 -65
  241. package/esm2022/platform-management/lib/common/common.source.mjs +0 -5
  242. package/esm2022/platform-management/lib/common/country/country-datasource.provider.mjs +0 -27
  243. package/esm2022/platform-management/lib/common/country/country.entity.mjs +0 -696
  244. package/esm2022/platform-management/lib/common/country/country.service.mjs +0 -17
  245. package/esm2022/platform-management/lib/common/country/country.types.mjs +0 -2
  246. package/esm2022/platform-management/lib/common/country/index.mjs +0 -4
  247. package/esm2022/platform-management/lib/common/currency/currency.entity.mjs +0 -283
  248. package/esm2022/platform-management/lib/common/currency/currency.service.mjs +0 -17
  249. package/esm2022/platform-management/lib/common/currency/currency.types.mjs +0 -2
  250. package/esm2022/platform-management/lib/common/currency/index.mjs +0 -4
  251. package/esm2022/platform-management/lib/common/entity.loader.mjs +0 -36
  252. package/esm2022/platform-management/lib/common/index.mjs +0 -5
  253. package/esm2022/platform-management/lib/common/province/index.mjs +0 -4
  254. package/esm2022/platform-management/lib/common/province/province.entity.mjs +0 -307
  255. package/esm2022/platform-management/lib/common/province/province.service.mjs +0 -17
  256. package/esm2022/platform-management/lib/common/province/province.types.mjs +0 -2
  257. package/esm2022/platform-management/lib/const.mjs +0 -12
  258. package/esm2022/platform-management/lib/global-variables/entities/global-variable.entity.mjs +0 -346
  259. package/esm2022/platform-management/lib/global-variables/entity.loader.mjs +0 -23
  260. package/esm2022/platform-management/lib/global-variables/global-variables.service.mjs +0 -16
  261. package/esm2022/platform-management/lib/global-variables/global-variables.types.mjs +0 -2
  262. package/esm2022/platform-management/lib/global-variables/index.mjs +0 -5
  263. package/esm2022/platform-management/lib/menu.provider.mjs +0 -74
  264. package/esm2022/platform-management/lib/platform-management.module.mjs +0 -61
  265. package/esm2022/scheduler-job-management/acorex-modules-scheduler-job-management.mjs +0 -5
  266. package/esm2022/scheduler-job-management/index.mjs +0 -5
  267. package/esm2022/scheduler-job-management/lib/const.mjs +0 -8
  268. package/esm2022/scheduler-job-management/lib/entities/index.mjs +0 -2
  269. package/esm2022/scheduler-job-management/lib/entities/scheduler-job/index.mjs +0 -5
  270. package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.entity.mjs +0 -333
  271. package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.module.mjs +0 -28
  272. package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.service.mjs +0 -17
  273. package/esm2022/scheduler-job-management/lib/entities/scheduler-job/scheduler-job.types.mjs +0 -2
  274. package/esm2022/scheduler-job-management/lib/entity.provider.mjs +0 -25
  275. package/esm2022/scheduler-job-management/lib/menu.provider.mjs +0 -31
  276. package/esm2022/scheduler-job-management/lib/scheduler-job-management.module.mjs +0 -44
  277. package/esm2022/text-template-management/acorex-modules-text-template-management.mjs +0 -5
  278. package/esm2022/text-template-management/index.mjs +0 -6
  279. package/esm2022/text-template-management/lib/const.mjs +0 -8
  280. package/esm2022/text-template-management/lib/entities/category/category.entity.mjs +0 -262
  281. package/esm2022/text-template-management/lib/entities/category/category.module.mjs +0 -28
  282. package/esm2022/text-template-management/lib/entities/category/category.service.mjs +0 -17
  283. package/esm2022/text-template-management/lib/entities/category/category.types.mjs +0 -2
  284. package/esm2022/text-template-management/lib/entities/category/index.mjs +0 -5
  285. package/esm2022/text-template-management/lib/entities/index.mjs +0 -3
  286. package/esm2022/text-template-management/lib/entities/template/index.mjs +0 -5
  287. package/esm2022/text-template-management/lib/entities/template/template.entity.mjs +0 -405
  288. package/esm2022/text-template-management/lib/entities/template/template.module.mjs +0 -28
  289. package/esm2022/text-template-management/lib/entities/template/template.service.mjs +0 -17
  290. package/esm2022/text-template-management/lib/entities/template/template.types.mjs +0 -2
  291. package/esm2022/text-template-management/lib/entity.provider.mjs +0 -29
  292. package/esm2022/text-template-management/lib/menu.provider.mjs +0 -37
  293. package/esm2022/text-template-management/lib/setting.provider.mjs +0 -308
  294. package/esm2022/text-template-management/lib/text-template-management.module.mjs +0 -56
  295. package/fesm2022/acorex-modules-application-management-module-designer.component-B6WPz0N8.mjs.map +0 -1
  296. package/fesm2022/acorex-modules-auth-acorex-modules-auth-DQzSrtut.mjs.map +0 -1
  297. package/fesm2022/acorex-modules-auth-app-chooser.component-BFQgjqFV.mjs.map +0 -1
  298. package/fesm2022/acorex-modules-auth-blank.layout-Bq822Iz4.mjs.map +0 -1
  299. package/fesm2022/acorex-modules-auth-login.module-KR2dB8vW.mjs.map +0 -1
  300. package/fesm2022/acorex-modules-auth-master.layout-CU27gbWp.mjs +0 -38
  301. package/fesm2022/acorex-modules-auth-master.layout-CU27gbWp.mjs.map +0 -1
  302. package/fesm2022/acorex-modules-auth-password.component-9uIMNoQE.mjs.map +0 -1
  303. package/fesm2022/acorex-modules-auth-password.component-DpjEjw0o.mjs.map +0 -1
  304. package/fesm2022/acorex-modules-auth-tenant-chooser.component-6qDoCUBo.mjs.map +0 -1
  305. package/fesm2022/acorex-modules-auth-two-factor-code.component-BJKmvI7y.mjs.map +0 -1
  306. package/fesm2022/acorex-modules-auth-two-factor.module-Bnoi3ZXB.mjs.map +0 -1
  307. package/fesm2022/acorex-modules-form-template-management-designer.page-NhIPhsRs.mjs.map +0 -1
  308. package/platform-management/lib/common/common.source.d.ts +0 -4
@@ -1,39 +0,0 @@
1
- import { AXAvatarModule } from '@acorex/components/avatar';
2
- import { AXBadgeModule } from '@acorex/components/badge';
3
- import { AXButtonModule } from '@acorex/components/button';
4
- import { AXDecoratorModule } from '@acorex/components/decorators';
5
- import { AXImageModule } from '@acorex/components/image';
6
- import { AXFormatModule } from '@acorex/core/format';
7
- import { CommonModule } from '@angular/common';
8
- import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "@acorex/components/decorators";
12
- import * as i3 from "@acorex/components/avatar";
13
- import * as i4 from "@acorex/components/image";
14
- import * as i5 from "@acorex/core/format";
15
- export class AXMAdminNotificationItemComponent {
16
- constructor() {
17
- this.data = input.required();
18
- this.onPressNotificationItem = output();
19
- this.differentTime = computed(() => Date.now() - this.data().createAt.getTime());
20
- }
21
- pressNotificationItem(id) {
22
- this.onPressNotificationItem.emit(id);
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, ngImport: i0, template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <ax-avatar look=\"rounded\" color=\"primary\">\n @if(data().user.image){\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n }@else {\n <ax-icon>\n <i class=\"fa-solid fa-lock\"></i>\n </ax-icon>\n }\n </ax-avatar>\n <div>\n <div class=\"notification-item-title\">{{ data().title }}</div>\n <div class=\"notification-item-body\">{{ data().body }}</div>\n <!-- @if(false){\n <div>\n <div class=\"notification-file\">\n <ax-avatar color=\"primary\">\n <ax-icon>\n <i class=\"fa-solid fa-file-word ax-text-2xl\"></i>\n </ax-icon>\n </ax-avatar>\n <div>\n <div class=\"notification-file-name\">New project details.docx</div>\n <div class=\"notification-file-size\">250 KB</div>\n </div>\n <ax-button look=\"blank\">\n <ax-icon>\n <i class=\"fa-solid fa-download\"></i>\n </ax-icon>\n </ax-button>\n </div>\n </div>\n } -->\n <div class=\"notification-item-time\">{{ differentTime() | format : 'timeleft' | async }}</div>\n </div>\n @if(!data().template.isPinned){\n <div class=\"pin-notification ltr:ax-rotate-45 rtl:ax-left-0 rtl:-ax-rotate-45 ltr:ax-right-0\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }\n</div>\n", styles: [".notification-item{position:relative;display:flex;cursor:pointer;gap:.75rem;overflow-x:hidden;padding:1rem}.notification-item.read{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.notification-item.unread{background:rgb(var(--ax-color-on-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;height:95%;width:.2rem;inset-inline-start:0;top:50%;transform:translateY(-50%)}.notification-item.Notice:before{background:rgb(var(--ax-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-color-warning-500))}.notification-item ax-avatar ax-badge{position:absolute;bottom:0;inset-inline-end:.25rem;top:auto;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-surface),var(--tw-border-opacity, 1))}.notification-item>div{display:flex;flex:1 1 0%;flex-direction:column}.notification-item>div .notification-item-title,.notification-item>div .notification-file-name{max-width:20rem;font-size:1rem;font-weight:600;line-height:1.5rem}.notification-item>div .notification-item-time,.notification-item>div .notification-file-size{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}.notification-item>div .notification-item-body{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;max-width:20rem;font-size:.875rem;font-weight:400;line-height:1.5rem}.notification-item>ax-badge{position:absolute;top:1rem;inset-inline-end:1rem}.notification-item .notification-file{margin-top:.5rem;margin-bottom:.5rem;display:flex;gap:.5rem;border-radius:.5rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.5rem}.notification-item .notification-file>div{flex:1 1 0%}.notification-item .pin-notification{position:absolute;top:0;padding:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i3.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i4.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i5.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationItemComponent, decorators: [{
28
- type: Component,
29
- args: [{ selector: 'axp-master-notification-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
30
- CommonModule,
31
- AXButtonModule,
32
- AXDecoratorModule,
33
- AXAvatarModule,
34
- AXImageModule,
35
- AXBadgeModule,
36
- AXFormatModule,
37
- ], template: "<div\n class=\"notification-item\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <ax-avatar look=\"rounded\" color=\"primary\">\n @if(data().user.image){\n <ax-image src=\"https://i.pravatar.cc/300\"></ax-image>\n }@else {\n <ax-icon>\n <i class=\"fa-solid fa-lock\"></i>\n </ax-icon>\n }\n </ax-avatar>\n <div>\n <div class=\"notification-item-title\">{{ data().title }}</div>\n <div class=\"notification-item-body\">{{ data().body }}</div>\n <!-- @if(false){\n <div>\n <div class=\"notification-file\">\n <ax-avatar color=\"primary\">\n <ax-icon>\n <i class=\"fa-solid fa-file-word ax-text-2xl\"></i>\n </ax-icon>\n </ax-avatar>\n <div>\n <div class=\"notification-file-name\">New project details.docx</div>\n <div class=\"notification-file-size\">250 KB</div>\n </div>\n <ax-button look=\"blank\">\n <ax-icon>\n <i class=\"fa-solid fa-download\"></i>\n </ax-icon>\n </ax-button>\n </div>\n </div>\n } -->\n <div class=\"notification-item-time\">{{ differentTime() | format : 'timeleft' | async }}</div>\n </div>\n @if(!data().template.isPinned){\n <div class=\"pin-notification ltr:ax-rotate-45 rtl:ax-left-0 rtl:-ax-rotate-45 ltr:ax-right-0\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }\n</div>\n", styles: [".notification-item{position:relative;display:flex;cursor:pointer;gap:.75rem;overflow-x:hidden;padding:1rem}.notification-item.read{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.notification-item.unread{background:rgb(var(--ax-color-on-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;height:95%;width:.2rem;inset-inline-start:0;top:50%;transform:translateY(-50%)}.notification-item.Notice:before{background:rgb(var(--ax-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-color-warning-500))}.notification-item ax-avatar ax-badge{position:absolute;bottom:0;inset-inline-end:.25rem;top:auto;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-surface),var(--tw-border-opacity, 1))}.notification-item>div{display:flex;flex:1 1 0%;flex-direction:column}.notification-item>div .notification-item-title,.notification-item>div .notification-file-name{max-width:20rem;font-size:1rem;font-weight:600;line-height:1.5rem}.notification-item>div .notification-item-time,.notification-item>div .notification-file-size{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}.notification-item>div .notification-item-body{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;max-width:20rem;font-size:.875rem;font-weight:400;line-height:1.5rem}.notification-item>ax-badge{position:absolute;top:1rem;inset-inline-end:1rem}.notification-item .notification-file{margin-top:.5rem;margin-bottom:.5rem;display:flex;gap:.5rem;border-radius:.5rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.5rem}.notification-item .notification-file>div{flex:1 1 0%}.notification-item .pin-notification{position:absolute;top:0;padding:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}\n"] }]
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0vYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0vYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQW1CNUYsTUFBTSxPQUFPLGlDQUFpQztJQWhCOUM7UUFpQkUsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7UUFDN0MsNEJBQXVCLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFFM0Msa0JBQWEsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUtyRjtJQUhDLHFCQUFxQixDQUFDLEVBQVU7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQVJVLGlDQUFpQztrR0FBakMsaUNBQWlDLHlSQzFCOUMsZ2dEQWdEQSxrdkVEL0JJLFlBQVksbUZBQ1osY0FBYyw4QkFDZCxpQkFBaUIsK0hBQ2pCLGNBQWMsb0tBQ2QsYUFBYSxpTUFDYixhQUFhLDhCQUNiLGNBQWM7OzJGQUdMLGlDQUFpQztrQkFoQjdDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3FCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBdmF0YXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYXZhdGFyJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1Ob3RpZmljYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vbm90aWZpY2F0aW9uLW1hbmFnZW1lbnQudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1tYXN0ZXItbm90aWZpY2F0aW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZG1pbi1ub3RpZmljYXRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEF2YXRhck1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhGb3JtYXRNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB7XG4gIGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxBWE1Ob3RpZmljYXRpb25JdGVtPigpO1xuICBvblByZXNzTm90aWZpY2F0aW9uSXRlbSA9IG91dHB1dDxzdHJpbmc+KCk7XG5cbiAgZGlmZmVyZW50VGltZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gRGF0ZS5ub3coKSAtIHRoaXMuZGF0YSgpLmNyZWF0ZUF0LmdldFRpbWUoKSk7XG5cbiAgcHJlc3NOb3RpZmljYXRpb25JdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uUHJlc3NOb3RpZmljYXRpb25JdGVtLmVtaXQoaWQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIlxuICBbaWRdPVwiZGF0YSgpLmlkXCJcbiAgKGNsaWNrKT1cInByZXNzTm90aWZpY2F0aW9uSXRlbShkYXRhKCkuaWQpXCJcbiAgW2NsYXNzXT1cIltkYXRhKCkudGVtcGxhdGUucHJvcml0eSwgZGF0YSgpLnJlYWRBdCA/ICdyZWFkJyA6ICd1bnJlYWQnXVwiXG4+XG4gIDxheC1hdmF0YXIgbG9vaz1cInJvdW5kZWRcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICBAaWYoZGF0YSgpLnVzZXIuaW1hZ2Upe1xuICAgIDxheC1pbWFnZSBzcmM9XCJodHRwczovL2kucHJhdmF0YXIuY2MvMzAwXCI+PC9heC1pbWFnZT5cbiAgICB9QGVsc2Uge1xuICAgIDxheC1pY29uPlxuICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1sb2NrXCI+PC9pPlxuICAgIDwvYXgtaWNvbj5cbiAgICB9XG4gIDwvYXgtYXZhdGFyPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbS10aXRsZVwiPnt7IGRhdGEoKS50aXRsZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24taXRlbS1ib2R5XCI+e3sgZGF0YSgpLmJvZHkgfX08L2Rpdj5cbiAgICA8IS0tIEBpZihmYWxzZSl7XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tZmlsZVwiPlxuICAgICAgICA8YXgtYXZhdGFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1maWxlLXdvcmQgYXgtdGV4dC0yeGxcIj48L2k+XG4gICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICA8L2F4LWF2YXRhcj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWZpbGUtbmFtZVwiPk5ldyBwcm9qZWN0IGRldGFpbHMuZG9jeDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tZmlsZS1zaXplXCI+MjUwIEtCPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiPlxuICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1kb3dubG9hZFwiPjwvaT5cbiAgICAgICAgICA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW0tdGltZVwiPnt7IGRpZmZlcmVudFRpbWUoKSB8IGZvcm1hdCA6ICd0aW1lbGVmdCcgfCBhc3luYyB9fTwvZGl2PlxuICA8L2Rpdj5cbiAgQGlmKCFkYXRhKCkudGVtcGxhdGUuaXNQaW5uZWQpe1xuICA8ZGl2IGNsYXNzPVwicGluLW5vdGlmaWNhdGlvbiBsdHI6YXgtcm90YXRlLTQ1IHJ0bDpheC1sZWZ0LTAgcnRsOi1heC1yb3RhdGUtNDUgbHRyOmF4LXJpZ2h0LTBcIj5cbiAgICA8YXgtaWNvbj5cbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtdGh1bWJ0YWNrXCI+PC9pPlxuICAgIDwvYXgtaWNvbj5cbiAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,155 +0,0 @@
1
- import { AXBadgeModule } from '@acorex/components/badge';
2
- import { AXButtonModule } from '@acorex/components/button';
3
- import { AXDecoratorModule } from '@acorex/components/decorators';
4
- import { AXPopoverModule } from '@acorex/components/popover';
5
- import { AXTabsModule } from '@acorex/components/tabs';
6
- import { AXToastService } from '@acorex/components/toast';
7
- import { AXFormatModule } from '@acorex/core/format';
8
- import { AXPSessionService } from '@acorex/platform/auth';
9
- import { CommonModule } from '@angular/common';
10
- import { ChangeDetectionStrategy, Component, computed, effect, inject, output, signal } from '@angular/core';
11
- import { Router } from '@angular/router';
12
- import { AXMNotificationService } from '../../notification.service';
13
- import { AXMAdminNotificationItemComponent } from '../admin-notification-item/admin-notification-item.component';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@acorex/components/button";
16
- import * as i2 from "@acorex/components/tabs";
17
- import * as i3 from "@acorex/components/decorators";
18
- import * as i4 from "@acorex/components/badge";
19
- export class AXMAdminNotificationPanelComponent {
20
- constructor() {
21
- this.onNewNotfication = output();
22
- this.notificationService = inject(AXMNotificationService);
23
- this.toastService = inject(AXToastService);
24
- this.router = inject(Router);
25
- this.sessionService = inject(AXPSessionService);
26
- this.notifications = signal(undefined);
27
- this.totalNotifications = signal(undefined);
28
- this.tabItems = computed(() => this.getTabItems(this.notifications()), {
29
- equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),
30
- });
31
- this.activeTab = signal('All');
32
- this.NewNotification = computed(() => this.getNewNotification(this.tabItems()));
33
- this.NewNotificationEffect = effect(() => this.onNewNotfication.emit(this.NewNotification()));
34
- }
35
- changeActiveTab(tab) {
36
- this.activeTab.set(tab);
37
- }
38
- ngOnInit() {
39
- this.loadNotification();
40
- }
41
- async loadNotification() {
42
- try {
43
- const response = await this.notificationService.getList();
44
- this.totalNotifications.set(response.total);
45
- const orderedResponse = response.items.sort((a, b) => {
46
- if (a.template.isPinned === b.template.isPinned) {
47
- return new Date(a.createAt).getTime() - new Date(b.createAt).getTime();
48
- }
49
- return a.template.isPinned ? 1 : -1;
50
- });
51
- this.notifications.set(orderedResponse);
52
- }
53
- catch (error) {
54
- this.toastService.show({
55
- content: typeof error === 'string' ? error : 'Failed to load notifications!',
56
- color: 'danger',
57
- location: 'bottom-center',
58
- closeButton: true,
59
- timeOut: 3000,
60
- timeOutProgress: true,
61
- });
62
- }
63
- }
64
- getTabItems(notifications) {
65
- if (!notifications) {
66
- return [
67
- {
68
- text: 'All',
69
- //active: true,
70
- count: 0,
71
- },
72
- ];
73
- }
74
- const categoryCountMap = new Map();
75
- notifications.forEach((notification) => {
76
- const category = notification.template.category;
77
- if (!categoryCountMap.has(category)) {
78
- categoryCountMap.set(category, 0);
79
- }
80
- if (!notification.readAt) {
81
- categoryCountMap.set(category, categoryCountMap.get(category) + 1);
82
- }
83
- });
84
- const tabItems = Array.from(categoryCountMap.entries()).map(([category, count]) => ({
85
- text: category,
86
- count: count,
87
- }));
88
- const totalCount = Array.from(categoryCountMap.values()).reduce((a, b) => a + b, 0);
89
- tabItems.unshift({
90
- text: 'All',
91
- count: totalCount,
92
- });
93
- return tabItems;
94
- }
95
- getNewNotification(data) {
96
- const total = data.filter((tab) => tab.text !== 'All').reduce((sum, tab) => sum + tab.count, 0);
97
- return total;
98
- }
99
- getNotificationItems(category) {
100
- if (category === 'All') {
101
- return this.notifications();
102
- }
103
- else {
104
- return this.notifications()?.filter((item) => item.template.category === category);
105
- }
106
- }
107
- //
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() {
129
- this.notifications.update((notification) => notification?.map((item) => {
130
- if (!item.readAt) {
131
- return { ...item, readAt: new Date() };
132
- }
133
- return item;
134
- }));
135
- }
136
- viewAllNotifications() {
137
- this.router.navigate([`${this.sessionService.application?.name}/m/notification-management/e/my-notification/list`]);
138
- }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
141
- }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
143
- type: Component,
144
- args: [{ selector: 'axm-admin-notification-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
145
- CommonModule,
146
- AXButtonModule,
147
- AXTabsModule,
148
- AXDecoratorModule,
149
- AXBadgeModule,
150
- AXPopoverModule,
151
- AXMAdminNotificationItemComponent,
152
- AXFormatModule,
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" }]
154
- }] });
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=
@@ -1,36 +0,0 @@
1
- import { AXBadgeModule } from '@acorex/components/badge';
2
- import { AXButtonModule } from '@acorex/components/button';
3
- import { AXDecoratorModule } from '@acorex/components/decorators';
4
- import { AXPopoverModule } from '@acorex/components/popover';
5
- import { CommonModule } from '@angular/common';
6
- import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
7
- import { AXMAdminNotificationItemComponent } from '../admin-notification-item/admin-notification-item.component';
8
- import { AXMAdminNotificationPanelComponent } from '../admin-notification-panel/admin-notification-panel.component';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@acorex/components/button";
11
- import * as i2 from "@acorex/components/decorators";
12
- import * as i3 from "@acorex/components/badge";
13
- import * as i4 from "@acorex/components/popover";
14
- export class AXMAdminNotificationSlotComponent {
15
- constructor() {
16
- this.totalNewNotification = signal(0);
17
- }
18
- setTotalNewNotification(value) {
19
- this.totalNewNotification.set(value);
20
- }
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 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
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
25
- type: Component,
26
- args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
27
- CommonModule,
28
- AXButtonModule,
29
- AXDecoratorModule,
30
- AXBadgeModule,
31
- AXPopoverModule,
32
- AXMAdminNotificationItemComponent,
33
- AXMAdminNotificationPanelComponent,
34
- ], template: "<ax-button 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
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QvYWRtaW4tbm90aWZpY2F0aW9uLXNsb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7QUFlcEgsTUFBTSxPQUFPLGlDQUFpQztJQWQ5QztRQWVFLHlCQUFvQixHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztLQUkxQztJQUhDLHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQUpVLGlDQUFpQztrR0FBakMsaUNBQWlDLHdFQ3RCOUMsNHNCQWVBLDJDREZJLFlBQVksOEJBQ1osY0FBYyx1WkFDZCxpQkFBaUIsdVZBQ2pCLGFBQWEseUlBQ2IsZUFBZSxtVUFFZixrQ0FBa0M7OzJGQUd6QixpQ0FBaUM7a0JBZDdDLFNBQVM7aUNBRUksSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQ0FBaUM7d0JBQ2pDLGtDQUFrQztxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtL2FkbWluLW5vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRtaW4tbm90aWZpY2F0aW9uLXBhbmVsL2FkbWluLW5vdGlmaWNhdGlvbi1wYW5lbC5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1ub3RpZmljYXRpb24tc2xvdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYTUFkbWluTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBBWE1BZG1pbk5vdGlmaWNhdGlvblBhbmVsQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZG1pbk5vdGlmaWNhdGlvblNsb3RDb21wb25lbnQge1xuICB0b3RhbE5ld05vdGlmaWNhdGlvbiA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBzZXRUb3RhbE5ld05vdGlmaWNhdGlvbih2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbE5ld05vdGlmaWNhdGlvbi5zZXQodmFsdWUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uIGNsYXNzPVwiYXgtcmVsYXRpdmVcIiBsb29rPVwiYmxhbmtcIiAjbm90aWZpY2F0aW9uPlxuICA8YXgtaWNvbj5cbiAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtYmVsbFwiPjwvaT5cbiAgPC9heC1pY29uPlxuICA8YXgtc3VmZml4IGNsYXNzPVwiYXgtYWJzb2x1dGUgYXgtdG9wLTAgYXgtbGVmdC0xLzJcIj5cbiAgICBAaWYodG90YWxOZXdOb3RpZmljYXRpb24oKSl7XG4gICAgPGF4LWJhZGdlIGNvbG9yPVwic3VjY2Vzc1wiIFt0ZXh0XT1cInRvdGFsTmV3Tm90aWZpY2F0aW9uKCkudG9TdHJpbmcoKVwiPjwvYXgtYmFkZ2U+XG4gICAgfVxuICA8L2F4LXN1ZmZpeD5cbjwvYXgtYnV0dG9uPlxuPGF4LXBvcG92ZXIgW3RhcmdldF09XCJub3RpZmljYXRpb25cIiBbb3Blbk9uXT1cIid0b2dnbGUnXCIgW2Nsb3NlT25dPVwiJ2NsaWNrT3V0J1wiIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1iZy1zdXJmYWNlIGF4LWJvcmRlciBheC1ib3JkZXItZGVmYXVsdCBheC1yb3VuZGVkLW1kIGF4LXNoYWRvdy1tZCBheC13LWZ1bGxcIj5cbiAgICA8YXhtLWFkbWluLW5vdGlmaWNhdGlvbi1wYW5lbCAob25OZXdOb3RmaWNhdGlvbik9XCJzZXRUb3RhbE5ld05vdGlmaWNhdGlvbigkZXZlbnQpXCI+IDwvYXhtLWFkbWluLW5vdGlmaWNhdGlvbi1wYW5lbD5cbiAgPC9kaXY+XG48L2F4LXBvcG92ZXI+XG4iXX0=
@@ -1,9 +0,0 @@
1
- export const AXMNotificationManagementModuleConst = {
2
- moduleName: 'NotificationManagement',
3
- moduleRoute: 'notification-management',
4
- i18n: 'notification-management',
5
- myNotificationEntity: 'my-notification',
6
- notificationTemplateEntity: 'notification-template',
7
- notificationEntity: 'notification',
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvbm90aWZpY2F0aW9uLW1hbmFnZW1lbnQvc3JjL2xpYi9jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCxVQUFVLEVBQUUsd0JBQXdCO0lBQ3BDLFdBQVcsRUFBRSx5QkFBeUI7SUFDdEMsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixvQkFBb0IsRUFBRSxpQkFBaUI7SUFDdkMsMEJBQTBCLEVBQUUsdUJBQXVCO0lBQ25ELGtCQUFrQixFQUFFLGNBQWM7Q0FDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBWE1Ob3RpZmljYXRpb25NYW5hZ2VtZW50TW9kdWxlQ29uc3QgPSB7XG4gIG1vZHVsZU5hbWU6ICdOb3RpZmljYXRpb25NYW5hZ2VtZW50JyxcbiAgbW9kdWxlUm91dGU6ICdub3RpZmljYXRpb24tbWFuYWdlbWVudCcsXG4gIGkxOG46ICdub3RpZmljYXRpb24tbWFuYWdlbWVudCcsXG4gIG15Tm90aWZpY2F0aW9uRW50aXR5OiAnbXktbm90aWZpY2F0aW9uJyxcbiAgbm90aWZpY2F0aW9uVGVtcGxhdGVFbnRpdHk6ICdub3RpZmljYXRpb24tdGVtcGxhdGUnLFxuICBub3RpZmljYXRpb25FbnRpdHk6ICdub3RpZmljYXRpb24nLFxufTtcbiJdfQ==
@@ -1,236 +0,0 @@
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 moduleName = 'notification-management';
7
- const scope = `#${moduleName}`;
8
- const entityDef = {
9
- module: moduleName,
10
- name: 'notification',
11
- source: 'notification-management.notification',
12
- title: `t('my',{scope: 'notification-management'})`,
13
- formats: {
14
- individual: `t('my',{scope: 'notification-management'})`,
15
- plural: `t('my',{scope: 'notification-management'})`,
16
- },
17
- groups: [
18
- { id: 'data', title: 'Data' },
19
- { id: 'content', title: 'Content' },
20
- { id: 'action', title: 'Action' },
21
- { id: 'user', title: 'User' },
22
- { id: 'template', title: 'Template' },
23
- ],
24
- properties: [
25
- {
26
- name: 'id',
27
- title: 'ID',
28
- groupId: 'data',
29
- schema: {
30
- dataType: 'string',
31
- hidden: true,
32
- nullable: false,
33
- readonly: true,
34
- unique: { enabled: true },
35
- },
36
- },
37
- {
38
- name: 'title',
39
- title: 't("title", { scope: "common" })',
40
- groupId: 'data',
41
- schema: {
42
- dataType: 'string',
43
- interface: {
44
- type: AXPWidgetsCatalog.text,
45
- },
46
- },
47
- },
48
- {
49
- name: 'body',
50
- title: 'Body',
51
- groupId: 'data',
52
- schema: {
53
- dataType: 'string',
54
- interface: {
55
- type: AXPWidgetsCatalog.largeText,
56
- },
57
- },
58
- },
59
- {
60
- name: 'channel',
61
- title: 'Channel',
62
- groupId: 'data',
63
- schema: {
64
- dataType: 'string',
65
- interface: {
66
- type: AXPWidgetsCatalog.select,
67
- options: { dataSource: ['InApp', 'Email', 'SMS'], multiple: false },
68
- },
69
- },
70
- },
71
- {
72
- name: 'content.type',
73
- title: 'Content Data',
74
- groupId: 'content',
75
- schema: {
76
- dataType: 'object',
77
- interface: {
78
- type: AXPWidgetsCatalog.richText,
79
- },
80
- },
81
- },
82
- {
83
- name: 'action.type',
84
- title: 'Action Type',
85
- groupId: 'action',
86
- schema: {
87
- dataType: 'string',
88
- interface: {
89
- type: AXPWidgetsCatalog.select,
90
- options: { dataSource: ['Link', 'Entity', 'Popup'], multiple: false },
91
- },
92
- },
93
- },
94
- {
95
- name: 'User.name',
96
- title: 'Username',
97
- groupId: 'user',
98
- schema: {
99
- dataType: 'string',
100
- interface: {
101
- type: AXPWidgetsCatalog.text,
102
- },
103
- },
104
- },
105
- {
106
- name: 'template.category',
107
- title: 'Category',
108
- groupId: 'template',
109
- schema: {
110
- dataType: 'string',
111
- interface: {
112
- type: AXPWidgetsCatalog.select,
113
- options: { dataSource: ['Inbox', 'Archive'], multiple: false },
114
- },
115
- },
116
- },
117
- {
118
- name: 'template.prority',
119
- title: 'Prority',
120
- groupId: 'template',
121
- schema: {
122
- dataType: 'string',
123
- interface: {
124
- type: AXPWidgetsCatalog.select,
125
- options: { dataSource: ['Warning', 'Danger', 'Notice'], multiple: false },
126
- },
127
- },
128
- },
129
- {
130
- name: 'template.isPinned',
131
- title: 'Is Pinned',
132
- groupId: 'template',
133
- schema: {
134
- dataType: 'boolean',
135
- interface: {
136
- type: AXPWidgetsCatalog.checkbox,
137
- options: {
138
- label: 'Is Pinned',
139
- },
140
- },
141
- },
142
- },
143
- {
144
- name: 'readAt',
145
- title: 'Read At',
146
- groupId: 'data',
147
- schema: {
148
- dataType: 'datetime',
149
- interface: {
150
- type: AXPWidgetsCatalog.dateTime,
151
- options: { format: 'date' },
152
- },
153
- },
154
- },
155
- {
156
- name: 'createAt',
157
- title: 'Created At',
158
- groupId: 'data',
159
- schema: {
160
- dataType: 'datetime',
161
- interface: {
162
- type: AXPWidgetsCatalog.dateTime,
163
- options: { format: 'date' },
164
- },
165
- },
166
- },
167
- ],
168
- columns: [
169
- { name: 'title' },
170
- { name: 'body' },
171
- { name: 'channel' },
172
- { name: 'user.name' },
173
- { name: 'template.category' },
174
- { name: 'template.prority' },
175
- { name: 'createAt' },
176
- { name: 'readAt' },
177
- ],
178
- commands: {
179
- create: {
180
- execute: async (data) => {
181
- console.log('CREATE', data);
182
- const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });
183
- await dataProvider.insertOne(entity);
184
- return entity;
185
- },
186
- },
187
- delete: {
188
- execute: async (id) => {
189
- console.log('CREATE', id);
190
- await dataProvider.deleteOne(id);
191
- },
192
- },
193
- update: {
194
- execute: async (data) => {
195
- await dataProvider.updateOne(data.id, data);
196
- },
197
- },
198
- },
199
- queries: {
200
- byKey: {
201
- execute: async (id) => {
202
- return await dataProvider.getOne(id);
203
- },
204
- type: AXPEntityQueryType.Single,
205
- },
206
- list: {
207
- execute: async (e) => {
208
- const list = await dataProvider.getAll();
209
- return {
210
- total: list.length,
211
- items: list.slice(e.skip, e.skip + e.take),
212
- };
213
- },
214
- type: AXPEntityQueryType.List,
215
- },
216
- },
217
- interfaces: {
218
- master: {
219
- list: {
220
- actions: [
221
- {
222
- title: 'Delete',
223
- command: 'delete-entity',
224
- priority: 'primary',
225
- type: 'delete',
226
- scope: AXPEntityCommandScope.Selected,
227
- },
228
- ],
229
- views: [{ name: 'all', title: 'All Notifications', fixed: true, columns: [], conditions: [], sorts: [] }],
230
- },
231
- },
232
- },
233
- };
234
- return entityDef;
235
- }
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvbXktbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHcEUsTUFBTSxDQUFDLEtBQUssVUFBVSwyQkFBMkIsQ0FBQyxRQUFrQjtJQUNsRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsSUFBSSx5QkFBeUIsQ0FBTSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekYsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUM7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUUvQixNQUFNLFNBQVMsR0FBYztRQUMzQixNQUFNLEVBQUUsVUFBVTtRQUNsQixJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsc0NBQXNDO1FBQzlDLEtBQUssRUFBRSw0Q0FBNEM7UUFDbkQsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLDRDQUE0QztZQUN4RCxNQUFNLEVBQUUsNENBQTRDO1NBQ3JEO1FBQ0QsTUFBTSxFQUFFO1lBQ04sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDN0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDbkMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFB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S0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUMxRzthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYUERhdGFHZW5lcmF0b3IsXG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlEYXRhUHJvdmlkZXJJbXBsLFxuICBBWFBFbnRpdHlRdWVyeVR5cGUsXG4gIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG15Tm90aWZpY2F0aW9uRW50aXR5RmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgY29uc3Qgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuICBjb25zdCBkYXRhUHJvdmlkZXIgPSBuZXcgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxhbnk+KHN0b3JhZ2VTZXJ2aWNlLCAnbm90aWZpY2F0aW9ucycpO1xuICBjb25zdCBtb2R1bGVOYW1lID0gJ25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50JztcbiAgY29uc3Qgc2NvcGUgPSBgIyR7bW9kdWxlTmFtZX1gO1xuXG4gIGNvbnN0IGVudGl0eURlZjogQVhQRW50aXR5ID0ge1xuICAgIG1vZHVsZTogbW9kdWxlTmFtZSxcbiAgICBuYW1lOiAnbm90aWZpY2F0aW9uJyxcbiAgICBzb3VyY2U6ICdub3RpZmljYXRpb24tbWFuYWdlbWVudC5ub3RpZmljYXRpb24nLFxuICAgIHRpdGxlOiBgdCgnbXknLHtzY29wZTogJ25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50J30pYCxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpbmRpdmlkdWFsOiBgdCgnbXknLHtzY29wZTogJ25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50J30pYCxcbiAgICAgIHBsdXJhbDogYHQoJ215Jyx7c2NvcGU6ICdub3RpZmljYXRpb24tbWFuYWdlbWVudCd9KWAsXG4gICAgfSxcbiAgICBncm91cHM6IFtcbiAgICAgIHsgaWQ6ICdkYXRhJywgdGl0bGU6ICdEYXRhJyB9LFxuICAgICAgeyBpZDogJ2NvbnRlbnQnLCB0aXRsZTogJ0NvbnRlbnQnIH0sXG4gICAgICB7IGlkOiAnYWN0aW9uJywgdGl0bGU6ICdBY3Rpb24nIH0sXG4gICAgICB7IGlkOiAndXNlcicsIHRpdGxlOiAnVXNlcicgfSxcbiAgICAgIHsgaWQ6ICd0ZW1wbGF0ZScsIHRpdGxlOiAnVGVtcGxhdGUnIH0sXG4gICAgXSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHRpdGxlOiAnSUQnLFxuICAgICAgICBncm91cElkOiAnZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICAgIHVuaXF1ZTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICB0aXRsZTogJ3QoXCJ0aXRsZVwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pJyxcbiAgICAgICAgZ3JvdXBJZDogJ2RhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgIHRpdGxlOiAnQm9keScsXG4gICAgICAgIGdyb3VwSWQ6ICdkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubGFyZ2VUZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY2hhbm5lbCcsXG4gICAgICAgIHRpdGxlOiAnQ2hhbm5lbCcsXG4gICAgICAgIGdyb3VwSWQ6ICdkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgICAgb3B0aW9uczogeyBkYXRhU291cmNlOiBbJ0luQXBwJywgJ0VtYWlsJywgJ1NNUyddLCBtdWx0aXBsZTogZmFsc2UgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvbnRlbnQudHlwZScsXG4gICAgICAgIHRpdGxlOiAnQ29udGVudCBEYXRhJyxcbiAgICAgICAgZ3JvdXBJZDogJ2NvbnRlbnQnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5yaWNoVGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2FjdGlvbi50eXBlJyxcbiAgICAgICAgdGl0bGU6ICdBY3Rpb24gVHlwZScsXG4gICAgICAgIGdyb3VwSWQ6ICdhY3Rpb24nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGRhdGFTb3VyY2U6IFsnTGluaycsICdFbnRpdHknLCAnUG9wdXAnXSwgbXVsdGlwbGU6IGZhbHNlIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdVc2VyLm5hbWUnLFxuICAgICAgICB0aXRsZTogJ1VzZXJuYW1lJyxcbiAgICAgICAgZ3JvdXBJZDogJ3VzZXInLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0ZW1wbGF0ZS5jYXRlZ29yeScsXG4gICAgICAgIHRpdGxlOiAnQ2F0ZWdvcnknLFxuICAgICAgICBncm91cElkOiAndGVtcGxhdGUnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGRhdGFTb3VyY2U6IFsnSW5ib3gnLCAnQXJjaGl2ZSddLCBtdWx0aXBsZTogZmFsc2UgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RlbXBsYXRlLnByb3JpdHknLFxuICAgICAgICB0aXRsZTogJ1Byb3JpdHknLFxuICAgICAgICBncm91cElkOiAndGVtcGxhdGUnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7IGRhdGFTb3VyY2U6IFsnV2FybmluZycsICdEYW5nZXInLCAnTm90aWNlJ10sIG11bHRpcGxlOiBmYWxzZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGVtcGxhdGUuaXNQaW5uZWQnLFxuICAgICAgICB0aXRsZTogJ0lzIFBpbm5lZCcsXG4gICAgICAgIGdyb3VwSWQ6ICd0ZW1wbGF0ZScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5jaGVja2JveCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdJcyBQaW5uZWQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3JlYWRBdCcsXG4gICAgICAgIHRpdGxlOiAnUmVhZCBBdCcsXG4gICAgICAgIGdyb3VwSWQ6ICdkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdkYXRldGltZScsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHsgZm9ybWF0OiAnZGF0ZScgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZUF0JyxcbiAgICAgICAgdGl0bGU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgZ3JvdXBJZDogJ2RhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGV0aW1lJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgICAgb3B0aW9uczogeyBmb3JtYXQ6ICdkYXRlJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29sdW1uczogW1xuICAgICAgeyBuYW1lOiAndGl0bGUnIH0sXG4gICAgICB7IG5hbWU6ICdib2R5JyB9LFxuICAgICAgeyBuYW1lOiAnY2hhbm5lbCcgfSxcbiAgICAgIHsgbmFtZTogJ3VzZXIubmFtZScgfSxcbiAgICAgIHsgbmFtZTogJ3RlbXBsYXRlLmNhdGVnb3J5JyB9LFxuICAgICAgeyBuYW1lOiAndGVtcGxhdGUucHJvcml0eScgfSxcbiAgICAgIHsgbmFtZTogJ2NyZWF0ZUF0JyB9LFxuICAgICAgeyBuYW1lOiAncmVhZEF0JyB9LFxuICAgIF0sXG4gICAgY29tbWFuZHM6IHtcbiAgICAgIGNyZWF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NSRUFURScsIGRhdGEpO1xuICAgICAgICAgIGNvbnN0IGVudGl0eSA9IE9iamVjdC5hc3NpZ24oZGF0YSwgeyBpZDogQVhQRGF0YUdlbmVyYXRvci51dWlkKCkgfSk7XG4gICAgICAgICAgYXdhaXQgZGF0YVByb3ZpZGVyLmluc2VydE9uZShlbnRpdHkpO1xuICAgICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVsZXRlOiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChpZDogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0NSRUFURScsIGlkKTtcbiAgICAgICAgICBhd2FpdCBkYXRhUHJvdmlkZXIuZGVsZXRlT25lKGlkKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1cGRhdGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGF3YWl0IGRhdGFQcm92aWRlci51cGRhdGVPbmUoZGF0YS5pZCwgZGF0YSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcXVlcmllczoge1xuICAgICAgYnlLZXk6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVByb3ZpZGVyLmdldE9uZShpZCk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEFYUEVudGl0eVF1ZXJ5VHlwZS5TaW5nbGUsXG4gICAgICB9LFxuICAgICAgbGlzdDoge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGlzdCA9IGF3YWl0IGRhdGFQcm92aWRlci5nZXRBbGwoKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG90YWw6IGxpc3QubGVuZ3RoLFxuICAgICAgICAgICAgaXRlbXM6IGxpc3Quc2xpY2UoZS5za2lwLCBlLnNraXAgKyBlLnRha2UpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEFYUEVudGl0eVF1ZXJ5VHlwZS5MaXN0LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGludGVyZmFjZXM6IHtcbiAgICAgIG1hc3Rlcjoge1xuICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmlld3M6IFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCBOb3RpZmljYXRpb25zJywgZml4ZWQ6IHRydWUsIGNvbHVtbnM6IFtdLCBjb25kaXRpb25zOiBbXSwgc29ydHM6IFtdIH1dLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBlbnRpdHlEZWY7XG59XG4iXX0=