@acorex/modules 20.2.3 → 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 (244) hide show
  1. package/auth/index.d.ts +1 -0
  2. package/common/index.d.ts +30 -19
  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 +47 -29
  8. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BBGqLgJC.mjs → acorex-modules-auth-acorex-modules-auth-C3KbvhSU.mjs} +18 -14
  9. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BBGqLgJC.mjs.map → acorex-modules-auth-acorex-modules-auth-C3KbvhSU.mjs.map} +1 -1
  10. package/fesm2022/{acorex-modules-auth-app-chooser.component-B7Nv62Jj.mjs → acorex-modules-auth-app-chooser.component-1rAktuKq.mjs} +2 -2
  11. package/fesm2022/{acorex-modules-auth-app-chooser.component-B7Nv62Jj.mjs.map → acorex-modules-auth-app-chooser.component-1rAktuKq.mjs.map} +1 -1
  12. package/fesm2022/{acorex-modules-auth-login.module-DmEDBKqL.mjs → acorex-modules-auth-login.module-Bq2itSg_.mjs} +4 -4
  13. package/fesm2022/{acorex-modules-auth-login.module-DmEDBKqL.mjs.map → acorex-modules-auth-login.module-Bq2itSg_.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-master.layout-B8L2FPDN.mjs → acorex-modules-auth-master.layout-DONbu77t.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-auth-master.layout-B8L2FPDN.mjs.map → acorex-modules-auth-master.layout-DONbu77t.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BRJu8jom.mjs → acorex-modules-auth-oauth-callback.component-BgzmfTlY.mjs} +2 -2
  17. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BRJu8jom.mjs.map → acorex-modules-auth-oauth-callback.component-BgzmfTlY.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-auth-password.component-Bh0uhx6-.mjs → acorex-modules-auth-password.component-B9LqFrEG.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-auth-password.component-Bh0uhx6-.mjs.map → acorex-modules-auth-password.component-B9LqFrEG.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-password.component-FNLwhWMe.mjs → acorex-modules-auth-password.component-BuGTsfLH.mjs} +3 -3
  21. package/fesm2022/acorex-modules-auth-password.component-BuGTsfLH.mjs.map +1 -0
  22. package/fesm2022/{acorex-modules-auth-routes-xqc264U-.mjs → acorex-modules-auth-routes-833kPM6o.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-auth-routes-xqc264U-.mjs.map → acorex-modules-auth-routes-833kPM6o.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-auth-two-factor.module-C8jrenEW.mjs → acorex-modules-auth-two-factor.module-BS1Pcbxp.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-auth-two-factor.module-C8jrenEW.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 +1037 -328
  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 +59 -447
  48. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  49. package/fesm2022/acorex-modules-conversation.mjs +199 -24
  50. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  51. package/fesm2022/acorex-modules-dashboard-management.mjs +35 -331
  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-BvIGh15O.mjs → acorex-modules-document-management-acorex-modules-document-management-BCTTw-hI.mjs} +871 -266
  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-ClgS3Q8D.mjs → acorex-modules-document-management-attachment-widget.component-C80j1Gn7.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-ClgS3Q8D.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-BWMANjYL.mjs → acorex-modules-document-management-create-folder-dialog.component-BFnvHSjH.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BWMANjYL.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-BmJB8bb8.mjs → acorex-modules-document-management-details-view.component-7OR6bXr-.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-document-management-details-view.component-BmJB8bb8.mjs.map → acorex-modules-document-management-details-view.component-7OR6bXr-.mjs.map} +1 -1
  63. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs +116 -0
  64. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs → acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs} +42 -2
  66. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs.map +1 -0
  67. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DoUkm43Y.mjs → acorex-modules-document-management-drive-choose.component-B66hegSh.mjs} +2 -2
  68. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DoUkm43Y.mjs.map → acorex-modules-document-management-drive-choose.component-B66hegSh.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-document-management-drive.component-R1V4W9u3.mjs → acorex-modules-document-management-drive.component-DZhd1DUn.mjs} +2 -2
  70. package/fesm2022/{acorex-modules-document-management-drive.component-R1V4W9u3.mjs.map → acorex-modules-document-management-drive.component-DZhd1DUn.mjs.map} +1 -1
  71. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C-9UNa_X.mjs → acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs} +2 -2
  72. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C-9UNa_X.mjs.map → acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs.map} +1 -1
  73. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DL3PEFfv.mjs → acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs} +2 -2
  74. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DL3PEFfv.mjs.map → acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs.map} +1 -1
  75. package/fesm2022/{acorex-modules-document-management-list-view.component-BGUDmglV.mjs → acorex-modules-document-management-list-view.component-oDeeGScM.mjs} +2 -2
  76. package/fesm2022/{acorex-modules-document-management-list-view.component-BGUDmglV.mjs.map → acorex-modules-document-management-list-view.component-oDeeGScM.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs → acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs} +7 -7
  78. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs.map +1 -0
  79. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Cbwf5Ved.mjs → acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs} +2 -2
  80. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Cbwf5Ved.mjs.map → acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DXiQj-Hb.mjs → acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DXiQj-Hb.mjs.map → acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-C8RZC3TM.mjs → acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-C8RZC3TM.mjs.map → acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B70rSvao.mjs → acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-B70rSvao.mjs.map → acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs.map} +1 -1
  87. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  88. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs} +36 -86
  89. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-COVNekIY.mjs.map +1 -0
  90. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs} +2 -2
  91. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map → acorex-modules-form-template-management-permission-definition.provider-BEkbbQH2.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs} +2 -2
  93. package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map → acorex-modules-form-template-management-settings.provider-DSI7cmrW.mjs.map} +1 -1
  94. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs → acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs} +6 -5
  95. package/fesm2022/acorex-modules-form-template-management-template-picker.component-5n_kQMuQ.mjs.map +1 -0
  96. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs} +2 -2
  97. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BtCYeGB-.mjs.map} +1 -1
  98. package/fesm2022/{acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs → acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs} +23 -97
  99. package/fesm2022/acorex-modules-form-template-management-template.entity-Cm-AVAF_.mjs.map +1 -0
  100. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs} +2 -2
  101. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map → acorex-modules-form-template-management-viewer-popup.component-C8TC42DL.mjs.map} +1 -1
  102. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  103. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-8iEAzfh5.mjs → acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs} +5 -11
  104. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs.map +1 -0
  105. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BiJX9lxr.mjs → acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs} +2 -2
  106. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-BiJX9lxr.mjs.map → acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs.map} +1 -1
  107. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  108. package/fesm2022/acorex-modules-identifier-management.mjs +81 -39
  109. package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -1
  110. package/fesm2022/acorex-modules-location-management.mjs +20 -32
  111. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  112. package/fesm2022/acorex-modules-log-management.mjs +1 -2
  113. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  114. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs +121 -0
  115. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs.map +1 -0
  116. package/fesm2022/acorex-modules-meeting-management.mjs +2897 -0
  117. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -0
  118. package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs +855 -0
  119. package/fesm2022/acorex-modules-notification-management-notification-page.component-BUslAF8w.mjs.map +1 -0
  120. package/fesm2022/acorex-modules-notification-management.mjs +151 -132
  121. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  122. package/fesm2022/{acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs → acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs} +14 -42
  123. package/fesm2022/acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs.map +1 -0
  124. package/fesm2022/{acorex-modules-organization-management-chart.entity-UAn44WCP.mjs → acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs} +14 -42
  125. package/fesm2022/acorex-modules-organization-management-chart.entity-8J9I9lgq.mjs.map +1 -0
  126. package/fesm2022/{acorex-modules-organization-management-company.entity-D1A1HSkC.mjs → acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs} +14 -42
  127. package/fesm2022/acorex-modules-organization-management-company.entity-BBNM-Ihr.mjs.map +1 -0
  128. package/fesm2022/{acorex-modules-organization-management-department.entity-BxCyXNtv.mjs → acorex-modules-organization-management-department.entity-BbBrK4BN.mjs} +14 -42
  129. package/fesm2022/acorex-modules-organization-management-department.entity-BbBrK4BN.mjs.map +1 -0
  130. package/fesm2022/{acorex-modules-organization-management-division.entity-DzQT2jpz.mjs → acorex-modules-organization-management-division.entity-DdX7LcCU.mjs} +14 -42
  131. package/fesm2022/acorex-modules-organization-management-division.entity-DdX7LcCU.mjs.map +1 -0
  132. package/fesm2022/{acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs → acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs} +166 -99
  133. package/fesm2022/acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs.map +1 -0
  134. package/fesm2022/{acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs → acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs} +14 -42
  135. package/fesm2022/acorex-modules-organization-management-employment-type.entity-Dw3TLMtD.mjs.map +1 -0
  136. package/fesm2022/{acorex-modules-organization-management-role.entity-CruQeObl.mjs → acorex-modules-organization-management-position.entity-DT7EyvrR.mjs} +96 -79
  137. package/fesm2022/acorex-modules-organization-management-position.entity-DT7EyvrR.mjs.map +1 -0
  138. package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs → acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs} +19 -91
  139. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DpUTLjdp.mjs.map +1 -0
  140. package/fesm2022/{acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs → acorex-modules-organization-management-role.entity-BdjgFsgo.mjs} +68 -51
  141. package/fesm2022/acorex-modules-organization-management-role.entity-BdjgFsgo.mjs.map +1 -0
  142. package/fesm2022/{acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs → acorex-modules-organization-management-skill.entity-O1453j6I.mjs} +14 -105
  143. package/fesm2022/acorex-modules-organization-management-skill.entity-O1453j6I.mjs.map +1 -0
  144. package/fesm2022/{acorex-modules-organization-management-team.entity-DMCfAZsr.mjs → acorex-modules-organization-management-team.entity-DkRLWl0u.mjs} +13 -32
  145. package/fesm2022/acorex-modules-organization-management-team.entity-DkRLWl0u.mjs.map +1 -0
  146. package/fesm2022/acorex-modules-organization-management.mjs +34 -254
  147. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  148. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs → acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs} +11 -21
  149. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs.map +1 -0
  150. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs → acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs} +20 -19
  151. package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs.map +1 -0
  152. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs → acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs} +16 -17
  153. package/fesm2022/acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs.map +1 -0
  154. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs → acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs} +9 -14
  155. package/fesm2022/acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs.map +1 -0
  156. package/fesm2022/{acorex-modules-party-management-party-role.entity-C5BeakjX.mjs → acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs} +14 -17
  157. package/fesm2022/acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs.map +1 -0
  158. package/fesm2022/{acorex-modules-party-management-party.entity-Blwg8o3o.mjs → acorex-modules-party-management-party.entity-BwAAZRJc.mjs} +45 -45
  159. package/fesm2022/acorex-modules-party-management-party.entity-BwAAZRJc.mjs.map +1 -0
  160. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  161. package/fesm2022/acorex-modules-platform-management.mjs +3 -3
  162. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  163. package/fesm2022/acorex-modules-project-management.mjs +157 -144
  164. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  165. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs → acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs} +2 -2
  166. package/fesm2022/acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs.map +1 -0
  167. package/fesm2022/acorex-modules-report-management.mjs +57 -58
  168. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  169. package/fesm2022/acorex-modules-scheduler-job-management.mjs +6 -7
  170. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  171. package/fesm2022/acorex-modules-security-management.mjs +12 -10
  172. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  173. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs → acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs} +11 -1
  174. package/fesm2022/acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs.map +1 -0
  175. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  176. package/fesm2022/{acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs → acorex-modules-task-management-task-board.page-BBbHu2jz.mjs} +314 -69
  177. package/fesm2022/acorex-modules-task-management-task-board.page-BBbHu2jz.mjs.map +1 -0
  178. package/fesm2022/acorex-modules-task-management.mjs +3471 -2888
  179. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  180. package/fesm2022/acorex-modules-text-template-management.mjs +4 -6
  181. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  182. package/fesm2022/acorex-modules-training-management.mjs +35 -35
  183. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  184. package/fesm2022/acorex-modules-workflow-management.mjs +39 -1
  185. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  186. package/form-template-management/index.d.ts +8 -31
  187. package/identifier-management/index.d.ts +15 -16
  188. package/meeting-management/README.md +29 -0
  189. package/meeting-management/index.d.ts +248 -0
  190. package/notification-management/index.d.ts +6 -4
  191. package/organization-management/index.d.ts +3 -111
  192. package/package.json +5 -1
  193. package/task-management/README.md +1 -1
  194. package/task-management/index.d.ts +109 -3
  195. package/workflow-management/index.d.ts +4 -33
  196. package/fesm2022/acorex-modules-auth-password.component-FNLwhWMe.mjs.map +0 -1
  197. package/fesm2022/acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs +0 -135
  198. package/fesm2022/acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs.map +0 -1
  199. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs +0 -863
  200. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs.map +0 -1
  201. package/fesm2022/acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs.map +0 -1
  202. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs +0 -680
  203. package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs.map +0 -1
  204. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs.map +0 -1
  205. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BvIGh15O.mjs.map +0 -1
  206. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs.map +0 -1
  207. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +0 -1
  208. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map +0 -1
  209. package/fesm2022/acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs +0 -245
  210. package/fesm2022/acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map +0 -1
  211. package/fesm2022/acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map +0 -1
  212. package/fesm2022/acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map +0 -1
  213. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-8iEAzfh5.mjs.map +0 -1
  214. package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +0 -1
  215. package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +0 -1
  216. package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +0 -1
  217. package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +0 -1
  218. package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +0 -1
  219. package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +0 -1
  220. package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs +0 -305
  222. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +0 -526
  224. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs +0 -338
  227. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs +0 -305
  231. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +0 -1
  237. package/fesm2022/acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map +0 -1
  241. package/fesm2022/acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs +0 -244
  243. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map +0 -1
@@ -1,135 +0,0 @@
1
- import { AXButtonModule } from '@acorex/components/button';
2
- import { AXDataSource } from '@acorex/cdk/common';
3
- import * as i1 from '@acorex/components/decorators';
4
- import { AXDecoratorModule } from '@acorex/components/decorators';
5
- import { AXDropdownModule } from '@acorex/components/dropdown';
6
- import { AXPopoverModule } from '@acorex/components/popover';
7
- import { AXPopupService } from '@acorex/components/popup';
8
- import * as i3 from '@acorex/components/select-box';
9
- import { AXSelectBoxModule } from '@acorex/components/select-box';
10
- import { AXPlatform } from '@acorex/core/platform';
11
- import { AXTranslationService } from '@acorex/core/translation';
12
- import { AXPSessionService } from '@acorex/platform/auth';
13
- import { AXPSettingService } from '@acorex/platform/common';
14
- import { AXPPlatformScope } from '@acorex/platform/core';
15
- import * as i1$1 from '@angular/common';
16
- import { CommonModule } from '@angular/common';
17
- import * as i0 from '@angular/core';
18
- import { signal, inject, ChangeDetectorRef, computed, ChangeDetectionStrategy, Component } from '@angular/core';
19
- import * as i2 from '@angular/forms';
20
- import { FormsModule } from '@angular/forms';
21
- import { d as AXMUserDeviceSessionsService } from './acorex-modules-auth-acorex-modules-auth-BBGqLgJC.mjs';
22
-
23
- class AXMUserSessionsComponent {
24
- constructor() {
25
- this.AXPTokenExpirationDurations = {
26
- oneWeek: 'oneWeek',
27
- oneMonth: 'oneMonth',
28
- threeMonths: 'threeMonths',
29
- sixMonths: 'sixMonths',
30
- };
31
- this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
32
- this.activeSession = signal(undefined, ...(ngDevMode ? [{ debugName: "activeSession" }] : []));
33
- this.expireTime = signal(null, ...(ngDevMode ? [{ debugName: "expireTime" }] : []));
34
- this.expirationItems = [
35
- { name: 'Terminate in 1 week', id: this.AXPTokenExpirationDurations.oneWeek },
36
- { name: 'Terminate in 1 month', id: this.AXPTokenExpirationDurations.oneMonth },
37
- { name: 'Terminate in 3 month', id: this.AXPTokenExpirationDurations.threeMonths },
38
- { name: 'Terminate in 6 month', id: this.AXPTokenExpirationDurations.sixMonths },
39
- ];
40
- this.dataSource = new AXDataSource({
41
- pageSize: 10,
42
- key: 'id',
43
- load: async (e) => {
44
- let items = this.expirationItems;
45
- return {
46
- items,
47
- total: items.length,
48
- };
49
- },
50
- });
51
- this.userDeviceSessionsService = inject(AXMUserDeviceSessionsService);
52
- this.cdRef = inject(ChangeDetectorRef);
53
- this.popupService = inject(AXPopupService);
54
- this.platform = inject(AXPlatform);
55
- this.translateService = inject(AXTranslationService);
56
- this.sessionService = inject(AXPSessionService);
57
- this.settingService = inject(AXPSettingService);
58
- // ✅ Use a computed signal to update dynamically when items change
59
- this.itemsWithIcons = computed(() => this.items().map((item) => ({
60
- ...item,
61
- icon: this.getDeviceIcon(item.deviceName),
62
- })), ...(ngDevMode ? [{ debugName: "itemsWithIcons" }] : []));
63
- this.loadUserSessions();
64
- }
65
- async loadUserSessions() {
66
- try {
67
- let sessions = await this.userDeviceSessionsService.getSessions();
68
- this.items.set(sessions);
69
- const activeSession = await this.userDeviceSessionsService.getCurrentActiveSessions();
70
- this.activeSession.set(activeSession);
71
- const sessionTimeout = await this.settingService.scope(AXPPlatformScope.User).get('session-timeout');
72
- if (sessionTimeout && sessionTimeout.id in this.AXPTokenExpirationDurations) {
73
- let selectedItem = this.expirationItems.find((item) => item.id === sessionTimeout.id);
74
- if (selectedItem) {
75
- this.expireTime.set({ name: selectedItem.name, id: selectedItem.id });
76
- }
77
- }
78
- }
79
- catch (error) {
80
- console.error('Error loading user sessions', error);
81
- }
82
- }
83
- getDeviceIcon(deviceName) {
84
- if (!deviceName)
85
- return 'fa-solid fa-question'; // Default icon if no name is provided
86
- const lowerCaseName = deviceName.toLowerCase();
87
- if (lowerCaseName.includes('windows'))
88
- return 'fa-brands fa-microsoft';
89
- if (lowerCaseName.includes('mac'))
90
- return 'fa-brands fa-microsoft';
91
- if (lowerCaseName.includes('linux'))
92
- return 'fa-brands fa-microsoft';
93
- if (lowerCaseName.includes('android'))
94
- return 'fa-brands fa-android';
95
- if (lowerCaseName.includes('ios'))
96
- return 'fa-brands fa-apple';
97
- if (lowerCaseName.includes('ipad'))
98
- return 'fa-brands fa-apple';
99
- if (lowerCaseName.includes('iphone'))
100
- return 'fa-brands fa-apple';
101
- return 'fa-solid fa-question'; // Default icon if no match
102
- }
103
- onChangeSessionExpireTime(e) {
104
- this.userDeviceSessionsService.setTokenLifetimeMinutes(e.component.selectedItems[0]);
105
- }
106
- async onTerminate(sessionId) {
107
- if (!sessionId) {
108
- console.error('No item to terminate');
109
- return;
110
- }
111
- await this.userDeviceSessionsService.terminateSession(sessionId);
112
- await this.loadUserSessions();
113
- }
114
- async onTerminateAll() {
115
- await this.userDeviceSessionsService.terminateAllSession();
116
- await this.loadUserSessions();
117
- }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMUserSessionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMUserSessionsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"ax-mx-auto ax-p-6 ax-w-full\">\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\">This Device</p>\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\">\n <i class=\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\"></i>\n </div>\n @if (activeSession()) {\n <div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ activeSession()?.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ activeSession()?.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ activeSession()?.location }} <span>{{ activeSession()?.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\n </p>\n </div>\n </div>\n }\n </div>\n\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\">\n <i class=\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\" (click)=\"onTerminateAll()\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">Terminate All Other Sessions</div>\n <p class=\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\">Log out all devices exept for this one.</p>\n </div>\n </div>\n }\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div>\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\">Active Devices</p>\n @for (item of itemsWithIcons(); track item) {\n <div>\n <div\n class=\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <i\n class=\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\"\n (click)=\"onTerminate(item.id)\"\n ></i>\n <div class=\"ax-border ax-rounded-lg\">\n <i class=\"{{ item.icon }} ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ item.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ item.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ item.location }} <span>{{ item.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\n </p>\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n<ax-footer>\n <div class=\"ax-flex-col ax-w-full\">\n <div>\n <p class=\"ax-text-danger-500 ax-font-medium ax-text-base\">Terminate Old Sessions</p>\n </div>\n <div>\n <ax-suffix>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-mt-4\">\n <div class=\"ax-font-normal ax-text-base ax-text-on-lightest\">If inactive for...</div>\n <div class=\"ax-w-3/6\">\n <ax-select-box\n [ngModel]=\"expireTime()\"\n (onValueChanged)=\"onChangeSessionExpireTime($event)\"\n [dataSource]=\"dataSource\"\n textField=\"name\"\n valueField=\"id\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </ax-suffix>\n </div>\n </div>\n</ax-footer>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { 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: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
120
- }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMUserSessionsComponent, decorators: [{
122
- type: Component,
123
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [
124
- AXButtonModule,
125
- AXDecoratorModule,
126
- CommonModule,
127
- FormsModule,
128
- AXSelectBoxModule,
129
- AXDropdownModule,
130
- AXPopoverModule,
131
- ], template: "<div class=\"ax-mx-auto ax-p-6 ax-w-full\">\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\">This Device</p>\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\">\n <i class=\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\"></i>\n </div>\n @if (activeSession()) {\n <div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ activeSession()?.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ activeSession()?.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ activeSession()?.location }} <span>{{ activeSession()?.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\n </p>\n </div>\n </div>\n }\n </div>\n\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div\n class=\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <div class=\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\">\n <i class=\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\" (click)=\"onTerminateAll()\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">Terminate All Other Sessions</div>\n <p class=\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\">Log out all devices exept for this one.</p>\n </div>\n </div>\n }\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\n <div>\n <p class=\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\">Active Devices</p>\n @for (item of itemsWithIcons(); track item) {\n <div>\n <div\n class=\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\"\n >\n <i\n class=\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\"\n (click)=\"onTerminate(item.id)\"\n ></i>\n <div class=\"ax-border ax-rounded-lg\">\n <i class=\"{{ item.icon }} ax-m-3\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-ml-2\">\n <div class=\"ax-font-medium ax-text-base ax-text-on-lightest\">{{ item.deviceName }}</div>\n <div class=\"ax-font-normal ax-text-sm ax-text-on-lightest\">{{ item.operatingSystem }}</div>\n <p class=\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\">\n {{ item.location }} <span>{{ item.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\n </p>\n </div>\n </div>\n </div>\n }\n </div>\n }\n</div>\n<ax-footer>\n <div class=\"ax-flex-col ax-w-full\">\n <div>\n <p class=\"ax-text-danger-500 ax-font-medium ax-text-base\">Terminate Old Sessions</p>\n </div>\n <div>\n <ax-suffix>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-mt-4\">\n <div class=\"ax-font-normal ax-text-base ax-text-on-lightest\">If inactive for...</div>\n <div class=\"ax-w-3/6\">\n <ax-select-box\n [ngModel]=\"expireTime()\"\n (onValueChanged)=\"onChangeSessionExpireTime($event)\"\n [dataSource]=\"dataSource\"\n textField=\"name\"\n valueField=\"id\"\n placeholder=\"Choose...\"\n >\n </ax-select-box>\n </div>\n </div>\n </ax-suffix>\n </div>\n </div>\n</ax-footer>\n" }]
132
- }], ctorParameters: () => [] });
133
-
134
- export { AXMUserSessionsComponent };
135
- //# sourceMappingURL=acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-auth-user-sessions.component-Cu1SCNnF.mjs","sources":["../tmp-esm2022/auth/lib/pages/account/user-sessions/user-sessions.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMUserDeviceSessionsService } from './user-sessions.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/select-box\";\nimport * as i4 from \"@angular/common\";\nexport class AXMUserSessionsComponent {\n constructor() {\n this.AXPTokenExpirationDurations = {\n oneWeek: 'oneWeek',\n oneMonth: 'oneMonth',\n threeMonths: 'threeMonths',\n sixMonths: 'sixMonths',\n };\n this.items = signal([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.activeSession = signal(undefined, ...(ngDevMode ? [{ debugName: \"activeSession\" }] : []));\n this.expireTime = signal(null, ...(ngDevMode ? [{ debugName: \"expireTime\" }] : []));\n this.expirationItems = [\n { name: 'Terminate in 1 week', id: this.AXPTokenExpirationDurations.oneWeek },\n { name: 'Terminate in 1 month', id: this.AXPTokenExpirationDurations.oneMonth },\n { name: 'Terminate in 3 month', id: this.AXPTokenExpirationDurations.threeMonths },\n { name: 'Terminate in 6 month', id: this.AXPTokenExpirationDurations.sixMonths },\n ];\n this.dataSource = new AXDataSource({\n pageSize: 10,\n key: 'id',\n load: async (e) => {\n let items = this.expirationItems;\n return {\n items,\n total: items.length,\n };\n },\n });\n this.userDeviceSessionsService = inject(AXMUserDeviceSessionsService);\n this.cdRef = inject(ChangeDetectorRef);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.sessionService = inject(AXPSessionService);\n this.settingService = inject(AXPSettingService);\n // ✅ Use a computed signal to update dynamically when items change\n this.itemsWithIcons = computed(() => this.items().map((item) => ({\n ...item,\n icon: this.getDeviceIcon(item.deviceName),\n })), ...(ngDevMode ? [{ debugName: \"itemsWithIcons\" }] : []));\n this.loadUserSessions();\n }\n async loadUserSessions() {\n try {\n let sessions = await this.userDeviceSessionsService.getSessions();\n this.items.set(sessions);\n const activeSession = await this.userDeviceSessionsService.getCurrentActiveSessions();\n this.activeSession.set(activeSession);\n const sessionTimeout = await this.settingService.scope(AXPPlatformScope.User).get('session-timeout');\n if (sessionTimeout && sessionTimeout.id in this.AXPTokenExpirationDurations) {\n let selectedItem = this.expirationItems.find((item) => item.id === sessionTimeout.id);\n if (selectedItem) {\n this.expireTime.set({ name: selectedItem.name, id: selectedItem.id });\n }\n }\n }\n catch (error) {\n console.error('Error loading user sessions', error);\n }\n }\n getDeviceIcon(deviceName) {\n if (!deviceName)\n return 'fa-solid fa-question'; // Default icon if no name is provided\n const lowerCaseName = deviceName.toLowerCase();\n if (lowerCaseName.includes('windows'))\n return 'fa-brands fa-microsoft';\n if (lowerCaseName.includes('mac'))\n return 'fa-brands fa-microsoft';\n if (lowerCaseName.includes('linux'))\n return 'fa-brands fa-microsoft';\n if (lowerCaseName.includes('android'))\n return 'fa-brands fa-android';\n if (lowerCaseName.includes('ios'))\n return 'fa-brands fa-apple';\n if (lowerCaseName.includes('ipad'))\n return 'fa-brands fa-apple';\n if (lowerCaseName.includes('iphone'))\n return 'fa-brands fa-apple';\n return 'fa-solid fa-question'; // Default icon if no match\n }\n onChangeSessionExpireTime(e) {\n this.userDeviceSessionsService.setTokenLifetimeMinutes(e.component.selectedItems[0]);\n }\n async onTerminate(sessionId) {\n if (!sessionId) {\n console.error('No item to terminate');\n return;\n }\n await this.userDeviceSessionsService.terminateSession(sessionId);\n await this.loadUserSessions();\n }\n async onTerminateAll() {\n await this.userDeviceSessionsService.terminateAllSession();\n await this.loadUserSessions();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXMUserSessionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXMUserSessionsComponent, isStandalone: true, selector: \"ng-component\", ngImport: i0, template: \"<div class=\\\"ax-mx-auto ax-p-6 ax-w-full\\\">\\n <p class=\\\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\\\">This Device</p>\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <div class=\\\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\\\">\\n <i class=\\\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\\\"></i>\\n </div>\\n @if (activeSession()) {\\n <div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">{{ activeSession()?.deviceName }}</div>\\n <div class=\\\"ax-font-normal ax-text-sm ax-text-on-lightest\\\">{{ activeSession()?.operatingSystem }}</div>\\n <p class=\\\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\\\">\\n {{ activeSession()?.location }} <span>{{ activeSession()?.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\\n </p>\\n </div>\\n </div>\\n }\\n </div>\\n\\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <div class=\\\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\\\">\\n <i class=\\\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\\\"></i>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\\\" (click)=\\\"onTerminateAll()\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">Terminate All Other Sessions</div>\\n <p class=\\\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\\\">Log out all devices exept for this one.</p>\\n </div>\\n </div>\\n }\\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\\n <div>\\n <p class=\\\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\\\">Active Devices</p>\\n @for (item of itemsWithIcons(); track item) {\\n <div>\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <i\\n class=\\\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\\\"\\n (click)=\\\"onTerminate(item.id)\\\"\\n ></i>\\n <div class=\\\"ax-border ax-rounded-lg\\\">\\n <i class=\\\"{{ item.icon }} ax-m-3\\\"></i>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">{{ item.deviceName }}</div>\\n <div class=\\\"ax-font-normal ax-text-sm ax-text-on-lightest\\\">{{ item.operatingSystem }}</div>\\n <p class=\\\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\\\">\\n {{ item.location }} <span>{{ item.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\\n </p>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n</div>\\n<ax-footer>\\n <div class=\\\"ax-flex-col ax-w-full\\\">\\n <div>\\n <p class=\\\"ax-text-danger-500 ax-font-medium ax-text-base\\\">Terminate Old Sessions</p>\\n </div>\\n <div>\\n <ax-suffix>\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-mt-4\\\">\\n <div class=\\\"ax-font-normal ax-text-base ax-text-on-lightest\\\">If inactive for...</div>\\n <div class=\\\"ax-w-3/6\\\">\\n <ax-select-box\\n [ngModel]=\\\"expireTime()\\\"\\n (onValueChanged)=\\\"onChangeSessionExpireTime($event)\\\"\\n [dataSource]=\\\"dataSource\\\"\\n textField=\\\"name\\\"\\n valueField=\\\"id\\\"\\n placeholder=\\\"Choose...\\\"\\n >\\n </ax-select-box>\\n </div>\\n </div>\\n </ax-suffix>\\n </div>\\n </div>\\n</ax-footer>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { 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: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i3.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"pipe\", type: i4.DatePipe, name: \"date\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXMUserSessionsComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n AXButtonModule,\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXSelectBoxModule,\n AXDropdownModule,\n AXPopoverModule,\n ], template: \"<div class=\\\"ax-mx-auto ax-p-6 ax-w-full\\\">\\n <p class=\\\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mb-4\\\">This Device</p>\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <div class=\\\"ax-border-primary-200 ax-border ax-bg-primary-50 ax-rounded-lg\\\">\\n <i class=\\\"{{ getDeviceIcon(activeSession()?.deviceName) }} ax-text-primary-500 ax-m-3\\\"></i>\\n </div>\\n @if (activeSession()) {\\n <div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">{{ activeSession()?.deviceName }}</div>\\n <div class=\\\"ax-font-normal ax-text-sm ax-text-on-lightest\\\">{{ activeSession()?.operatingSystem }}</div>\\n <p class=\\\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\\\">\\n {{ activeSession()?.location }} <span>{{ activeSession()?.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\\n </p>\\n </div>\\n </div>\\n }\\n </div>\\n\\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <div class=\\\"ax-border-danger-200 ax-border ax-bg-danger-50 ax-rounded-lg\\\">\\n <i class=\\\"ax-icon ax-icon-clear ax-text-danger-500 ax-m-3\\\"></i>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2 ax-cursor-pointer\\\" (click)=\\\"onTerminateAll()\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">Terminate All Other Sessions</div>\\n <p class=\\\"ax-font-normal ax-text-sm ax-subtitle-on-lightest\\\">Log out all devices exept for this one.</p>\\n </div>\\n </div>\\n }\\n @if (itemsWithIcons() && itemsWithIcons().length > 0) {\\n <div>\\n <p class=\\\"ax-font-semibold ax-text-base ax-text-on-lightest ax-mt-4 ax-mb-4\\\">Active Devices</p>\\n @for (item of itemsWithIcons(); track item) {\\n <div>\\n <div\\n class=\\\"ax-flex ax-border ax-items-center ax-relative ax-rounded-lg ax-border-lightest ax-bg-lightest ax-text-on-lightest ax-mb-3 ax-p-3\\\"\\n >\\n <i\\n class=\\\"ax-icon ax-icon-close ax-absolute ax-end-2 ax-top-2 ax-cursor-pointer\\\"\\n (click)=\\\"onTerminate(item.id)\\\"\\n ></i>\\n <div class=\\\"ax-border ax-rounded-lg\\\">\\n <i class=\\\"{{ item.icon }} ax-m-3\\\"></i>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-ml-2\\\">\\n <div class=\\\"ax-font-medium ax-text-base ax-text-on-lightest\\\">{{ item.deviceName }}</div>\\n <div class=\\\"ax-font-normal ax-text-sm ax-text-on-lightest\\\">{{ item.operatingSystem }}</div>\\n <p class=\\\"ax-font-normal ax-text-xs ax-subtitle-on-lightest\\\">\\n {{ item.location }} <span>{{ item.lastLoginDate | date: 'YYYY/MM/DD HH:mm' }}</span>\\n </p>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n</div>\\n<ax-footer>\\n <div class=\\\"ax-flex-col ax-w-full\\\">\\n <div>\\n <p class=\\\"ax-text-danger-500 ax-font-medium ax-text-base\\\">Terminate Old Sessions</p>\\n </div>\\n <div>\\n <ax-suffix>\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-mt-4\\\">\\n <div class=\\\"ax-font-normal ax-text-base ax-text-on-lightest\\\">If inactive for...</div>\\n <div class=\\\"ax-w-3/6\\\">\\n <ax-select-box\\n [ngModel]=\\\"expireTime()\\\"\\n (onValueChanged)=\\\"onChangeSessionExpireTime($event)\\\"\\n [dataSource]=\\\"dataSource\\\"\\n textField=\\\"name\\\"\\n valueField=\\\"id\\\"\\n placeholder=\\\"Choose...\\\"\\n >\\n </ax-select-box>\\n </div>\\n </div>\\n </ax-suffix>\\n </div>\\n </div>\\n</ax-footer>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXV0aC9zcmMvbGliL3BhZ2VzL2FjY291bnQvdXNlci1zZXNzaW9ucy91c2VyLXNlc3Npb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hdXRoL3NyYy9saWIvcGFnZXMvYWNjb3VudC91c2VyLXNlc3Npb25zL3VzZXItc2Vzc2lvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9D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WixXQUFXLDhWQUNYLGlCQUFpQiw4cEJBQ2pCLGdCQUFnQiw4QkFDaEIsZUFBZTs7MkZBR04sd0JBQXdCO2tCQWJwQyxTQUFTO3NDQUVTLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBQbGF0Zm9ybVNjb3BlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYTVVzZXJEZXZpY2VTZXNzaW9uc1NlcnZpY2UgfSBmcm9tICcuL3VzZXItc2Vzc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBWE1TZWN1cml0eU1hbmFnZW1lbnREZXZpY2VTZXNzaW9uc0VudGl0eU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzL2RldmljZS1zZXNzaW9ucy50eXBlcyc7XG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItc2Vzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYUG9wb3Zlck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNVXNlclNlc3Npb25zQ29tcG9uZW50IHtcbiAgQVhQVG9rZW5FeHBpcmF0aW9uRHVyYXRpb25zID0ge1xuICAgIG9uZVdlZWs6ICdvbmVXZWVrJyxcbiAgICBvbmVNb250aDogJ29uZU1vbnRoJyxcbiAgICB0aHJlZU1vbnRoczogJ3RocmVlTW9udGhzJyxcbiAgICBzaXhNb250aHM6ICdzaXhNb250aHMnLFxuICB9O1xuXG4gIGl0ZW1zID0gc2lnbmFsPEFYTVNlY3VyaXR5TWFuYWdlbWVudERldmljZVNlc3Npb25zRW50aXR5TW9kZWxbXT4oW10pO1xuICBhY3RpdmVTZXNzaW9uID0gc2lnbmFsPEFYTVNlY3VyaXR5TWFuYWdlbWVudERldmljZVNlc3Npb25zRW50aXR5TW9kZWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGV4cGlyZVRpbWUgPSBzaWduYWw8eyBuYW1lOiBzdHJpbmc7IGlkOiBzdHJpbmcgfSB8IG51bGw+KG51bGwpO1xuXG4gIGV4cGlyYXRpb25JdGVtcyA9IFtcbiAgICB7IG5hbWU6ICdUZXJtaW5hdGUgaW4gMSB3ZWVrJywgaWQ6IHRoaXMuQVhQVG9rZW5FeHBpcmF0aW9uRHVyYXRpb25zLm9uZVdlZWsgfSxcbiAgICB7IG5hbWU6ICdUZXJtaW5hdGUgaW4gMSBtb250aCcsIGlkOiB0aGlzLkFYUFRva2VuRXhwaXJhdGlvbkR1cmF0aW9ucy5vbmVNb250aCB9LFxuICAgIHsgbmFtZTogJ1Rlcm1pbmF0ZSBpbiAzIG1vbnRoJywgaWQ6IHRoaXMuQVhQVG9rZW5FeHBpcmF0aW9uRHVyYXRpb25zLnRocmVlTW9udGhzIH0sXG4gICAgeyBuYW1lOiAnVGVybWluYXRlIGluIDYgbW9udGgnLCBpZDogdGhpcy5BWFBUb2tlbkV4cGlyYXRpb25EdXJhdGlvbnMuc2l4TW9udGhzIH0sXG4gIF07XG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZTxhbnk+KHtcbiAgICBwYWdlU2l6ZTogMTAsXG4gICAga2V5OiAnaWQnLFxuICAgIGxvYWQ6IGFzeW5jIChlKSA9PiB7XG4gICAgICBsZXQgaXRlbXMgPSB0aGlzLmV4cGlyYXRpb25JdGVtcztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zLFxuICAgICAgICB0b3RhbDogaXRlbXMubGVuZ3RoLFxuICAgICAgfTtcbiAgICB9LFxuICB9KTtcbiAgcHJpdmF0ZSB1c2VyRGV2aWNlU2Vzc2lvbnNTZXJ2aWNlID0gaW5qZWN0KEFYTVVzZXJEZXZpY2VTZXNzaW9uc1NlcnZpY2UpO1xuICBwcml2YXRlIGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2FkVXNlclNlc3Npb25zKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRVc2VyU2Vzc2lvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBzZXNzaW9ucyA9IGF3YWl0IHRoaXMudXNlckRldmljZVNlc3Npb25zU2VydmljZS5nZXRTZXNzaW9ucygpO1xuICAgICAgdGhpcy5pdGVtcy5zZXQoc2Vzc2lvbnMpO1xuICAgICAgY29uc3QgYWN0aXZlU2Vzc2lvbiA9IGF3YWl0IHRoaXMudXNlckRldmljZVNlc3Npb25zU2VydmljZS5nZXRDdXJyZW50QWN0aXZlU2Vzc2lvbnMoKTtcbiAgICAgIHRoaXMuYWN0aXZlU2Vzc2lvbi5zZXQoYWN0aXZlU2Vzc2lvbik7XG4gICAgICBjb25zdCBzZXNzaW9uVGltZW91dCA9IGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKS5nZXQoJ3Nlc3Npb24tdGltZW91dCcpO1xuICAgICAgaWYgKHNlc3Npb25UaW1lb3V0ICYmIHNlc3Npb25UaW1lb3V0LmlkIGluIHRoaXMuQVhQVG9rZW5FeHBpcmF0aW9uRHVyYXRpb25zKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSB0aGlzLmV4cGlyYXRpb25JdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBzZXNzaW9uVGltZW91dC5pZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB0aGlzLmV4cGlyZVRpbWUuc2V0KHsgbmFtZTogc2VsZWN0ZWRJdGVtLm5hbWUsIGlkOiBzZWxlY3RlZEl0ZW0uaWQgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyB1c2VyIHNlc3Npb25zJywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIOKchSBVc2UgYSBjb21wdXRlZCBzaWduYWwgdG8gdXBkYXRlIGR5bmFtaWNhbGx5IHdoZW4gaXRlbXMgY2hhbmdlXG4gIGl0ZW1zV2l0aEljb25zID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLml0ZW1zKCkubWFwKChpdGVtKSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGljb246IHRoaXMuZ2V0RGV2aWNlSWNvbihpdGVtLmRldmljZU5hbWUpLFxuICAgIH0pKSxcbiAgKTtcblxuICBnZXREZXZpY2VJY29uKGRldmljZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFkZXZpY2VOYW1lKSByZXR1cm4gJ2ZhLXNvbGlkIGZhLXF1ZXN0aW9uJzsgLy8gRGVmYXVsdCBpY29uIGlmIG5vIG5hbWUgaXMgcHJvdmlkZWRcblxuICAgIGNvbnN0IGxvd2VyQ2FzZU5hbWUgPSBkZXZpY2VOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJDYXNlTmFtZS5pbmNsdWRlcygnd2luZG93cycpKSByZXR1cm4gJ2ZhLWJyYW5kcyBmYS1taWNyb3NvZnQnO1xuICAgIGlmIChsb3dlckNhc2VOYW1lLmluY2x1ZGVzKCdtYWMnKSkgcmV0dXJuICdmYS1icmFuZHMgZmEtbWljcm9zb2Z0JztcbiAgICBpZiAobG93ZXJDYXNlTmFtZS5pbmNsdWRlcygnbGludXgnKSkgcmV0dXJuICdmYS1icmFuZHMgZmEtbWljcm9zb2Z0JztcbiAgICBpZiAobG93ZXJDYXNlTmFtZS5pbmNsdWRlcygnYW5kcm9pZCcpKSByZXR1cm4gJ2ZhLWJyYW5kcyBmYS1hbmRyb2lkJztcbiAgICBpZiAobG93ZXJDYXNlTmFtZS5pbmNsdWRlcygnaW9zJykpIHJldHVybiAnZmEtYnJhbmRzIGZhLWFwcGxlJztcbiAgICBpZiAobG93ZXJDYXNlTmFtZS5pbmNsdWRlcygnaXBhZCcpKSByZXR1cm4gJ2ZhLWJyYW5kcyBmYS1hcHBsZSc7XG4gICAgaWYgKGxvd2VyQ2FzZU5hbWUuaW5jbHVkZXMoJ2lwaG9uZScpKSByZXR1cm4gJ2ZhLWJyYW5kcyBmYS1hcHBsZSc7XG5cbiAgICByZXR1cm4gJ2ZhLXNvbGlkIGZhLXF1ZXN0aW9uJzsgLy8gRGVmYXVsdCBpY29uIGlmIG5vIG1hdGNoXG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaGFuZ2VTZXNzaW9uRXhwaXJlVGltZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy51c2VyRGV2aWNlU2Vzc2lvbnNTZXJ2aWNlLnNldFRva2VuTGlmZXRpbWVNaW51dGVzKGUuY29tcG9uZW50LnNlbGVjdGVkSXRlbXNbMF0pO1xuICB9XG5cbiAgYXN5bmMgb25UZXJtaW5hdGUoc2Vzc2lvbklkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXNlc3Npb25JZCkge1xuICAgICAgY29uc29sZS5lcnJvcignTm8gaXRlbSB0byB0ZXJtaW5hdGUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy51c2VyRGV2aWNlU2Vzc2lvbnNTZXJ2aWNlLnRlcm1pbmF0ZVNlc3Npb24oc2Vzc2lvbklkKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRVc2VyU2Vzc2lvbnMoKTtcbiAgfVxuXG4gIGFzeW5jIG9uVGVybWluYXRlQWxsKCkge1xuICAgIGF3YWl0IHRoaXMudXNlckRldmljZVNlc3Npb25zU2VydmljZS50ZXJtaW5hdGVBbGxTZXNzaW9uKCk7XG4gICAgYXdhaXQgdGhpcy5sb2FkVXNlclNlc3Npb25zKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1teC1hdXRvIGF4LXAtNiBheC13LWZ1bGxcIj5cbiAgPHAgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtYmFzZSBheC10ZXh0LW9uLWxpZ2h0ZXN0IGF4LW1iLTRcIj5UaGlzIERldmljZTwvcD5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtZmxleCBheC1ib3JkZXIgYXgtaXRlbXMtY2VudGVyIGF4LXJvdW5kZWQtbGcgYXgtYm9yZGVyLWxpZ2h0ZXN0IGF4LWJnLWxpZ2h0ZXN0IGF4LXRleHQtb24tbGlnaHRlc3QgYXgtbWItMyBheC1wLTNcIlxuICAgID5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtYm9yZGVyLXByaW1hcnktMjAwIGF4LWJvcmRlciBheC1iZy1wcmltYXJ5LTUwIGF4LXJvdW5kZWQtbGdcIj5cbiAgICAgIDxpIGNsYXNzPVwie3sgZ2V0RGV2aWNlSWNvbihhY3RpdmVTZXNzaW9uKCk/LmRldmljZU5hbWUpIH19IGF4LXRleHQtcHJpbWFyeS01MDAgYXgtbS0zXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoYWN0aXZlU2Vzc2lvbigpKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1tbC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LXRleHQtYmFzZSBheC10ZXh0LW9uLWxpZ2h0ZXN0XCI+e3sgYWN0aXZlU2Vzc2lvbigpPy5kZXZpY2VOYW1lIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtbm9ybWFsIGF4LXRleHQtc20gYXgtdGV4dC1vbi1saWdodGVzdFwiPnt7IGFjdGl2ZVNlc3Npb24oKT8ub3BlcmF0aW5nU3lzdGVtIH19PC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJheC1mb250LW5vcm1hbCBheC10ZXh0LXhzIGF4LXN1YnRpdGxlLW9uLWxpZ2h0ZXN0XCI+XG4gICAgICAgICAgICB7eyBhY3RpdmVTZXNzaW9uKCk/LmxvY2F0aW9uIH19IDxzcGFuPnt7IGFjdGl2ZVNlc3Npb24oKT8ubGFzdExvZ2luRGF0ZSB8IGRhdGU6ICdZWVlZL01NL0REIEhIOm1tJyB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKGl0ZW1zV2l0aEljb25zKCkgJiYgaXRlbXNXaXRoSWNvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWJvcmRlciBheC1pdGVtcy1jZW50ZXIgYXgtcm91bmRlZC1sZyBheC1ib3JkZXItbGlnaHRlc3QgYXgtYmctbGlnaHRlc3QgYXgtdGV4dC1vbi1saWdodGVzdCBheC1tYi0zIGF4LXAtM1wiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtYm9yZGVyLWRhbmdlci0yMDAgYXgtYm9yZGVyIGF4LWJnLWRhbmdlci01MCBheC1yb3VuZGVkLWxnXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsZWFyIGF4LXRleHQtZGFuZ2VyLTUwMCBheC1tLTNcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LW1sLTIgYXgtY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25UZXJtaW5hdGVBbGwoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1iYXNlIGF4LXRleHQtb24tbGlnaHRlc3RcIj5UZXJtaW5hdGUgQWxsIE90aGVyIFNlc3Npb25zPC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1ub3JtYWwgYXgtdGV4dC1zbSBheC1zdWJ0aXRsZS1vbi1saWdodGVzdFwiPkxvZyBvdXQgYWxsIGRldmljZXMgZXhlcHQgZm9yIHRoaXMgb25lLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoaXRlbXNXaXRoSWNvbnMoKSAmJiBpdGVtc1dpdGhJY29ucygpLmxlbmd0aCA+IDApIHtcbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtYmFzZSBheC10ZXh0LW9uLWxpZ2h0ZXN0IGF4LW10LTQgYXgtbWItNFwiPkFjdGl2ZSBEZXZpY2VzPC9wPlxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtc1dpdGhJY29ucygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWJvcmRlciBheC1pdGVtcy1jZW50ZXIgYXgtcmVsYXRpdmUgYXgtcm91bmRlZC1sZyBheC1ib3JkZXItbGlnaHRlc3QgYXgtYmctbGlnaHRlc3QgYXgtdGV4dC1vbi1saWdodGVzdCBheC1tYi0zIGF4LXAtM1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZSBheC1hYnNvbHV0ZSBheC1lbmQtMiBheC10b3AtMiBheC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblRlcm1pbmF0ZShpdGVtLmlkKVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWJvcmRlciBheC1yb3VuZGVkLWxnXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwie3sgaXRlbS5pY29uIH19IGF4LW0tM1wiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtbWwtMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1iYXNlIGF4LXRleHQtb24tbGlnaHRlc3RcIj57eyBpdGVtLmRldmljZU5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtbm9ybWFsIGF4LXRleHQtc20gYXgtdGV4dC1vbi1saWdodGVzdFwiPnt7IGl0ZW0ub3BlcmF0aW5nU3lzdGVtIH19PC9kaXY+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1ub3JtYWwgYXgtdGV4dC14cyBheC1zdWJ0aXRsZS1vbi1saWdodGVzdFwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubG9jYXRpb24gfX0gPHNwYW4+e3sgaXRlbS5sYXN0TG9naW5EYXRlIHwgZGF0ZTogJ1lZWVkvTU0vREQgSEg6bW0nIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuPGF4LWZvb3Rlcj5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXgtY29sIGF4LXctZnVsbFwiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cImF4LXRleHQtZGFuZ2VyLTUwMCBheC1mb250LW1lZGl1bSBheC10ZXh0LWJhc2VcIj5UZXJtaW5hdGUgT2xkIFNlc3Npb25zPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LW10LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1ub3JtYWwgYXgtdGV4dC1iYXNlIGF4LXRleHQtb24tbGlnaHRlc3RcIj5JZiBpbmFjdGl2ZSBmb3IuLi48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy0zLzZcIj5cbiAgICAgICAgICAgIDxheC1zZWxlY3QtYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImV4cGlyZVRpbWUoKVwiXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbkNoYW5nZVNlc3Npb25FeHBpcmVUaW1lKCRldmVudClcIlxuICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgICAgICAgICAgdGV4dEZpZWxkPVwibmFtZVwiXG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ2hvb3NlLi4uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYXgtZm9vdGVyPlxuIl19"],"names":["i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,2BAA2B,GAAG;AAC3C,YAAY,OAAO,EAAE,SAAS;AAC9B,YAAY,QAAQ,EAAE,UAAU;AAChC,YAAY,WAAW,EAAE,aAAa;AACtC,YAAY,SAAS,EAAE,WAAW;AAClC,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,eAAe,GAAG;AAC/B,YAAY,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE;AACzF,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE;AAC3F,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE;AAC9F,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE;AAC5F,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC;AAC3C,YAAY,QAAQ,EAAE,EAAE;AACxB,YAAY,GAAG,EAAE,IAAI;AACrB,YAAY,IAAI,EAAE,OAAO,CAAC,KAAK;AAC/B,gBAAgB,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe;AAChD,gBAAgB,OAAO;AACvB,oBAAoB,KAAK;AACzB,oBAAoB,KAAK,EAAE,KAAK,CAAC,MAAM;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC7E,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACzE,YAAY,GAAG,IAAI;AACnB,YAAY,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,SAAS,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,IAAI;AACZ,YAAY,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;AAC7E,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpC,YAAY,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,wBAAwB,EAAE;AACjG,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;AACjD,YAAY,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAChH,YAAY,IAAI,cAAc,IAAI,cAAc,CAAC,EAAE,IAAI,IAAI,CAAC,2BAA2B,EAAE;AACzF,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC;AACrG,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;AACzF;AACA;AACA;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AAC/D;AACA;AACA,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,OAAO,sBAAsB,CAAC;AAC1C,QAAQ,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE;AACtD,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7C,YAAY,OAAO,wBAAwB;AAC3C,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,YAAY,OAAO,wBAAwB;AAC3C,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC3C,YAAY,OAAO,wBAAwB;AAC3C,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7C,YAAY,OAAO,sBAAsB;AACzC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,YAAY,OAAO,oBAAoB;AACvC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1C,YAAY,OAAO,oBAAoB;AACvC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5C,YAAY,OAAO,oBAAoB;AACvC,QAAQ,OAAO,sBAAsB,CAAC;AACtC;AACA,IAAI,yBAAyB,CAAC,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5F;AACA,IAAI,MAAM,WAAW,CAAC,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACjD,YAAY;AACZ;AACA,QAAQ,MAAM,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACxE,QAAQ,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACrC;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE;AAClE,QAAQ,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACrC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,o2HAAo2H,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAChnL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/E,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,iBAAiB;AACzC,wBAAwB,gBAAgB;AACxC,wBAAwB,eAAe;AACvC,qBAAqB,EAAE,QAAQ,EAAE,o2HAAo2H,EAAE;AACv4H,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;;;"}