@acorex/modules 20.2.4-next.0 → 20.2.4-next.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 (223) hide show
  1. package/auth/index.d.ts +1 -0
  2. package/common/index.d.ts +16 -13
  3. package/contact-management/index.d.ts +0 -6
  4. package/conversation/index.d.ts +8 -0
  5. package/dashboard-management/index.d.ts +3 -79
  6. package/data-management/index.d.ts +2 -69
  7. package/document-management/index.d.ts +20 -5
  8. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs → acorex-modules-auth-acorex-modules-auth-C3KbvhSU.mjs} +18 -14
  9. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs.map → acorex-modules-auth-acorex-modules-auth-C3KbvhSU.mjs.map} +1 -1
  10. package/fesm2022/{acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs → acorex-modules-auth-app-chooser.component-1rAktuKq.mjs} +2 -2
  11. package/fesm2022/{acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs.map → acorex-modules-auth-app-chooser.component-1rAktuKq.mjs.map} +1 -1
  12. package/fesm2022/{acorex-modules-auth-login.module-DGPRxnXo.mjs → acorex-modules-auth-login.module-Bq2itSg_.mjs} +4 -4
  13. package/fesm2022/{acorex-modules-auth-login.module-DGPRxnXo.mjs.map → acorex-modules-auth-login.module-Bq2itSg_.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-master.layout-BNFGuQQs.mjs → acorex-modules-auth-master.layout-DONbu77t.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-auth-master.layout-BNFGuQQs.mjs.map → acorex-modules-auth-master.layout-DONbu77t.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs → acorex-modules-auth-oauth-callback.component-BgzmfTlY.mjs} +2 -2
  17. package/fesm2022/{acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs.map → acorex-modules-auth-oauth-callback.component-BgzmfTlY.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-password.component-Dyox9sR4.mjs → acorex-modules-auth-password.component-B9LqFrEG.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-auth-password.component-Dyox9sR4.mjs.map → acorex-modules-auth-password.component-B9LqFrEG.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-password.component-ln2kDKPR.mjs → acorex-modules-auth-password.component-BuGTsfLH.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-auth-password.component-ln2kDKPR.mjs.map → acorex-modules-auth-password.component-BuGTsfLH.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-auth-routes-7vr8T08D.mjs → acorex-modules-auth-routes-833kPM6o.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-auth-routes-7vr8T08D.mjs.map → acorex-modules-auth-routes-833kPM6o.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-auth-two-factor.module-D6XCUP_A.mjs → acorex-modules-auth-two-factor.module-BS1Pcbxp.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-auth-two-factor.module-D6XCUP_A.mjs.map → acorex-modules-auth-two-factor.module-BS1Pcbxp.mjs.map} +1 -1
  26. package/fesm2022/acorex-modules-auth-user-sessions.component-BXHfWAbP.mjs +137 -0
  27. package/fesm2022/acorex-modules-auth-user-sessions.component-BXHfWAbP.mjs.map +1 -0
  28. package/fesm2022/acorex-modules-auth.mjs +1 -1
  29. package/fesm2022/acorex-modules-calendar-management.mjs +12 -40
  30. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  31. package/fesm2022/acorex-modules-common-manage-extra-properties-popup.component-BgXwb8Su.mjs +71 -0
  32. package/fesm2022/acorex-modules-common-manage-extra-properties-popup.component-BgXwb8Su.mjs.map +1 -0
  33. package/fesm2022/acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs +47 -0
  34. package/fesm2022/acorex-modules-common-manage-extra-properties.command-DqdhTfLD.mjs.map +1 -0
  35. package/fesm2022/{acorex-modules-common-search-popup.component-39U0-TIj.mjs → acorex-modules-common-search-popup.component-BSQyjDKA.mjs} +8 -8
  36. package/fesm2022/{acorex-modules-common-search-popup.component-39U0-TIj.mjs.map → acorex-modules-common-search-popup.component-BSQyjDKA.mjs.map} +1 -1
  37. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs → acorex-modules-common-timeline-version-history-popup.component-ByAc4Yp9.mjs} +5 -5
  38. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs.map → acorex-modules-common-timeline-version-history-popup.component-ByAc4Yp9.mjs.map} +1 -1
  39. package/fesm2022/acorex-modules-common.mjs +532 -91
  40. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  41. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs → acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs} +15 -41
  42. package/fesm2022/acorex-modules-contact-management-contact-method.entity-DR6V9Nox.mjs.map +1 -0
  43. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs → acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs} +13 -90
  44. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs.map +1 -0
  45. package/fesm2022/acorex-modules-contact-management.mjs +793 -1
  46. package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
  47. package/fesm2022/acorex-modules-content-management.mjs +3 -3
  48. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  49. package/fesm2022/acorex-modules-conversation.mjs +82 -22
  50. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  51. package/fesm2022/acorex-modules-dashboard-management.mjs +29 -325
  52. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  53. package/fesm2022/acorex-modules-data-management.mjs +157 -1006
  54. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  55. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs → acorex-modules-document-management-acorex-modules-document-management-BCTTw-hI.mjs} +170 -282
  56. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BCTTw-hI.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs → acorex-modules-document-management-attachment-widget.component-C80j1Gn7.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs.map → acorex-modules-document-management-attachment-widget.component-C80j1Gn7.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs → acorex-modules-document-management-create-folder-dialog.component-BFnvHSjH.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs.map → acorex-modules-document-management-create-folder-dialog.component-BFnvHSjH.mjs.map} +1 -1
  61. package/fesm2022/{acorex-modules-document-management-details-view.component-BKNvUhdl.mjs → acorex-modules-document-management-details-view.component-7OR6bXr-.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-document-management-details-view.component-BKNvUhdl.mjs.map → acorex-modules-document-management-details-view.component-7OR6bXr-.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs → acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs} +42 -2
  64. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs → acorex-modules-document-management-drive-choose.component-B66hegSh.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs.map → acorex-modules-document-management-drive-choose.component-B66hegSh.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-document-management-drive.component-DutBXTtm.mjs → acorex-modules-document-management-drive.component-DZhd1DUn.mjs} +2 -2
  68. package/fesm2022/{acorex-modules-document-management-drive.component-DutBXTtm.mjs.map → acorex-modules-document-management-drive.component-DZhd1DUn.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs → acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs} +2 -2
  70. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs.map → acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs.map} +1 -1
  71. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs → acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs} +2 -2
  72. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs.map → acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs.map} +1 -1
  73. package/fesm2022/{acorex-modules-document-management-list-view.component-DdLTVccZ.mjs → acorex-modules-document-management-list-view.component-oDeeGScM.mjs} +2 -2
  74. package/fesm2022/{acorex-modules-document-management-list-view.component-DdLTVccZ.mjs.map → acorex-modules-document-management-list-view.component-oDeeGScM.mjs.map} +1 -1
  75. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs → acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs} +6 -6
  76. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs.map +1 -0
  77. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs → acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs} +2 -2
  78. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs.map → acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs.map} +1 -1
  79. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs → acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs} +2 -2
  80. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs.map → acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs → acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs.map → acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs → acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs.map → acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs.map} +1 -1
  85. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  86. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs} +13 -85
  87. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs.map +1 -0
  88. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs} +2 -2
  89. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs.map → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs.map} +1 -1
  90. package/fesm2022/{acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs} +2 -2
  91. package/fesm2022/{acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs.map → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs → acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs} +6 -4
  93. package/fesm2022/acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs.map +1 -0
  94. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs} +2 -2
  95. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs.map} +1 -1
  96. package/fesm2022/{acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs → acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs} +15 -85
  97. package/fesm2022/acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs.map +1 -0
  98. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs} +2 -2
  99. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs.map → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs.map} +1 -1
  100. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  101. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs → acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs} +5 -5
  102. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs.map +1 -0
  103. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs → acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs} +2 -2
  104. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs.map → acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs.map} +1 -1
  105. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  106. package/fesm2022/acorex-modules-location-management.mjs +16 -29
  107. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  108. package/fesm2022/acorex-modules-log-management.mjs +1 -1
  109. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  110. package/fesm2022/acorex-modules-meeting-management.mjs +87 -89
  111. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -1
  112. package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs +855 -0
  113. package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs.map +1 -0
  114. package/fesm2022/acorex-modules-notification-management.mjs +20 -20
  115. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  116. package/fesm2022/{acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs → acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs} +14 -42
  117. package/fesm2022/acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs.map +1 -0
  118. package/fesm2022/{acorex-modules-organization-management-chart.entity-UAn44WCP.mjs → acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs} +14 -42
  119. package/fesm2022/acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs.map +1 -0
  120. package/fesm2022/{acorex-modules-organization-management-company.entity-D1A1HSkC.mjs → acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs} +14 -42
  121. package/fesm2022/acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs.map +1 -0
  122. package/fesm2022/{acorex-modules-organization-management-department.entity-BxCyXNtv.mjs → acorex-modules-organization-management-department.entity-BbBrK4BN.mjs} +14 -42
  123. package/fesm2022/acorex-modules-organization-management-department.entity-BbBrK4BN.mjs.map +1 -0
  124. package/fesm2022/{acorex-modules-organization-management-division.entity-DzQT2jpz.mjs → acorex-modules-organization-management-division.entity-DdX7LcCU.mjs} +14 -42
  125. package/fesm2022/acorex-modules-organization-management-division.entity-DdX7LcCU.mjs.map +1 -0
  126. package/fesm2022/{acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs → acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs} +71 -50
  127. package/fesm2022/acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs.map +1 -0
  128. package/fesm2022/{acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs → acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs} +14 -42
  129. package/fesm2022/acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs.map +1 -0
  130. package/fesm2022/{acorex-modules-organization-management-role.entity-CruQeObl.mjs → acorex-modules-organization-management-position.entity-DT7EyvrR.mjs} +96 -79
  131. package/fesm2022/acorex-modules-organization-management-position.entity-DT7EyvrR.mjs.map +1 -0
  132. package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs → acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs} +19 -91
  133. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs.map +1 -0
  134. package/fesm2022/{acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs → acorex-modules-organization-management-role.entity-BdjgFsgo.mjs} +68 -51
  135. package/fesm2022/acorex-modules-organization-management-role.entity-BdjgFsgo.mjs.map +1 -0
  136. package/fesm2022/{acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs → acorex-modules-organization-management-skill.entity-O1453j6I.mjs} +14 -105
  137. package/fesm2022/acorex-modules-organization-management-skill.entity-O1453j6I.mjs.map +1 -0
  138. package/fesm2022/{acorex-modules-organization-management-team.entity-DMCfAZsr.mjs → acorex-modules-organization-management-team.entity-DkRLWl0u.mjs} +13 -32
  139. package/fesm2022/acorex-modules-organization-management-team.entity-DkRLWl0u.mjs.map +1 -0
  140. package/fesm2022/acorex-modules-organization-management.mjs +13 -254
  141. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  142. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs → acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs} +11 -21
  143. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs.map +1 -0
  144. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs → acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs} +20 -19
  145. package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs.map +1 -0
  146. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs → acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs} +9 -12
  147. package/fesm2022/acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs.map +1 -0
  148. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs → acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs} +9 -14
  149. package/fesm2022/acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs.map +1 -0
  150. package/fesm2022/{acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs → acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs} +9 -12
  151. package/fesm2022/acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs.map +1 -0
  152. package/fesm2022/{acorex-modules-party-management-party.entity-DAvqOPic.mjs → acorex-modules-party-management-party.entity-BwAAZRJc.mjs} +43 -43
  153. package/fesm2022/acorex-modules-party-management-party.entity-BwAAZRJc.mjs.map +1 -0
  154. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  155. package/fesm2022/acorex-modules-platform-management.mjs +2 -2
  156. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  157. package/fesm2022/acorex-modules-project-management.mjs +60 -48
  158. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  159. package/fesm2022/acorex-modules-report-management.mjs +56 -57
  160. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  161. package/fesm2022/acorex-modules-scheduler-job-management.mjs +6 -7
  162. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  163. package/fesm2022/acorex-modules-security-management.mjs +7 -5
  164. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  165. package/fesm2022/{acorex-modules-task-management-task-board.page-DbpqZaC7.mjs → acorex-modules-task-management-task-board.page-BBbHu2jz.mjs} +311 -71
  166. package/fesm2022/acorex-modules-task-management-task-board.page-BBbHu2jz.mjs.map +1 -0
  167. package/fesm2022/acorex-modules-task-management.mjs +619 -241
  168. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  169. package/fesm2022/acorex-modules-text-template-management.mjs +4 -6
  170. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  171. package/fesm2022/acorex-modules-training-management.mjs +35 -35
  172. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  173. package/form-template-management/index.d.ts +6 -32
  174. package/organization-management/index.d.ts +3 -111
  175. package/package.json +9 -9
  176. package/task-management/README.md +1 -1
  177. package/task-management/index.d.ts +80 -6
  178. package/fesm2022/acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs +0 -135
  179. package/fesm2022/acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs.map +0 -1
  180. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs +0 -863
  181. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs.map +0 -1
  182. package/fesm2022/acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs.map +0 -1
  183. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs +0 -680
  184. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs.map +0 -1
  185. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs.map +0 -1
  186. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs.map +0 -1
  187. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs.map +0 -1
  188. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs.map +0 -1
  189. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs.map +0 -1
  190. package/fesm2022/acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs +0 -245
  191. package/fesm2022/acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs.map +0 -1
  192. package/fesm2022/acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs.map +0 -1
  193. package/fesm2022/acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs.map +0 -1
  194. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs.map +0 -1
  195. package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs +0 -544
  196. package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map +0 -1
  197. package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +0 -1
  198. package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +0 -1
  199. package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +0 -1
  200. package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +0 -1
  201. package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +0 -1
  202. package/fesm2022/acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs.map +0 -1
  203. package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +0 -1
  204. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs +0 -305
  205. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +0 -1
  206. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +0 -526
  207. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +0 -1
  208. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +0 -1
  209. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs +0 -338
  210. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +0 -1
  211. package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +0 -1
  212. package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +0 -1
  213. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs +0 -305
  214. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +0 -1
  215. package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +0 -1
  216. package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +0 -1
  217. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs.map +0 -1
  218. package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs.map +0 -1
  219. package/fesm2022/acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs.map +0 -1
  220. package/fesm2022/acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs.map +0 -1
  222. package/fesm2022/acorex-modules-party-management-party.entity-DAvqOPic.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-task-management-task-board.page-DbpqZaC7.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs","sources":["../tmp-esm2022/notification-management/lib/features/components/notification-page/notification-page.component.js"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXSlidingItemModule } from '@acorex/components/sliding-item';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPThemeLayoutBlockComponent, AXPUserAvatarComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXContextMenuComponent, } from '@acorex/components/menu';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPNotificationDefinitionService } from '../../shared/notification-definition.service';\nimport { AXMNotificationConnectorService } from '../../shared/notification-management.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@acorex/components/check-box\";\nimport * as i5 from \"@acorex/components/skeleton\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/components/badge\";\nimport * as i8 from \"@acorex/components/dropdown\";\nimport * as i9 from \"@acorex/components/search-box\";\nimport * as i10 from \"@acorex/components/label\";\nimport * as i11 from \"@acorex/components/sliding-item\";\nimport * as i12 from \"@acorex/core/format\";\n//#region ---- Component Definition ----\nexport class AXMNotificationPageComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n //#region ---- Services & Dependencies ----\n this.layoutThemeService = inject(AXPLayoutThemeService);\n this.connector = inject(AXMNotificationConnectorService);\n this.definitionService = inject(AXPNotificationDefinitionService);\n //#endregion\n //#region ---- State & Computed Properties ----\n this.loading = this.connector.loading;\n this.errorMessage = this.connector.errorMessage;\n this.notifications = this.connector.notificationList;\n this.unreadCount = this.connector.unreadCount;\n this.totalCount = this.connector.total;\n // Local UI state\n this.searchQuery = signal('', ...(ngDevMode ? [{ debugName: \"searchQuery\" }] : []));\n this.isEditing = signal(false, ...(ngDevMode ? [{ debugName: \"isEditing\" }] : []));\n this.contextMenu = viewChild('contextMenu', ...(ngDevMode ? [{ debugName: \"contextMenu\" }] : []));\n // #isEditingEff = effect(() => {\n // if (this.isEditing() && this.selectedIds().size === 0) {\n // this.isEditing.set(false);\n // }\n // });\n this.filteredNotifications = computed(() => {\n const query = (this.searchQuery() || '').toLowerCase().trim();\n const items = this.notifications();\n if (!query) {\n return this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n }\n const base = this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n return base.filter((n) => {\n const title = (n.title || '').toLowerCase();\n const body = (n.body || '').toLowerCase();\n const sender = (n.sender?.fullName || '').toLowerCase();\n return title.includes(query) || body.includes(query) || sender.includes(query);\n });\n }, ...(ngDevMode ? [{ debugName: \"filteredNotifications\" }] : []));\n // Tab state: 'all' | 'unread'\n this.tab = signal('all', ...(ngDevMode ? [{ debugName: \"tab\" }] : []));\n this.activeTab = computed(() => this.tab(), ...(ngDevMode ? [{ debugName: \"activeTab\" }] : []));\n // Selection state for bulk actions\n this.selectedIds = signal(new Set(), ...(ngDevMode ? [{ debugName: \"selectedIds\" }] : []));\n this.selectedCount = computed(() => this.selectedIds().size, ...(ngDevMode ? [{ debugName: \"selectedCount\" }] : []));\n this.contextItem = signal(null, ...(ngDevMode ? [{ debugName: \"contextItem\" }] : []));\n }\n selectedTab() {\n return this.tab();\n }\n setTab(v) {\n this.tab.set(v);\n }\n onTabChange(index) {\n this.tab.set(index === 1 ? 'unread' : 'all');\n }\n //#endregion\n //#region ---- Page Interface Methods ----\n async getPageTitle() {\n return 'Notifications';\n }\n getPageDescription() {\n const unread = this.unreadCount();\n const total = this.totalCount();\n if (!total) {\n return 'No notifications';\n }\n return unread > 0 ? `${unread} unread out of ${total}` : `${total} notifications`;\n }\n async getPrimaryMenuItems() {\n const items = [];\n if (this.selectedCount() > 0) {\n items.push({\n title: 'Delete',\n icon: 'fa-light fa-trash',\n command: { name: 'delete-selected' },\n color: 'danger',\n });\n items.push({\n title: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-selected-as-read' },\n color: 'primary',\n });\n }\n return items;\n }\n async getSecondaryMenuItems() {\n const items = [];\n if (this.selectedCount() === 0) {\n items.push({\n title: 'Refresh',\n icon: 'fa-light fa-rotate',\n command: { name: 'refresh' },\n }, {\n title: 'Mark all as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-all-as-read' },\n disabled: this.unreadCount() === 0,\n }, {\n title: 'Select items',\n icon: 'fa-light fa-pen',\n command: { name: 'edit-mode' },\n color: 'primary',\n });\n }\n return items;\n }\n async execute(command) {\n switch (command.name) {\n case 'refresh':\n await this.onRefresh();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'delete-selected':\n await this.deleteSelected();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-selected-as-read':\n await this.markSelectedAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-all-as-read':\n await this.onMarkAllAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'edit-mode':\n if (this.isEditing()) {\n this.deselectAll();\n this.isEditing.set(false);\n }\n else {\n this.isEditing.set(true);\n }\n break;\n }\n }\n //#endregion\n //#region ---- UI Handlers ----\n onSearch(value) {\n this.searchQuery.set(value);\n }\n onClearSearch() {\n this.searchQuery.set('');\n }\n async onRefresh() {\n await this.connector.getList();\n }\n async onMarkAllAsRead() {\n await this.connector.markAllAsRead();\n }\n isSelected(id) {\n return this.selectedIds().has(id);\n }\n toggleSelectionWithModel(id, checked) {\n const next = new Set(this.selectedIds());\n if (checked) {\n next.add(id);\n }\n else {\n next.delete(id);\n }\n this.selectedIds.set(next);\n }\n isAllSelected() {\n const items = this.filteredNotifications();\n return items.length > 0 && items.every((i) => this.selectedIds().has(i.id));\n }\n toggleSelectAll(event) {\n const checked = event.target.checked;\n if (checked) {\n this.selectedIds.set(new Set(this.filteredNotifications().map((i) => i.id)));\n }\n else {\n this.selectedIds.set(new Set());\n }\n }\n async markSelectedAsRead(item) {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0)\n return;\n await this.connector.markAsRead({ id: ids });\n this.selectedIds.set(new Set());\n }\n async deleteSelected(item) {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0)\n return;\n for (const id of ids) {\n await this.connector.deleteOne(id);\n }\n this.selectedIds.set(new Set());\n }\n deselectAll() {\n if (this.selectedCount() > 0) {\n this.selectedIds.set(new Set());\n }\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n }\n // Row interactions\n onRowClick(id) {\n this.toggleSelectionById(id);\n }\n async openItem(id) {\n if (this.isEditing()) {\n this.toggleSelectionById(id);\n return;\n }\n //avoid double click on selected items\n if (this.selectedCount() > 0) {\n return;\n }\n const item = this.notifications().find((n) => n.id === id);\n if (!item) {\n return;\n }\n // Mark as read (idempotent per service logic)\n await this.connector.markAsRead({ id: [id] });\n // Execute provider click action if available\n const provider = this.definitionService.resolve(item.type);\n await provider?.execute?.({ name: 'click' }, item);\n }\n toggleSelectionById(id) {\n const next = new Set(this.selectedIds());\n if (next.has(id)) {\n next.delete(id);\n }\n else {\n next.add(id);\n }\n this.selectedIds.set(next);\n }\n //#endregion\n slidingItemsHandler(item, action) {\n switch (action) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n handleContextMenuItemClick(e) {\n const item = this.contextItem();\n if (!item) {\n return;\n }\n switch (e.item.name) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n handleContextMenuOpening(e) {\n e.items = [\n {\n name: 'mark-as-read',\n text: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n color: 'primary',\n },\n ];\n e.items.push({\n name: 'delete',\n text: 'Delete',\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n });\n }\n openContextMenu(e, item) {\n if (this.isEditing() || this.selectedCount() > 0) {\n return;\n }\n e.preventDefault();\n this.contextMenu()?.showAt({\n x: e.clientX,\n y: e.clientY,\n });\n this.contextItem.set(item);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXMNotificationPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXMNotificationPageComponent, isStandalone: true, selector: \"axm-notification-page\", host: { listeners: { \"document:keydown.escape\": \"deselectAll()\" } }, providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMNotificationPageComponent,\n },\n ], viewQueries: [{ propertyName: \"contextMenu\", first: true, predicate: [\"contextMenu\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <axp-page-layout>\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (selectedCount() > 0 || isEditing()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">{{ selectedCount() }} items selected</span>\n <span (click)=\"deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\"\n >Unselect</span\n >\n </div>\n } @else {\n <ax-button [text]=\"activeTab() === 'all' ? 'All Notifications' : 'Unread Notifications'\">\n <ax-dropdown-panel >\n <ax-button-item-list class=\"ax-min-w-52\">\n <ax-button-item\n [text]=\"'All notifications'\"\n [selected]=\"activeTab() === 'all'\"\n (onClick)=\"setTab('all')\"\n ></ax-button-item>\n <ax-button-item\n [text]=\"'Unread Notifications'\"\n [selected]=\"activeTab() === 'unread'\"\n (onClick)=\"setTab('unread')\"\n >\n <ax-suffix>\n <ax-badge [text]=\"unreadCount().toString()\" [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-search-box\n look=\"solid\"\n [placeholder]=\"'Search notifications'\"\n [value]=\"searchQuery()\"\n (onValueChanged)=\"onSearch($event.value)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-prefix>\n <!-- <axp-layout-suffix>\n @if (selectedCount() > 0) {\n <div class=\"ax-flex ax-gap-2\">\n @if (activeTab() === 'unread') {\n <ax-button [text]=\"'Mark as read'\" (onClick)=\"markSelectedAsRead()\"></ax-button>\n }\n <ax-button look=\"outline\" color=\"danger\" [text]=\"'Delete'\" (onClick)=\"deleteSelected()\"></ax-button>\n </div>\n }\n </axp-layout-suffix> -->\n </axp-page-toolbar>\n <axp-page-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- List -->\n @if (loading()) {\n <div class=\"ax-p-4 ax-space-y-4\">\n @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {\n <div class=\"ax-flex ax-items-center ax-space-x-3\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex-1 ax-space-y-2\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-3/4 ax-h-4 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-3 ax-rounded-md\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n } @else if (filteredNotifications().length === 0) {\n <div\n class=\"ax-rounded-xl ax-py-16 ax-px-6 ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-4 ax-text-center\"\n >\n <div class=\"ax-h-14 ax-w-14 ax-rounded-full ax-flex ax-items-center ax-justify-center ax-text-2xl\">\n @if (searchQuery()) {\n 🔍\n } @else if (activeTab() === 'unread') {\n 🎉\n } @else {\n 🔔\n }\n </div>\n <div class=\"ax-space-y-1\">\n @if (searchQuery()) {\n <div class=\"ax-text-lg ax-font-semibold\">No results</div>\n <div class=\"ax-text-sm\">We couldn’t find anything matching “{{ searchQuery() }}”.</div>\n } @else if (activeTab() === 'unread') {\n <div class=\"ax-text-lg ax-font-semibold\">You’re all caught up</div>\n <div class=\"ax-text-sm\">No unread notifications right now.</div>\n } @else {\n <div class=\"ax-text-lg ax-font-semibold\">No notifications yet</div>\n <div class=\"ax-text-sm\">You’ll see new activity and alerts here.</div>\n }\n </div>\n <div class=\"ax-flex ax-gap-2\">\n @if (searchQuery()) {\n <ax-button look=\"outline\" [text]=\"'Clear search'\" (onClick)=\"onClearSearch()\"></ax-button>\n } @else {\n <!-- <ax-button [text]=\"'Refresh'\" (onClick)=\"onRefresh()\"></ax-button> -->\n }\n </div>\n </div>\n } @else {\n <div>\n @for (item of filteredNotifications(); track item.id) {\n @if (layoutThemeService.isMobileDevice()) {\n <ng-container\n #contextMenuContainer\n [ngTemplateOutlet]=\"mobile\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"desktop\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n }\n }\n </div>\n }\n </div>\n </axp-page-content>\n </axp-page-layout>\n\n <ng-template #mobile let-item>\n <ax-sliding-item class=\"ax-h-24\">\n <!-- <ax-sliding-item-prefix (onClick)=\"clickHandler($event)\" color=\"danger\" text=\"delete\">\n <ax-icon class=\"fa-solid fa-trash\"></ax-icon>\n </ax-sliding-item-prefix> -->\n\n <ax-content class=\"!ax-p-0\">\n <div\n class=\"ax-select-none ax-flex ax-size-full ax-mb-2 ax-gap-3 ax-py-2 ax-px-4 ax-items-center ax-rounded-md ax-cursor-pointer ax-line-clamp-2\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ax-content>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'mark-as-read')\" color=\"primary\">\n <ax-icon class=\"fa-light fa-envelopes-bulk fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'delete')\" color=\"danger\">\n <ax-icon class=\"fa-light fa-trash-can fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n </ax-sliding-item>\n </ng-template>\n\n <ng-template #desktop let-item>\n <div\n class=\"ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer hover:ax-bg-surface ax-mb-2 last:ax-mb-0\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n <!-- @if (isSelected(item.id)) {\n <div class=\"ax-w-1 ax-self-stretch ax-rounded ax-bg-primary\"></div>\n } -->\n <!-- Select via checkbox -->\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ng-template>\n <ax-context-menu\n #contextMenu\n [openOn]=\"'click'\"\n [closeOn]=\"'click'\"\n [orientation]=\"'horizontal'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i4.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i5.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i6.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i6.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i7.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i8.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i9.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"component\", type: AXPUserAvatarComponent, selector: \"axp-user-avatar\", inputs: [\"size\", \"userId\"] }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i10.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXSlidingItemModule }, { kind: \"component\", type: i11.AXSlidingItemComponent, selector: \"ax-sliding-item\" }, { kind: \"component\", type: i11.AXSlidingItemSuffixComponent, selector: \"ax-sliding-item-suffix\", inputs: [\"color\", \"text\"], outputs: [\"onClick\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i12.AXFormatPipe, name: \"format\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXMNotificationPageComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axm-notification-page',\n template: `\n <axp-page-layout>\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (selectedCount() > 0 || isEditing()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">{{ selectedCount() }} items selected</span>\n <span (click)=\"deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\"\n >Unselect</span\n >\n </div>\n } @else {\n <ax-button [text]=\"activeTab() === 'all' ? 'All Notifications' : 'Unread Notifications'\">\n <ax-dropdown-panel >\n <ax-button-item-list class=\"ax-min-w-52\">\n <ax-button-item\n [text]=\"'All notifications'\"\n [selected]=\"activeTab() === 'all'\"\n (onClick)=\"setTab('all')\"\n ></ax-button-item>\n <ax-button-item\n [text]=\"'Unread Notifications'\"\n [selected]=\"activeTab() === 'unread'\"\n (onClick)=\"setTab('unread')\"\n >\n <ax-suffix>\n <ax-badge [text]=\"unreadCount().toString()\" [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-search-box\n look=\"solid\"\n [placeholder]=\"'Search notifications'\"\n [value]=\"searchQuery()\"\n (onValueChanged)=\"onSearch($event.value)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-prefix>\n <!-- <axp-layout-suffix>\n @if (selectedCount() > 0) {\n <div class=\"ax-flex ax-gap-2\">\n @if (activeTab() === 'unread') {\n <ax-button [text]=\"'Mark as read'\" (onClick)=\"markSelectedAsRead()\"></ax-button>\n }\n <ax-button look=\"outline\" color=\"danger\" [text]=\"'Delete'\" (onClick)=\"deleteSelected()\"></ax-button>\n </div>\n }\n </axp-layout-suffix> -->\n </axp-page-toolbar>\n <axp-page-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- List -->\n @if (loading()) {\n <div class=\"ax-p-4 ax-space-y-4\">\n @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {\n <div class=\"ax-flex ax-items-center ax-space-x-3\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex-1 ax-space-y-2\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-3/4 ax-h-4 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-3 ax-rounded-md\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n } @else if (filteredNotifications().length === 0) {\n <div\n class=\"ax-rounded-xl ax-py-16 ax-px-6 ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-4 ax-text-center\"\n >\n <div class=\"ax-h-14 ax-w-14 ax-rounded-full ax-flex ax-items-center ax-justify-center ax-text-2xl\">\n @if (searchQuery()) {\n 🔍\n } @else if (activeTab() === 'unread') {\n 🎉\n } @else {\n 🔔\n }\n </div>\n <div class=\"ax-space-y-1\">\n @if (searchQuery()) {\n <div class=\"ax-text-lg ax-font-semibold\">No results</div>\n <div class=\"ax-text-sm\">We couldn’t find anything matching “{{ searchQuery() }}”.</div>\n } @else if (activeTab() === 'unread') {\n <div class=\"ax-text-lg ax-font-semibold\">You’re all caught up</div>\n <div class=\"ax-text-sm\">No unread notifications right now.</div>\n } @else {\n <div class=\"ax-text-lg ax-font-semibold\">No notifications yet</div>\n <div class=\"ax-text-sm\">You’ll see new activity and alerts here.</div>\n }\n </div>\n <div class=\"ax-flex ax-gap-2\">\n @if (searchQuery()) {\n <ax-button look=\"outline\" [text]=\"'Clear search'\" (onClick)=\"onClearSearch()\"></ax-button>\n } @else {\n <!-- <ax-button [text]=\"'Refresh'\" (onClick)=\"onRefresh()\"></ax-button> -->\n }\n </div>\n </div>\n } @else {\n <div>\n @for (item of filteredNotifications(); track item.id) {\n @if (layoutThemeService.isMobileDevice()) {\n <ng-container\n #contextMenuContainer\n [ngTemplateOutlet]=\"mobile\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"desktop\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n }\n }\n </div>\n }\n </div>\n </axp-page-content>\n </axp-page-layout>\n\n <ng-template #mobile let-item>\n <ax-sliding-item class=\"ax-h-24\">\n <!-- <ax-sliding-item-prefix (onClick)=\"clickHandler($event)\" color=\"danger\" text=\"delete\">\n <ax-icon class=\"fa-solid fa-trash\"></ax-icon>\n </ax-sliding-item-prefix> -->\n\n <ax-content class=\"!ax-p-0\">\n <div\n class=\"ax-select-none ax-flex ax-size-full ax-mb-2 ax-gap-3 ax-py-2 ax-px-4 ax-items-center ax-rounded-md ax-cursor-pointer ax-line-clamp-2\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ax-content>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'mark-as-read')\" color=\"primary\">\n <ax-icon class=\"fa-light fa-envelopes-bulk fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'delete')\" color=\"danger\">\n <ax-icon class=\"fa-light fa-trash-can fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n </ax-sliding-item>\n </ng-template>\n\n <ng-template #desktop let-item>\n <div\n class=\"ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer hover:ax-bg-surface ax-mb-2 last:ax-mb-0\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n <!-- @if (isSelected(item.id)) {\n <div class=\"ax-w-1 ax-self-stretch ax-rounded ax-bg-primary\"></div>\n } -->\n <!-- Select via checkbox -->\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ng-template>\n <ax-context-menu\n #contextMenu\n [openOn]=\"'click'\"\n [closeOn]=\"'click'\"\n [orientation]=\"'horizontal'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMNotificationPageComponent,\n },\n ],\n host: {\n '(document:keydown.escape)': 'deselectAll()',\n },\n imports: [\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXFormatModule,\n AXCheckBoxModule,\n AXSkeletonModule,\n AXButtonModule,\n AXBadgeModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXSearchBoxModule,\n AXPUserAvatarComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXContextMenuComponent,\n AXLabelModule,\n AXSlidingItemModule,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL25vdGlmaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvY29tcG9uZW50cy9ub3RpZmljYXRpb24tcGFnZS9ub3RpZmljYXRpb24tcGFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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SSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUM3QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLElBQTBCO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQzdCLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFD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b2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWFNsaWRpbmdJdGVtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NsaWRpbmctaXRlbSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFVzZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYUFBhZ2VMYXlvdXRCYXNlLCBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCwgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsXG4gIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBBWE1Ob3RpZmljYXRpb25JdGVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IEFYUE5vdGlmaWNhdGlvbkRlZmluaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL25vdGlmaWNhdGlvbi1kZWZpbml0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNTm90aWZpY2F0aW9uQ29ubmVjdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9ub3RpZmljYXRpb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuLy8jcmVnaW9uIC0tLS0gICBDb21wb25lbnQgRGVmaW5pdGlvbiAgIC0tLS1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhtLW5vdGlmaWNhdGlvbi1wYWdlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXhwLXBhZ2UtbGF5b3V0PlxuICAgICAgPGF4cC1wYWdlLXRvb2xiYXI+XG4gICAgICAgIDxheHAtbGF5b3V0LXByZWZpeD5cbiAgICAgICAgICBAaWYgKHNlbGVjdGVkQ291bnQoKSA+IDAgfHwgaXNFZGl0aW5nKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0zIGF4LWl0ZW1zLWNlbnRlciBheC1oLTEwXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj57eyBzZWxlY3RlZENvdW50KCkgfX0gaXRlbXMgc2VsZWN0ZWQ8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJkZXNlbGVjdEFsbCgpXCIgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtc2Vjb25kYXJ5IGF4LXVuZGVybGluZSBheC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgPlVuc2VsZWN0PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCJhY3RpdmVUYWIoKSA9PT0gJ2FsbCcgPyAnQWxsIE5vdGlmaWNhdGlvbnMnIDogJ1VucmVhZCBOb3RpZmljYXRpb25zJ1wiPlxuICAgICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0IGNsYXNzPVwiYXgtbWluLXctNTJcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbVxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCInQWxsIG5vdGlmaWNhdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImFjdGl2ZVRhYigpID09PSAnYWxsJ1wiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNldFRhYignYWxsJylcIlxuICAgICAgICAgICAgICAgICAgPjwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiJ1VucmVhZCBOb3RpZmljYXRpb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJhY3RpdmVUYWIoKSA9PT0gJ3VucmVhZCdcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzZXRUYWIoJ3VucmVhZCcpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwidW5yZWFkQ291bnQoKS50b1N0cmluZygpXCIgW2NvbG9yXT1cIidwcmltYXJ5J1wiPjwvYXgtYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cblxuICAgICAgICAgICAgPGF4LXNlYXJjaC1ib3hcbiAgICAgICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggbm90aWZpY2F0aW9ucydcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwic2VhcmNoUXVlcnkoKVwiXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvblNlYXJjaCgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC13LTcyIGF4LWhpZGRlbiBtZDpheC1mbGV4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvYXgtc2VhcmNoLWJveD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgIDwhLS0gPGF4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgICAgIEBpZiAoc2VsZWN0ZWRDb3VudCgpID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgQGlmIChhY3RpdmVUYWIoKSA9PT0gJ3VucmVhZCcpIHtcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidNYXJrIGFzIHJlYWQnXCIgKG9uQ2xpY2spPVwibWFya1NlbGVjdGVkQXNSZWFkKClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJvdXRsaW5lXCIgY29sb3I9XCJkYW5nZXJcIiBbdGV4dF09XCInRGVsZXRlJ1wiIChvbkNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heHAtbGF5b3V0LXN1ZmZpeD4gLS0+XG4gICAgICA8L2F4cC1wYWdlLXRvb2xiYXI+XG4gICAgICA8YXhwLXBhZ2UtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTRcIj5cbiAgICAgICAgICA8IS0tIExpc3QgLS0+XG4gICAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgIEBmb3IgKF8gb2YgWzEsIDIsIDMsIDQsIDUsIDZdOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtc3BhY2UteC0zXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cImF4LXctMTIgYXgtaC0xMiBheC1yb3VuZGVkLWZ1bGxcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXgtMSBheC1zcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJ0cnVlXCIgY2xhc3M9XCJheC13LTMvNCBheC1oLTQgYXgtcm91bmRlZC1tZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIDxheC1za2VsZXRvbiBbYW5pbWF0ZWRdPVwidHJ1ZVwiIGNsYXNzPVwiYXgtdy0xLzIgYXgtaC0zIGF4LXJvdW5kZWQtbWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2UgaWYgKGZpbHRlcmVkTm90aWZpY2F0aW9ucygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImF4LXJvdW5kZWQteGwgYXgtcHktMTYgYXgtcHgtNiBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1nYXAtNCBheC10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1oLTE0IGF4LXctMTQgYXgtcm91bmRlZC1mdWxsIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXRleHQtMnhsXCI+XG4gICAgICAgICAgICAgICAgQGlmIChzZWFyY2hRdWVyeSgpKSB7XG4gICAgICAgICAgICAgICAgICDwn5SNXG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoYWN0aXZlVGFiKCkgPT09ICd1bnJlYWQnKSB7XG4gICAgICAgICAgICAgICAgICDwn46JXG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICDwn5SUXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNwYWNlLXktMVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoc2VhcmNoUXVlcnkoKSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPk5vIHJlc3VsdHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXNtXCI+V2UgY291bGRu4oCZdCBmaW5kIGFueXRoaW5nIG1hdGNoaW5nIOKAnHt7IHNlYXJjaFF1ZXJ5KCkgfX3igJ0uPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoYWN0aXZlVGFiKCkgPT09ICd1bnJlYWQnKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+WW914oCZcmUgYWxsIGNhdWdodCB1cDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc21cIj5ObyB1bnJlYWQgbm90aWZpY2F0aW9ucyByaWdodCBub3cuPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkXCI+Tm8gbm90aWZpY2F0aW9ucyB5ZXQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXNtXCI+WW914oCZbGwgc2VlIG5ldyBhY3Rpdml0eSBhbmQgYWxlcnRzIGhlcmUuPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHNlYXJjaFF1ZXJ5KCkpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cIm91dGxpbmVcIiBbdGV4dF09XCInQ2xlYXIgc2VhcmNoJ1wiIChvbkNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goKVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPCEtLSA8YXgtYnV0dG9uICBbdGV4dF09XCInUmVmcmVzaCdcIiAob25DbGljayk9XCJvblJlZnJlc2goKVwiPjwvYXgtYnV0dG9uPiAtLT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkTm90aWZpY2F0aW9ucygpOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgQGlmIChsYXlvdXRUaGVtZVNlcnZpY2UuaXNNb2JpbGVEZXZpY2UoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAjY29udGV4dE1lbnVDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNrdG9wXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXhwLXBhZ2UtY29udGVudD5cbiAgICA8L2F4cC1wYWdlLWxheW91dD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbW9iaWxlIGxldC1pdGVtPlxuICAgICAgPGF4LXNsaWRpbmctaXRlbSBjbGFzcz1cImF4LWgtMjRcIj5cbiAgICAgICAgPCEtLSA8YXgtc2xpZGluZy1pdGVtLXByZWZpeCAob25DbGljayk9XCJjbGlja0hhbmRsZXIoJGV2ZW50KVwiIGNvbG9yPVwiZGFuZ2VyXCIgdGV4dD1cImRlbGV0ZVwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2hcIj48L2F4LWljb24+XG4gICAgICAgIDwvYXgtc2xpZGluZy1pdGVtLXByZWZpeD4gLS0+XG5cbiAgICAgICAgPGF4LWNvbnRlbnQgY2xhc3M9XCIhYXgtcC0wXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJheC1zZWxlY3Qtbm9uZSBheC1mbGV4IGF4LXNpemUtZnVsbCBheC1tYi0yIGF4LWdhcC0zIGF4LXB5LTIgYXgtcHgtNCBheC1pdGVtcy1jZW50ZXIgYXgtcm91bmRlZC1tZCBheC1jdXJzb3ItcG9pbnRlciBheC1saW5lLWNsYW1wLTJcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LWJnLWxpZ2h0ZXJdPVwiaXNTZWxlY3RlZChpdGVtLmlkKVwiXG4gICAgICAgICAgICBbaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3Blbkl0ZW0oaXRlbS5pZClcIlxuICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9wZW5Db250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGlzRWRpdGluZygpKSB7XG4gICAgICAgICAgICAgIDxheC1jaGVjay1ib3hcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LW10LTFcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImlzU2VsZWN0ZWQoaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZVNlbGVjdGlvbldpdGhNb2RlbChpdGVtLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxheC1sYWJlbD48L2F4LWxhYmVsPlxuICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gQXZhdGFyICsgVW5yZWFkIERvdCAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1yZWxhdGl2ZSBheC13LTEyIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxheHAtdXNlci1hdmF0YXIgW3NpemVdPVwiNDhcIiBbdXNlcklkXT1cIml0ZW0uc2VuZGVyLmlkXCI+PC9heHAtdXNlci1hdmF0YXI+XG4gICAgICAgICAgICAgIEBpZiAoIWl0ZW0ucmVhZEF0KSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1hYnNvbHV0ZSBheC1yaWdodC0wIGF4LXRvcC0wIGF4LWJsb2NrIGF4LWgtMyBheC13LTMgYXgtcm91bmRlZC1mdWxsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xIGF4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW4gYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mb250LW1lZGl1bVwiIFtjbGFzcy5heC1mb250LXNlbWlib2xkXT1cIiFpdGVtLnJlYWRBdFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnNlbmRlci5mdWxsTmFtZSB8fCBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPuKAojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhzIGF4LW9wYWNpdHktNzVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5jcmVhdGVBdCB8IGZvcm1hdDogJ3RpbWVsZWZ0JyB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXNtIGF4LWxpbmUtY2xhbXAtMlwiPnt7IGl0ZW0uYm9keSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIEFjdGlvbnMgKGZ1dHVyZTogcGVyLWl0ZW0ga2ViYWIpIC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2F4LWNvbnRlbnQ+XG5cbiAgICAgICAgPGF4LXNsaWRpbmctaXRlbS1zdWZmaXggKG9uQ2xpY2spPVwic2xpZGluZ0l0ZW1zSGFuZGxlcihpdGVtLCAnbWFyay1hcy1yZWFkJylcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWVudmVsb3Blcy1idWxrIGZhLXhsXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LXNsaWRpbmctaXRlbS1zdWZmaXg+XG5cbiAgICAgICAgPGF4LXNsaWRpbmctaXRlbS1zdWZmaXggKG9uQ2xpY2spPVwic2xpZGluZ0l0ZW1zSGFuZGxlcihpdGVtLCAnZGVsZXRlJylcIiBjb2xvcj1cImRhbmdlclwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtdHJhc2gtY2FuIGZhLXhsXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LXNsaWRpbmctaXRlbS1zdWZmaXg+XG4gICAgICA8L2F4LXNsaWRpbmctaXRlbT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNkZXNrdG9wIGxldC1pdGVtPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTMgYXgtcC00IGF4LWl0ZW1zLWNlbnRlciBheC1yb3VuZGVkLW1kIGF4LWN1cnNvci1wb2ludGVyIGhvdmVyOmF4LWJnLXN1cmZhY2UgYXgtbWItMiBsYXN0OmF4LW1iLTBcIlxuICAgICAgICBbY2xhc3MuYXgtYmctbGlnaHRlcl09XCJpc1NlbGVjdGVkKGl0ZW0uaWQpXCJcbiAgICAgICAgW2lkXT1cIml0ZW0uaWRcIlxuICAgICAgICAoY2xpY2spPVwib3Blbkl0ZW0oaXRlbS5pZClcIlxuICAgICAgICAoY29udGV4dG1lbnUpPVwib3BlbkNvbnRleHRNZW51KCRldmVudCwgaXRlbSlcIlxuICAgICAgPlxuICAgICAgICA8IS0tIEBpZiAoaXNTZWxlY3RlZChpdGVtLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy0xIGF4LXNlbGYtc3RyZXRjaCBheC1yb3VuZGVkIGF4LWJnLXByaW1hcnlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgIDwhLS0gU2VsZWN0IHZpYSBjaGVja2JveCAtLT5cbiAgICAgICAgQGlmIChpc0VkaXRpbmcoKSkge1xuICAgICAgICAgICAgICA8YXgtY2hlY2stYm94XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1tdC0xXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb25XaXRoTW9kZWwoaXRlbS5pZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YXgtbGFiZWw+PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwhLS0gQXZhdGFyICsgVW5yZWFkIERvdCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJlbGF0aXZlIGF4LXctMTIgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8YXhwLXVzZXItYXZhdGFyIFtzaXplXT1cIjQ4XCIgW3VzZXJJZF09XCJpdGVtLnNlbmRlci5pZFwiPjwvYXhwLXVzZXItYXZhdGFyPlxuICAgICAgICAgIEBpZiAoIWl0ZW0ucmVhZEF0KSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWFic29sdXRlIGF4LXJpZ2h0LTAgYXgtdG9wLTAgYXgtYmxvY2sgYXgtaC0zIGF4LXctMyBheC1yb3VuZGVkLWZ1bGxcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LWZsZXgtMSBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW4gYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1tZWRpdW1cIiBbY2xhc3MuYXgtZm9udC1zZW1pYm9sZF09XCIhaXRlbS5yZWFkQXRcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnNlbmRlci5mdWxsTmFtZSB8fCBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3Bhbj7igKI8L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LXhzIGF4LW9wYWNpdHktNzVcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmNyZWF0ZUF0IHwgZm9ybWF0OiAndGltZWxlZnQnIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1zbSBheC1saW5lLWNsYW1wLTJcIj57eyBpdGVtLmJvZHkgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQWN0aW9ucyAoZnV0dXJlOiBwZXItaXRlbSBrZWJhYikgLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxheC1jb250ZXh0LW1lbnVcbiAgICAgICNjb250ZXh0TWVudVxuICAgICAgW29wZW5Pbl09XCInY2xpY2snXCJcbiAgICAgIFtjbG9zZU9uXT1cIidjbGljaydcIlxuICAgICAgW29yaWVudGF0aW9uXT1cIidob3Jpem9udGFsJ1wiXG4gICAgICAob25PcGVuaW5nKT1cImhhbmRsZUNvbnRleHRNZW51T3BlbmluZygkZXZlbnQpXCJcbiAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9heC1jb250ZXh0LW1lbnU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBQYWdlTGF5b3V0QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWE1Ob3RpZmljYXRpb25QYWdlQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnKGRvY3VtZW50OmtleWRvd24uZXNjYXBlKSc6ICdkZXNlbGVjdEFsbCgpJyxcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEZvcm1hdE1vZHVsZSxcbiAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgIEFYU2tlbGV0b25Nb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhQVXNlckF2YXRhckNvbXBvbmVudCxcbiAgICBBWFBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBBWExhYmVsTW9kdWxlLFxuICAgIEFYU2xpZGluZ0l0ZW1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTU5vdGlmaWNhdGlvblBhZ2VDb21wb25lbnQgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFRoZW1lU2VydmljZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3RvciA9IGluamVjdChBWE1Ob3RpZmljYXRpb25Db25uZWN0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBOb3RpZmljYXRpb25EZWZpbml0aW9uU2VydmljZSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBTdGF0ZSAmIENvbXB1dGVkIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgcmVhZG9ubHkgbG9hZGluZyA9IHRoaXMuY29ubmVjdG9yLmxvYWRpbmc7XG4gIHJlYWRvbmx5IGVycm9yTWVzc2FnZSA9IHRoaXMuY29ubmVjdG9yLmVycm9yTWVzc2FnZTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9ucyA9IHRoaXMuY29ubmVjdG9yLm5vdGlmaWNhdGlvbkxpc3Q7XG4gIHJlYWRvbmx5IHVucmVhZENvdW50ID0gdGhpcy5jb25uZWN0b3IudW5yZWFkQ291bnQ7XG4gIHJlYWRvbmx5IHRvdGFsQ291bnQgPSB0aGlzLmNvbm5lY3Rvci50b3RhbDtcblxuICAvLyBMb2NhbCBVSSBzdGF0ZVxuICByZWFkb25seSBzZWFyY2hRdWVyeSA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBpc0VkaXRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgY29udGV4dE1lbnUgPSB2aWV3Q2hpbGQ8QVhDb250ZXh0TWVudUNvbXBvbmVudD4oJ2NvbnRleHRNZW51Jyk7XG4gIC8vICNpc0VkaXRpbmdFZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAvLyBpZiAodGhpcy5pc0VkaXRpbmcoKSAmJiB0aGlzLnNlbGVjdGVkSWRzKCkuc2l6ZSA9PT0gMCkge1xuICAvLyAgIHRoaXMuaXNFZGl0aW5nLnNldChmYWxzZSk7XG4gIC8vIH1cbiAgLy8gfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWROb3RpZmljYXRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gKHRoaXMuc2VhcmNoUXVlcnkoKSB8fCAnJykudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLm5vdGlmaWNhdGlvbnMoKTtcbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVUYWIoKSA9PT0gJ3VucmVhZCcgPyBpdGVtcy5maWx0ZXIoKG4pID0+ICFuLnJlYWRBdCkgOiBpdGVtcztcbiAgICB9XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuYWN0aXZlVGFiKCkgPT09ICd1bnJlYWQnID8gaXRlbXMuZmlsdGVyKChuKSA9PiAhbi5yZWFkQXQpIDogaXRlbXM7XG4gICAgcmV0dXJuIGJhc2UuZmlsdGVyKChuKSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IChuLnRpdGxlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgYm9keSA9IChuLmJvZHkgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBzZW5kZXIgPSAobi5zZW5kZXI/LmZ1bGxOYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIHRpdGxlLmluY2x1ZGVzKHF1ZXJ5KSB8fCBib2R5LmluY2x1ZGVzKHF1ZXJ5KSB8fCBzZW5kZXIuaW5jbHVkZXMocXVlcnkpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBUYWIgc3RhdGU6ICdhbGwnIHwgJ3VucmVhZCdcbiAgcHJpdmF0ZSByZWFkb25seSB0YWIgPSBzaWduYWw8J2FsbCcgfCAndW5yZWFkJz4oJ2FsbCcpO1xuICByZWFkb25seSBhY3RpdmVUYWIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRhYigpKTtcbiAgc2VsZWN0ZWRUYWIoKTogJ2FsbCcgfCAndW5yZWFkJyB7XG4gICAgcmV0dXJuIHRoaXMudGFiKCk7XG4gIH1cbiAgc2V0VGFiKHY6ICdhbGwnIHwgJ3VucmVhZCcpOiB2b2lkIHtcbiAgICB0aGlzLnRhYi5zZXQodik7XG4gIH1cblxuICBvblRhYkNoYW5nZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50YWIuc2V0KGluZGV4ID09PSAxID8gJ3VucmVhZCcgOiAnYWxsJyk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFBhZ2UgSW50ZXJmYWNlIE1ldGhvZHMgICAtLS0tXG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZVRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuICdOb3RpZmljYXRpb25zJztcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBhZ2VEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVucmVhZCA9IHRoaXMudW5yZWFkQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMudG90YWxDb3VudCgpO1xuICAgIGlmICghdG90YWwpIHtcbiAgICAgIHJldHVybiAnTm8gbm90aWZpY2F0aW9ucyc7XG4gICAgfVxuICAgIHJldHVybiB1bnJlYWQgPiAwID8gYCR7dW5yZWFkfSB1bnJlYWQgb3V0IG9mICR7dG90YWx9YCA6IGAke3RvdGFsfSBub3RpZmljYXRpb25zYDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFByaW1hcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgY29uc3QgaXRlbXM6IEFYUEFjdGlvbk1lbnVJdGVtW10gPSBbXTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50KCkgPiAwKSB7XG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdEZWxldGUnLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdHJhc2gnLFxuICAgICAgICBjb21tYW5kOiB7IG5hbWU6ICdkZWxldGUtc2VsZWN0ZWQnIH0sXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgIH0pO1xuICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnTWFyayBhcyByZWFkJyxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWVudmVsb3Blcy1idWxrJyxcbiAgICAgICAgY29tbWFuZDogeyBuYW1lOiAnbWFyay1zZWxlY3RlZC1hcy1yZWFkJyB9LFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICBjb25zdCBpdGVtczogQVhQQWN0aW9uTWVudUl0ZW1bXSA9IFtdO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ291bnQoKSA9PT0gMCkge1xuICAgICAgaXRlbXMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnUmVmcmVzaCcsXG4gICAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXJvdGF0ZScsXG4gICAgICAgICAgY29tbWFuZDogeyBuYW1lOiAncmVmcmVzaCcgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnTWFyayBhbGwgYXMgcmVhZCcsXG4gICAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWVudmVsb3Blcy1idWxrJyxcbiAgICAgICAgICBjb21tYW5kOiB7IG5hbWU6ICdtYXJrLWFsbC1hcy1yZWFkJyB9LFxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnVucmVhZENvdW50KCkgPT09IDAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ1NlbGVjdCBpdGVtcycsXG4gICAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBlbicsXG4gICAgICAgICAgY29tbWFuZDogeyBuYW1lOiAnZWRpdC1tb2RlJyB9LFxuICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHN3aXRjaCAoY29tbWFuZC5uYW1lKSB7XG4gICAgICBjYXNlICdyZWZyZXNoJzpcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlZnJlc2goKTtcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgICAgICB0aGlzLmlzRWRpdGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlLXNlbGVjdGVkJzpcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVTZWxlY3RlZCgpO1xuICAgICAgICBpZiAodGhpcy5pc0VkaXRpbmcoKSkge1xuICAgICAgICAgIHRoaXMuaXNFZGl0aW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtYXJrLXNlbGVjdGVkLWFzLXJlYWQnOlxuICAgICAgICBhd2FpdCB0aGlzLm1hcmtTZWxlY3RlZEFzUmVhZCgpO1xuICAgICAgICBpZiAodGhpcy5pc0VkaXRpbmcoKSkge1xuICAgICAgICAgIHRoaXMuaXNFZGl0aW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtYXJrLWFsbC1hcy1yZWFkJzpcbiAgICAgICAgYXdhaXQgdGhpcy5vbk1hcmtBbGxBc1JlYWQoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgICAgICB0aGlzLmlzRWRpdGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZWRpdC1tb2RlJzpcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgICAgICB0aGlzLmRlc2VsZWN0QWxsKCk7XG4gICAgICAgICAgdGhpcy5pc0VkaXRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzRWRpdGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBVSSBIYW5kbGVycyAgIC0tLS1cblxuICBvblNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeS5zZXQodmFsdWUpO1xuICB9XG5cbiAgb25DbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5LnNldCgnJyk7XG4gIH1cblxuICBhc3luYyBvblJlZnJlc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0TGlzdCgpO1xuICB9XG5cbiAgYXN5bmMgb25NYXJrQWxsQXNSZWFkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY29ubmVjdG9yLm1hcmtBbGxBc1JlYWQoKTtcbiAgfVxuXG4gIC8vIFNlbGVjdGlvbiBzdGF0ZSBmb3IgYnVsayBhY3Rpb25zXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0ZWRJZHMgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQ8c3RyaW5nPigpKTtcblxuICBzZWxlY3RlZENvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWxlY3RlZElkcygpLnNpemUpO1xuICBpc1NlbGVjdGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZElkcygpLmhhcyhpZCk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3Rpb25XaXRoTW9kZWwoaWQ6IHN0cmluZywgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHRoaXMuc2VsZWN0ZWRJZHMoKSk7XG4gICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgIG5leHQuYWRkKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dC5kZWxldGUoaWQpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNldChuZXh0KTtcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZpbHRlcmVkTm90aWZpY2F0aW9ucygpO1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwICYmIGl0ZW1zLmV2ZXJ5KChpKSA9PiB0aGlzLnNlbGVjdGVkSWRzKCkuaGFzKGkuaWQpKTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIGlmIChjaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNldChuZXcgU2V0KHRoaXMuZmlsdGVyZWROb3RpZmljYXRpb25zKCkubWFwKChpKSA9PiBpLmlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNldChuZXcgU2V0KCkpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG1hcmtTZWxlY3RlZEFzUmVhZChpdGVtPzogQVhNTm90aWZpY2F0aW9uSXRlbSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlkcyA9IGl0ZW0gPyBbaXRlbS5pZF0gOiBBcnJheS5mcm9tKHRoaXMuc2VsZWN0ZWRJZHMoKSk7XG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rvci5tYXJrQXNSZWFkKHsgaWQ6IGlkcyB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNldChuZXcgU2V0KCkpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2VsZWN0ZWQoaXRlbT86IEFYTU5vdGlmaWNhdGlvbkl0ZW0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpZHMgPSBpdGVtID8gW2l0ZW0uaWRdIDogQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkSWRzKCkpO1xuICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdG9yLmRlbGV0ZU9uZShpZCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRJZHMuc2V0KG5ldyBTZXQoKSk7XG4gIH1cblxuICBkZXNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50KCkgPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLnNldChuZXcgU2V0KCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0VkaXRpbmcoKSkge1xuICAgICAgdGhpcy5pc0VkaXRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBSb3cgaW50ZXJhY3Rpb25zXG4gIG9uUm93Q2xpY2soaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uQnlJZChpZCk7XG4gIH1cblxuICBhc3luYyBvcGVuSXRlbShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgIHRoaXMudG9nZ2xlU2VsZWN0aW9uQnlJZChpZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vYXZvaWQgZG91YmxlIGNsaWNrIG9uIHNlbGVjdGVkIGl0ZW1zXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudCgpID4gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gdGhpcy5ub3RpZmljYXRpb25zKCkuZmluZCgobikgPT4gbi5pZCA9PT0gaWQpO1xuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBNYXJrIGFzIHJlYWQgKGlkZW1wb3RlbnQgcGVyIHNlcnZpY2UgbG9naWMpXG4gICAgYXdhaXQgdGhpcy5jb25uZWN0b3IubWFya0FzUmVhZCh7IGlkOiBbaWRdIH0pO1xuXG4gICAgLy8gRXhlY3V0ZSBwcm92aWRlciBjbGljayBhY3Rpb24gaWYgYXZhaWxhYmxlXG4gICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLmRlZmluaXRpb25TZXJ2aWNlLnJlc29sdmUoaXRlbS50eXBlKTtcbiAgICBhd2FpdCBwcm92aWRlcj8uZXhlY3V0ZT8uKHsgbmFtZTogJ2NsaWNrJyB9IGFzIEFYUEV4ZWN1dGVDb21tYW5kLCBpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlU2VsZWN0aW9uQnlJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dCA9IG5ldyBTZXQodGhpcy5zZWxlY3RlZElkcygpKTtcbiAgICBpZiAobmV4dC5oYXMoaWQpKSB7XG4gICAgICBuZXh0LmRlbGV0ZShpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQuYWRkKGlkKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZElkcy5zZXQobmV4dCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICBzbGlkaW5nSXRlbXNIYW5kbGVyKGl0ZW06IEFYTU5vdGlmaWNhdGlvbkl0ZW0sIGFjdGlvbjogJ21hcmstYXMtcmVhZCcgfCAnZGVsZXRlJyk6IHZvaWQge1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdtYXJrLWFzLXJlYWQnOlxuICAgICAgICB0aGlzLm1hcmtTZWxlY3RlZEFzUmVhZChpdGVtKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLmRlbGV0ZVNlbGVjdGVkKGl0ZW0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljayhlOiBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuY29udGV4dEl0ZW0oKTtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChlLml0ZW0ubmFtZSkge1xuICAgICAgY2FzZSAnbWFyay1hcy1yZWFkJzpcbiAgICAgICAgdGhpcy5tYXJrU2VsZWN0ZWRBc1JlYWQoaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5kZWxldGVTZWxlY3RlZChpdGVtKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGhhbmRsZUNvbnRleHRNZW51T3BlbmluZyhlOiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50KSB7XG4gICAgZS5pdGVtcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ21hcmstYXMtcmVhZCcsXG4gICAgICAgIHRleHQ6ICdNYXJrIGFzIHJlYWQnLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZW52ZWxvcGVzLWJ1bGsnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGUuaXRlbXMucHVzaCh7XG4gICAgICBuYW1lOiAnZGVsZXRlJyxcbiAgICAgIHRleHQ6ICdEZWxldGUnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXRyYXNoLWNhbicsXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIGNvbnRleHRJdGVtID0gc2lnbmFsPEFYTU5vdGlmaWNhdGlvbkl0ZW0gfCBudWxsPihudWxsKTtcbiAgb3BlbkNvbnRleHRNZW51KGU6IE1vdXNlRXZlbnQsIGl0ZW06IEFYTU5vdGlmaWNhdGlvbkl0ZW0pIHtcbiAgICBpZiAodGhpcy5pc0VkaXRpbmcoKSB8fCB0aGlzLnNlbGVjdGVkQ291bnQoKSA+IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY29udGV4dE1lbnUoKT8uc2hvd0F0KHtcbiAgICAgIHg6IGUuY2xpZW50WCxcbiAgICAgIHk6IGUuY2xpZW50WSxcbiAgICB9KTtcbiAgICB0aGlzLmNvbnRleHRJdGVtLnNldChpdGVtKTtcbiAgfVxufVxuIl19"],"names":["i1","i2","i7","i12"],"mappings":"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AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,4BAA4B;AACrE,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,2BAA2B,EAAE,eAAe;AACpE,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,iBAAiB;AACzC,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,cAAc;AACtC,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,wBAAwB,sBAAsB;AAC9C,wBAAwB,iBAAiB;AACzC,wBAAwB,sBAAsB;AAC9C,wBAAwB,sBAAsB;AAC9C,wBAAwB,4BAA4B;AACpD,wBAAwB,sBAAsB;AAC9C,wBAAwB,aAAa;AACrC,wBAAwB,mBAAmB;AAC3C,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;"}
@@ -1,33 +1,33 @@
1
1
  import { RootConfig as RootConfig$1 } from '@acorex/modules/text-template-management';
2
2
  import { AXPEntityCommandScope, AXPEntityQueryType, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
3
- import * as i2$3 from '@acorex/platform/layout/builder';
3
+ import * as i2$4 from '@acorex/platform/layout/builder';
4
4
  import { AXPWidgetsCatalog, AXPValueWidgetComponent, cloneProperty, AXPWidgetGroupEnum, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
5
5
  import { AXMEntityCrudServiceImpl, AXPEntityService, AXP_ENTITY_DEFINITION_LOADER, AXPEntityStorageService, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';
6
6
  import * as i0 from '@angular/core';
7
7
  import { Injectable, NgModule, inject, signal, computed, effect, Injector, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component, ChangeDetectorRef } from '@angular/core';
8
8
  import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
9
9
  import { firstValueFrom } from 'rxjs';
10
- import * as i1$1 from '@acorex/platform/layout/components';
10
+ import * as i1 from '@acorex/platform/layout/components';
11
11
  import { AXPUserAvatarComponent, AXPComponentSlotModule, AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';
12
12
  import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
13
13
  import { Router, ROUTES } from '@angular/router';
14
14
  import * as i3 from '@acorex/components/badge';
15
15
  import { AXBadgeModule } from '@acorex/components/badge';
16
- import * as i5 from '@acorex/components/button';
16
+ import * as i6 from '@acorex/components/button';
17
17
  import { AXButtonModule } from '@acorex/components/button';
18
- import * as i2$2 from '@acorex/components/decorators';
18
+ import * as i2$3 from '@acorex/components/decorators';
19
19
  import { AXDecoratorModule } from '@acorex/components/decorators';
20
20
  import * as i4 from '@acorex/components/popover';
21
21
  import { AXPopoverModule, AXPopoverComponent } from '@acorex/components/popover';
22
- import * as i2$1 from '@acorex/components/tabs';
22
+ import * as i2$2 from '@acorex/components/tabs';
23
23
  import { AXTabsModule } from '@acorex/components/tabs';
24
24
  import { AXToastService } from '@acorex/components/toast';
25
- import * as i2 from '@acorex/core/format';
25
+ import * as i2$1 from '@acorex/core/format';
26
26
  import { AXFormatModule } from '@acorex/core/format';
27
27
  import { AXImageModule } from '@acorex/components/image';
28
- import * as i1 from '@angular/common';
28
+ import * as i2 from '@angular/common';
29
29
  import { CommonModule, DatePipe } from '@angular/common';
30
- import * as i5$1 from '@acorex/core/translation';
30
+ import * as i5 from '@acorex/core/translation';
31
31
  import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
32
32
  import { AXP_WIDGETS_UTILITY_CATEGORY } from '@acorex/modules/dashboard-management';
33
33
  import { AXP_APPEARANCE_PROPERTY_GROUP, AXP_STYLING_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';
@@ -353,7 +353,7 @@ async function notificationChannelEntityFactory(injector) {
353
353
  },
354
354
  list: {
355
355
  execute: async (e) => {
356
- return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
356
+ return await dataService.query(e);
357
357
  },
358
358
  type: AXPEntityQueryType.List,
359
359
  },
@@ -949,7 +949,7 @@ async function notificationEntityFactory(injector) {
949
949
  },
950
950
  list: {
951
951
  execute: async (e) => {
952
- return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
952
+ return await dataService.query(e);
953
953
  },
954
954
  type: AXPEntityQueryType.List,
955
955
  },
@@ -1180,7 +1180,7 @@ async function notificationTemplateEntityFactory(injector) {
1180
1180
  },
1181
1181
  list: {
1182
1182
  execute: async (e) => {
1183
- return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
1183
+ return await dataService.query(e);
1184
1184
  },
1185
1185
  type: AXPEntityQueryType.List,
1186
1186
  },
@@ -1666,7 +1666,7 @@ class AXMNotificationConnectorService {
1666
1666
  */
1667
1667
  async deleteOne(id) {
1668
1668
  try {
1669
- this.isLoading.set(true);
1669
+ // this.isLoading.set(true);
1670
1670
  this.error.set(null);
1671
1671
  await this.notificationService.deleteOne(id);
1672
1672
  // Update local state to remove deleted notification
@@ -1679,7 +1679,7 @@ class AXMNotificationConnectorService {
1679
1679
  throw err;
1680
1680
  }
1681
1681
  finally {
1682
- this.isLoading.set(false);
1682
+ // this.isLoading.set(false);
1683
1683
  }
1684
1684
  }
1685
1685
  /**
@@ -1914,7 +1914,7 @@ class AXMAdminNotificationItemComponent {
1914
1914
  }
1915
1915
  #af;
1916
1916
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1917
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], 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 <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:start;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1917
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], 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 <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-align:start;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1918
1918
  }
1919
1919
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, decorators: [{
1920
1920
  type: Component,
@@ -2073,7 +2073,7 @@ class AXMAdminNotificationPanelComponent {
2073
2073
  this.router.navigate([`${this.sessionService.application?.name}/notifications`]);
2074
2074
  }
2075
2075
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2076
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, 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 && tab.text === 'Unread') {\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] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\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 }\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]=\"'default'\"\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: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$1.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, 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: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2076
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, 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 && tab.text === 'Unread') {\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] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\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 }\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]=\"'default'\"\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: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, 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: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2077
2077
  }
2078
2078
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
2079
2079
  type: Component,
@@ -2097,7 +2097,7 @@ class AXMAdminNotificationSlotComponent {
2097
2097
  this.totalNewNotification.set(value);
2098
2098
  }
2099
2099
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #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-lightest 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: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, 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: ["width", "disabled", "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", inputs: ["providedTabs"], outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #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-lightest 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: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, 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: ["width", "disabled", "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", inputs: ["providedTabs"], outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2101
2101
  }
2102
2102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
2103
2103
  type: Component,
@@ -2322,7 +2322,7 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2322
2322
  popover: () => ({ close: () => { } }),
2323
2323
  },
2324
2324
  },
2325
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2325
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2326
2326
  }
2327
2327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
2328
2328
  type: Component,
@@ -2501,7 +2501,7 @@ function routesFactory() {
2501
2501
  children: [
2502
2502
  {
2503
2503
  path: '',
2504
- loadComponent: () => import('./acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs').then((c) => c.AXMNotificationPageComponent),
2504
+ loadComponent: () => import('./acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs').then((c) => c.AXMNotificationPageComponent),
2505
2505
  data: { reuse: true },
2506
2506
  },
2507
2507
  ],
@@ -2511,7 +2511,7 @@ function routesFactory() {
2511
2511
  }
2512
2512
  class AXMNotificationManagementModule {
2513
2513
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2514
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1$1.AXPComponentSlotModule, i2$3.AXPLayoutBuilderModule] }); }
2514
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1.AXPComponentSlotModule, i2$4.AXPLayoutBuilderModule] }); }
2515
2515
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, providers: [
2516
2516
  {
2517
2517
  provide: ROUTES,
@@ -3149,7 +3149,7 @@ async function notificationLogEntityFactory(injector) {
3149
3149
  },
3150
3150
  list: {
3151
3151
  execute: async (e) => {
3152
- return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
3152
+ return await dataService.query(e);
3153
3153
  },
3154
3154
  type: AXPEntityQueryType.List,
3155
3155
  },