@acorex/modules 20.0.25 → 20.1.0

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 (267) hide show
  1. package/auth/index.d.ts +57 -4
  2. package/common/index.d.ts +8 -1
  3. package/data-management/index.d.ts +401 -3
  4. package/fesm2022/{acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs → acorex-modules-application-management-module-designer.component-udoks-Ef.mjs} +17 -17
  5. package/fesm2022/acorex-modules-application-management-module-designer.component-udoks-Ef.mjs.map +1 -0
  6. package/fesm2022/acorex-modules-application-management.mjs +53 -53
  7. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  8. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs → acorex-modules-auth-acorex-modules-auth-5TIjp5UG.mjs} +182 -123
  9. package/fesm2022/acorex-modules-auth-acorex-modules-auth-5TIjp5UG.mjs.map +1 -0
  10. package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs → acorex-modules-auth-app-chooser.component-B0w1Xzx7.mjs} +6 -6
  11. package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs.map → acorex-modules-auth-app-chooser.component-B0w1Xzx7.mjs.map} +1 -1
  12. package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs → acorex-modules-auth-blank.layout-C8NsXB9K.mjs} +5 -5
  13. package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs.map → acorex-modules-auth-blank.layout-C8NsXB9K.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs → acorex-modules-auth-login.module-B8sVVZHV.mjs} +8 -8
  15. package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs.map → acorex-modules-auth-login.module-B8sVVZHV.mjs.map} +1 -1
  16. package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs → acorex-modules-auth-master.layout-CMKxj1Qo.mjs} +7 -7
  17. package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs.map → acorex-modules-auth-master.layout-CMKxj1Qo.mjs.map} +1 -1
  18. package/fesm2022/acorex-modules-auth-oauth-callback.component-C95YLpI_.mjs +101 -0
  19. package/fesm2022/acorex-modules-auth-oauth-callback.component-C95YLpI_.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs → acorex-modules-auth-password.component-DH0qKunk.mjs} +9 -9
  21. package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs.map → acorex-modules-auth-password.component-DH0qKunk.mjs.map} +1 -1
  22. package/fesm2022/acorex-modules-auth-password.component-Du0EBIiw.mjs +239 -0
  23. package/fesm2022/acorex-modules-auth-password.component-Du0EBIiw.mjs.map +1 -0
  24. package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs → acorex-modules-auth-routes-Q9zaIiBS.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs.map → acorex-modules-auth-routes-Q9zaIiBS.mjs.map} +1 -1
  26. package/fesm2022/acorex-modules-auth-settings.provider-CM-T8nbI.mjs.map +1 -1
  27. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs → acorex-modules-auth-tenant-chooser.component-wp7OOLsH.mjs} +16 -13
  28. package/fesm2022/acorex-modules-auth-tenant-chooser.component-wp7OOLsH.mjs.map +1 -0
  29. package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs → acorex-modules-auth-two-factor-code.component-DSWd06bn.mjs} +7 -7
  30. package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs.map → acorex-modules-auth-two-factor-code.component-DSWd06bn.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs → acorex-modules-auth-two-factor.module-oRixkeAn.mjs} +7 -7
  32. package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs.map → acorex-modules-auth-two-factor.module-oRixkeAn.mjs.map} +1 -1
  33. package/fesm2022/acorex-modules-auth-user-sessions.component-8wwWI0cQ.mjs +135 -0
  34. package/fesm2022/acorex-modules-auth-user-sessions.component-8wwWI0cQ.mjs.map +1 -0
  35. package/fesm2022/acorex-modules-auth.mjs +1 -1
  36. package/fesm2022/acorex-modules-calendar-management.mjs +19 -19
  37. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  38. package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs +1667 -0
  39. package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs.map +1 -0
  40. package/fesm2022/{acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs → acorex-modules-common-search-popup.component-CpFvcrxw.mjs} +13 -13
  41. package/fesm2022/acorex-modules-common-search-popup.component-CpFvcrxw.mjs.map +1 -0
  42. package/fesm2022/{acorex-modules-platform-management-settings.provider-intHn3XI.mjs → acorex-modules-common-settings.provider-ha75F6g5.mjs} +2 -3
  43. package/fesm2022/acorex-modules-common-settings.provider-ha75F6g5.mjs.map +1 -0
  44. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-D48aDOVu.mjs → acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs} +11 -11
  45. package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs.map +1 -0
  46. package/fesm2022/acorex-modules-common.mjs +1 -1199
  47. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  48. package/fesm2022/{acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs → acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs} +47 -222
  49. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs.map +1 -0
  50. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs.map} +1 -1
  54. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs → acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs} +2 -2
  55. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs.map → acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs.map} +1 -1
  56. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs → acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs} +2 -2
  57. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs.map → acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs.map} +1 -1
  58. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs} +2 -2
  59. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs.map} +1 -1
  60. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs → acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs} +2 -2
  61. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs.map → acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs.map} +1 -1
  62. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs → acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs.map → acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs.map} +1 -1
  64. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  65. package/fesm2022/acorex-modules-content-management.mjs +14 -14
  66. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  67. package/fesm2022/acorex-modules-conversation.mjs +123 -123
  68. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  69. package/fesm2022/acorex-modules-dashboard-management.mjs +191 -191
  70. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  71. package/fesm2022/acorex-modules-data-management.mjs +2215 -265
  72. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  73. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-Bte3VGKC.mjs → acorex-modules-document-management-acorex-modules-document-management-B4Jd-KGV.mjs} +144 -144
  74. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-B4Jd-KGV.mjs.map +1 -0
  75. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs} +5 -5
  76. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs.map → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs → acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs} +22 -22
  78. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs.map +1 -0
  79. package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs} +5 -5
  80. package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs.map → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs → acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs} +18 -18
  82. package/fesm2022/acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs.map +1 -0
  83. package/fesm2022/{acorex-modules-document-management-drive.component-CUej0GjY.mjs → acorex-modules-document-management-drive.component-DrkSd6Rv.mjs} +28 -28
  84. package/fesm2022/acorex-modules-document-management-drive.component-DrkSd6Rv.mjs.map +1 -0
  85. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuwrkLhe.mjs → acorex-modules-document-management-large-icons-view.component-DV8oWdDh.mjs} +5 -5
  86. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuwrkLhe.mjs.map → acorex-modules-document-management-large-icons-view.component-DV8oWdDh.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Cs-mjiQX.mjs → acorex-modules-document-management-large-tiles-view.component-Bgr9s_zf.mjs} +5 -5
  88. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Cs-mjiQX.mjs.map → acorex-modules-document-management-large-tiles-view.component-Bgr9s_zf.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs} +5 -5
  90. package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs.map → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs} +5 -5
  92. package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs.map → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-DsSo15AL.mjs → acorex-modules-document-management-meta-choose-popup.component-DYJN-4Pe.mjs} +20 -20
  94. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DYJN-4Pe.mjs.map +1 -0
  95. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-gunvY9et.mjs → acorex-modules-document-management-meta-selector-widget-column.component-C_J1rPak.mjs} +4 -4
  96. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-gunvY9et.mjs.map → acorex-modules-document-management-meta-selector-widget-column.component-C_J1rPak.mjs.map} +1 -1
  97. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-B-fYrGs1.mjs → acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs} +7 -7
  98. package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs.map +1 -0
  99. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-D4gu7liQ.mjs → acorex-modules-document-management-meta-selector-widget-view.component-zwCw3v1w.mjs} +4 -4
  100. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-D4gu7liQ.mjs.map → acorex-modules-document-management-meta-selector-widget-view.component-zwCw3v1w.mjs.map} +1 -1
  101. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs} +2 -2
  102. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs.map → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs.map} +1 -1
  103. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DWzD41AV.mjs → acorex-modules-document-management-rename-node-dialog.component-C_dsLLMb.mjs} +15 -15
  104. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-C_dsLLMb.mjs.map +1 -0
  105. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs} +6 -6
  106. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs.map → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs.map} +1 -1
  107. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-CKlG3YwB.mjs → acorex-modules-document-management-share-email-dialog.component-D3WcHAOf.mjs} +5 -5
  108. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-CKlG3YwB.mjs.map → acorex-modules-document-management-share-email-dialog.component-D3WcHAOf.mjs.map} +1 -1
  109. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Dh5Di_2Y.mjs → acorex-modules-document-management-small-icons-view.component-wvFkjOqg.mjs} +5 -5
  110. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Dh5Di_2Y.mjs.map → acorex-modules-document-management-small-icons-view.component-wvFkjOqg.mjs.map} +1 -1
  111. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-mOjQbw-f.mjs → acorex-modules-document-management-small-tiles-view.component-C4ARGOZR.mjs} +5 -5
  112. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-mOjQbw-f.mjs.map → acorex-modules-document-management-small-tiles-view.component-C4ARGOZR.mjs.map} +1 -1
  113. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  114. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs} +68 -68
  115. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs.map +1 -0
  116. package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs} +2 -2
  117. package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs.map → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs.map} +1 -1
  118. package/fesm2022/{acorex-modules-form-template-management-designer.page-B14QVCAw.mjs → acorex-modules-form-template-management-designer.page-DQorNK3f.mjs} +6 -6
  119. package/fesm2022/acorex-modules-form-template-management-designer.page-DQorNK3f.mjs.map +1 -0
  120. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BMd6DvoR.mjs → acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs} +2 -2
  121. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BMd6DvoR.mjs.map → acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs.map} +1 -1
  122. package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs} +2 -2
  123. package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs.map → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs.map} +1 -1
  124. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-C0mLCsFT.mjs → acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs} +14 -14
  125. package/fesm2022/acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs.map +1 -0
  126. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CffnsEo2.mjs → acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs} +9 -9
  127. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs.map +1 -0
  128. package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs} +2 -2
  129. package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs.map → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs.map} +1 -1
  130. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs → acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs} +12 -12
  131. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs.map +1 -0
  132. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  133. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DKdtV_QL.mjs → acorex-modules-issue-management-acorex-modules-issue-management-B8ZVc-0b.mjs} +45 -45
  134. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DKdtV_QL.mjs.map → acorex-modules-issue-management-acorex-modules-issue-management-B8ZVc-0b.mjs.map} +1 -1
  135. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs} +7 -7
  136. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs.map → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs.map} +1 -1
  137. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  138. package/fesm2022/acorex-modules-log-management.mjs +427 -479
  139. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  140. package/fesm2022/acorex-modules-notification-management.mjs +60 -60
  141. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  142. package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs} +16 -16
  143. package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs.map → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs.map} +1 -1
  144. package/fesm2022/{acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs → acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs} +80 -6
  145. package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +1 -0
  146. package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +1 -1
  147. package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +1 -1
  148. package/fesm2022/{acorex-modules-organization-management-department.entity-BMojk26d.mjs → acorex-modules-organization-management-department.entity-BxCyXNtv.mjs} +68 -7
  149. package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +1 -0
  150. package/fesm2022/{acorex-modules-organization-management-division.entity-BnWpX4US.mjs → acorex-modules-organization-management-division.entity-DzQT2jpz.mjs} +68 -6
  151. package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +1 -0
  152. package/fesm2022/{acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs → acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs} +152 -28
  153. package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +1 -0
  154. package/fesm2022/{acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs → acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs} +21 -8
  155. package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +1 -0
  156. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs → acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs} +6 -6
  157. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs.map +1 -0
  158. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs → acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs} +5 -5
  159. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs.map +1 -0
  160. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs → acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs} +20 -20
  161. package/fesm2022/acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs.map +1 -0
  162. package/fesm2022/{acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs → acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs} +20 -35
  163. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +1 -0
  164. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +526 -0
  165. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +1 -0
  166. package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs → acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs} +12 -25
  167. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +1 -0
  168. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs → acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs} +70 -25
  169. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +1 -0
  170. package/fesm2022/{acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs → acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs} +22 -14
  171. package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +1 -0
  172. package/fesm2022/{acorex-modules-organization-management-position.entity-CY4TugWR.mjs → acorex-modules-organization-management-role.entity-CruQeObl.mjs} +77 -79
  173. package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +1 -0
  174. package/fesm2022/acorex-modules-organization-management-settings.provider-hlbUXugb.mjs.map +1 -1
  175. package/fesm2022/{acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs → acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs} +18 -33
  176. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +1 -0
  177. package/fesm2022/{acorex-modules-organization-management-skill.entity-D9XojzUV.mjs → acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs} +61 -22
  178. package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +1 -0
  179. package/fesm2022/{acorex-modules-organization-management-team.entity-mYPhrc2l.mjs → acorex-modules-organization-management-team.entity-DMCfAZsr.mjs} +58 -10
  180. package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +1 -0
  181. package/fesm2022/acorex-modules-organization-management.mjs +221 -136
  182. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  183. package/fesm2022/{acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs → acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs} +9 -9
  184. package/fesm2022/acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs.map +1 -0
  185. package/fesm2022/acorex-modules-platform-management.mjs +3479 -1
  186. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  187. package/fesm2022/acorex-modules-project-management.mjs +43 -43
  188. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  189. package/fesm2022/{acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs → acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs} +10 -10
  190. package/fesm2022/acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs.map +1 -0
  191. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-C3UP9Jsi.mjs → acorex-modules-report-management-report-runner-root-page.component-DHu-kyCd.mjs} +13 -13
  192. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-C3UP9Jsi.mjs.map → acorex-modules-report-management-report-runner-root-page.component-DHu-kyCd.mjs.map} +1 -1
  193. package/fesm2022/acorex-modules-report-management.mjs +465 -232
  194. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  195. package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
  196. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  197. package/fesm2022/acorex-modules-security-management.mjs +170 -102
  198. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  199. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs → acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs} +17 -17
  200. package/fesm2022/acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs.map +1 -0
  201. package/fesm2022/{acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs → acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs} +11 -11
  202. package/fesm2022/acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs.map +1 -0
  203. package/fesm2022/acorex-modules-settings-management.mjs +6 -6
  204. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  205. package/fesm2022/acorex-modules-text-template-management-settings.provider-fX0dhWUL.mjs.map +1 -1
  206. package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
  207. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  208. package/fesm2022/acorex-modules-training-management.mjs +43 -43
  209. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  210. package/fesm2022/{acorex-modules-workflow-management-task-board.page-zaSchG-u.mjs → acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs} +123 -133
  211. package/fesm2022/acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs.map +1 -0
  212. package/fesm2022/acorex-modules-workflow-management.mjs +12 -12
  213. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  214. package/log-management/index.d.ts +46 -19
  215. package/organization-management/index.d.ts +41 -13
  216. package/package.json +1 -1
  217. package/platform-management/index.d.ts +8 -277
  218. package/report-management/index.d.ts +180 -126
  219. package/security-management/index.d.ts +2 -46
  220. package/fesm2022/acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs.map +0 -1
  222. package/fesm2022/acorex-modules-auth-password.component-BbsQWpEh.mjs +0 -134
  223. package/fesm2022/acorex-modules-auth-password.component-BbsQWpEh.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs +0 -135
  226. package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D48aDOVu.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Bte3VGKC.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-document-management-drive.component-CUej0GjY.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DsSo15AL.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-B-fYrGs1.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-DWzD41AV.mjs.map +0 -1
  237. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-form-template-management-designer.page-B14QVCAw.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-form-template-management-template-picker.component-C0mLCsFT.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CffnsEo2.mjs.map +0 -1
  241. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs.map +0 -1
  243. package/fesm2022/acorex-modules-organization-management-department.entity-BMojk26d.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-organization-management-division.entity-BnWpX4US.mjs.map +0 -1
  245. package/fesm2022/acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs.map +0 -1
  246. package/fesm2022/acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs.map +0 -1
  247. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs.map +0 -1
  248. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs.map +0 -1
  249. package/fesm2022/acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs.map +0 -1
  250. package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs.map +0 -1
  251. package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs.map +0 -1
  252. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs.map +0 -1
  253. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs.map +0 -1
  254. package/fesm2022/acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs.map +0 -1
  255. package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs +0 -324
  256. package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +0 -1
  257. package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs.map +0 -1
  258. package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs.map +0 -1
  259. package/fesm2022/acorex-modules-organization-management-team.entity-mYPhrc2l.mjs.map +0 -1
  260. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs +0 -5524
  261. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +0 -1
  262. package/fesm2022/acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map +0 -1
  263. package/fesm2022/acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map +0 -1
  264. package/fesm2022/acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map +0 -1
  265. package/fesm2022/acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs.map +0 -1
  266. package/fesm2022/acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs.map +0 -1
  267. package/fesm2022/acorex-modules-workflow-management-task-board.page-zaSchG-u.mjs.map +0 -1
@@ -1,37 +1,42 @@
1
1
  import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
2
- import { AXP_REPORT_DEFINITION_PROVIDER, AXP_REPORT_CATEGORY_PROVIDER, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPLockService, AXP_MENU_PROVIDER, AXPReportDefinitionService } from '@acorex/platform/common';
2
+ import { AXP_REPORT_DEFINITION_PROVIDER, AXP_REPORT_CATEGORY_PROVIDER, createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPLockService, AXP_MENU_PROVIDER, AXPReportDefinitionService, AXPieChartReportMapper } from '@acorex/platform/common';
3
3
  import { AXPDomainModule, provideEntity } from '@acorex/platform/domain';
4
4
  import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
5
5
  import * as i0 from '@angular/core';
6
- import { inject, Injectable, NgModule, computed, output, ViewEncapsulation, ChangeDetectionStrategy, Component, input, viewChild } from '@angular/core';
6
+ import { inject, Injectable, NgModule, computed, viewChild, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, signal, input } from '@angular/core';
7
7
  import { ROUTES, ActivatedRoute, Router } from '@angular/router';
8
8
  import { AXPQueryService, AXPCommandService } from '@acorex/platform/runtime';
9
- import { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex/platform/core';
9
+ import { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, getSystemActions, applySystemActionDefault } from '@acorex/platform/core';
10
10
  import * as i1 from '@acorex/platform/workflow';
11
11
  import { AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
12
+ import * as i2 from '@acorex/platform/layout/builder';
12
13
  import { AXPWidgetsCatalog, AXPPageStatus, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
13
14
  import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
14
- import * as i5 from '@acorex/core/translation';
15
+ import * as i1$3 from '@acorex/core/translation';
15
16
  import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
16
17
  import { AXDataSource } from '@acorex/cdk/common';
17
- import { AXMDataSourceService } from '@acorex/modules/platform-management';
18
+ import { AXMDataSourceService } from '@acorex/modules/data-management';
18
19
  import { AXPopupService } from '@acorex/components/popup';
19
20
  import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
20
21
  import { AXLocaleService } from '@acorex/core/locale';
21
22
  import * as i2$1 from '@acorex/components/button';
22
23
  import { AXButtonModule } from '@acorex/components/button';
23
- import * as i4 from '@acorex/components/decorators';
24
+ import * as i3 from '@acorex/components/decorators';
24
25
  import { AXDecoratorModule } from '@acorex/components/decorators';
25
- import * as i3 from '@acorex/components/loading';
26
26
  import { AXLoadingModule } from '@acorex/components/loading';
27
27
  import { AXUnsubscriber } from '@acorex/core/utils';
28
28
  import { AXPDynamicFormComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutFooterComponent } from '@acorex/platform/layout/components';
29
29
  import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
30
30
  import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
31
- import * as i1$1 from '@angular/common';
31
+ import * as i1$2 from '@angular/common';
32
32
  import { CommonModule } from '@angular/common';
33
- import * as i2 from '@acorex/components/data-table';
33
+ import * as i1$1 from '@acorex/components/data-table';
34
34
  import { AXDataTableModule } from '@acorex/components/data-table';
35
+ import { AXDonutChartComponent } from '@acorex/charts/donut-chart';
36
+ import { AXChartLegendComponent } from '@acorex/charts/chart-legend';
37
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
38
+ import * as i5 from '@acorex/components/dropdown';
39
+ import { AXDropdownModule } from '@acorex/components/dropdown';
35
40
 
36
41
  const config = {
37
42
  i18n: 'report-management',
@@ -83,10 +88,10 @@ class AXMReportDefinitionProvider {
83
88
  const result = await this.queryService.fetch(`${this.entityName}:GetById`, id);
84
89
  return result ?? undefined;
85
90
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportDefinitionProvider }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
92
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportDefinitionProvider }); }
88
93
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportDefinitionProvider, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportDefinitionProvider, decorators: [{
90
95
  type: Injectable
91
96
  }] });
92
97
  const AXM_REPORT_DEFINITION_PROVIDER = {
@@ -113,10 +118,10 @@ class AXMReportCategoryProvider {
113
118
  async getById(id) {
114
119
  return this.getList().then(cats => cats.find(cat => cat.id === id));
115
120
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportCategoryProvider }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
122
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportCategoryProvider }); }
118
123
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportCategoryProvider, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportCategoryProvider, decorators: [{
120
125
  type: Injectable
121
126
  }] });
122
127
  const AXM_REPORT_CATEGORY_PROVIDER = {
@@ -148,10 +153,10 @@ class AXMDataSetServiceImpl extends AXMDataSetService {
148
153
  constructor() {
149
154
  super(`${RootConfig.module.name}.${RootConfig.entities.dataSet.name}`);
150
155
  }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDataSetServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
152
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDataSetServiceImpl }); }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDataSetServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
157
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDataSetServiceImpl }); }
153
158
  }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDataSetServiceImpl, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDataSetServiceImpl, decorators: [{
155
160
  type: Injectable
156
161
  }], ctorParameters: () => [] });
157
162
 
@@ -976,7 +981,7 @@ class AXMReportCreateRootWorkflowAction extends AXPWorkflowAction {
976
981
  }
977
982
  async execute(context) {
978
983
  // const refId = context.getVariable<string>('options.refId');
979
- const comp = await import('./acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs').then(m => m.AXPReportCreateRootComponent);
984
+ const comp = await import('./acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs').then(m => m.AXPReportCreateRootComponent);
980
985
  this.popupService.open(comp, await this.translationService.translateAsync('report.create.title', { scope: 'report-management' }));
981
986
  }
982
987
  }
@@ -1044,7 +1049,7 @@ function routesFacory() {
1044
1049
  children: [
1045
1050
  {
1046
1051
  path: '**',
1047
- loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-C3UP9Jsi.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
1052
+ loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-DHu-kyCd.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
1048
1053
  data: { reuse: true },
1049
1054
  },
1050
1055
  ],
@@ -1053,9 +1058,9 @@ function routesFacory() {
1053
1058
  return routes;
1054
1059
  }
1055
1060
  class AXMReportManagementModule {
1056
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1057
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: AXMReportManagementModule, imports: [AXPDomainModule, i1.AXPWorkflowModule] }); }
1058
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportManagementModule, providers: [
1061
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1062
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AXMReportManagementModule, imports: [AXPDomainModule, i1.AXPWorkflowModule] }); }
1063
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportManagementModule, providers: [
1059
1064
  {
1060
1065
  provide: AXMDataSetService,
1061
1066
  useClass: AXMDataSetServiceImpl,
@@ -1098,7 +1103,7 @@ class AXMReportManagementModule {
1098
1103
  },
1099
1104
  })] }); }
1100
1105
  }
1101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMReportManagementModule, decorators: [{
1106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMReportManagementModule, decorators: [{
1102
1107
  type: NgModule,
1103
1108
  args: [{
1104
1109
  imports: [
@@ -1153,30 +1158,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1153
1158
 
1154
1159
  const AXPReportViewerViewModel = signalStore(withState(() => ({
1155
1160
  reportDefinition: null,
1156
- reportData: [],
1161
+ currentLayout: null,
1157
1162
  filterContext: {},
1158
- previousFilterContext: {},
1159
1163
  categoriesPath: [],
1164
+ allowFetchData: false,
1160
1165
  status: AXPPageStatus.Idle,
1161
- totalRecords: 0,
1162
- currentPage: 1,
1163
- pageSize: 10,
1164
1166
  error: null,
1165
- showResults: false,
1166
1167
  })), withComputed((store) => ({
1167
- //#region ---- Layout Type Detection ----
1168
- layoutType: computed(() => store.reportDefinition()?.layout?.type),
1168
+ //#region ---- Layout Management ----
1169
+ availableLayouts: computed(() => {
1170
+ const report = store.reportDefinition();
1171
+ if (!report?.layouts)
1172
+ return [];
1173
+ return report.layouts.map(layout => ({
1174
+ id: layout.id,
1175
+ title: layout.title,
1176
+ icon: layout.icon,
1177
+ type: layout.layout.type
1178
+ }));
1179
+ }),
1180
+ defaultLayout: computed(() => {
1181
+ const report = store.reportDefinition();
1182
+ if (!report?.layouts?.length)
1183
+ return null;
1184
+ // Find layout marked as default, or use first layout
1185
+ return report.layouts.find(l => l.isDefault) || report.layouts[0];
1186
+ }),
1187
+ activeLayoutId: computed(() => store.currentLayout()?.id || null),
1188
+ layoutType: computed(() => store.currentLayout()?.layout?.type || null),
1169
1189
  //#endregion
1170
- //#region ---- Table Layout Configuration ----
1171
- tableLayoutConfig: computed(() => store.reportDefinition()?.layout?.type === 'table'
1172
- ? store.reportDefinition()?.layout
1173
- : null),
1190
+ //#region ---- Layout-Specific Configurations ----
1191
+ tableLayoutConfig: computed(() => {
1192
+ const layout = store.currentLayout();
1193
+ return layout?.layout?.type === 'table'
1194
+ ? layout.layout
1195
+ : null;
1196
+ }),
1197
+ chartLayoutConfig: computed(() => {
1198
+ const layout = store.currentLayout();
1199
+ return layout?.layout?.type === 'chart'
1200
+ ? layout.layout
1201
+ : null;
1202
+ }),
1174
1203
  //#endregion
1175
1204
  //#region ---- State Indicators ----
1176
1205
  isLoading: computed(() => store.status() === AXPPageStatus.Processing),
1177
1206
  isExecuting: computed(() => store.status() === AXPPageStatus.Submitting),
1178
- hasData: computed(() => store.reportData().length > 0),
1179
1207
  hasError: computed(() => store.error() !== null),
1208
+ hasMultipleLayouts: computed(() => {
1209
+ const report = store.reportDefinition();
1210
+ return (report?.layouts?.length ?? 0) > 1;
1211
+ }),
1180
1212
  title: computed(() => store.reportDefinition()?.title ?? 'Report Viewer'),
1181
1213
  description: computed(() => store.reportDefinition()?.description ?? null),
1182
1214
  //#endregion
@@ -1201,184 +1233,200 @@ const AXPReportViewerViewModel = signalStore(withState(() => ({
1201
1233
  };
1202
1234
  }),
1203
1235
  //#endregion
1204
- //#region ---- Data Source ----
1205
- dataSource: computed(() => new AXDataSource({
1206
- load: async () => {
1207
- debugger;
1208
- const data = store.reportData();
1209
- return {
1210
- items: data,
1211
- total: store.totalRecords()
1212
- };
1213
- },
1214
- pageSize: store.pageSize(),
1215
- key: 'id'
1216
- }))
1236
+ //#region ---- Layout Type Detection ----
1237
+ isTableLayout: computed(() => store.currentLayout()?.layout?.type === 'table'),
1238
+ isChartLayout: computed(() => store.currentLayout()?.layout?.type === 'chart'),
1217
1239
  //#endregion
1218
- })), withComputed((store) => ({
1219
- //#region ---- Derived Layout Properties ----
1220
- isTableLayout: computed(() => store.layoutType() === 'table'),
1221
- isChartLayout: computed(() => store.layoutType() === 'chart'),
1222
- isCardsLayout: computed(() => store.layoutType() === 'cards'),
1223
- isCustomLayout: computed(() => store.layoutType() === 'custom'),
1224
- columns: computed(() => {
1225
- const layout = store.tableLayoutConfig();
1226
- return layout?.columns?.map((col) => ({
1227
- field: col.field,
1228
- title: col.title || col.field,
1229
- width: col.width || '150px',
1230
- visible: col.visible !== false,
1231
- align: col.align || 'left',
1232
- widget: col.widget
1233
- })) || [];
1234
- }),
1235
- paginationEnabled: computed(() => {
1236
- const layout = store.tableLayoutConfig();
1237
- return layout?.options?.pagination !== false;
1240
+ //#region ---- Action States ----
1241
+ canExecute: computed(() => store.reportDefinition() !== null &&
1242
+ store.currentLayout() !== null &&
1243
+ store.status() !== AXPPageStatus.Processing &&
1244
+ store.status() !== AXPPageStatus.Submitting),
1245
+ canSwitchLayout: computed(() => (store.reportDefinition()?.layouts?.length ?? 0) > 1 &&
1246
+ store.status() !== AXPPageStatus.Submitting),
1247
+ canSelectRows: computed(() => {
1248
+ const layout = store.currentLayout();
1249
+ return layout?.layout?.type === 'table' &&
1250
+ layout.layout.options?.selectable?.mode &&
1251
+ layout.layout.options?.selectable?.mode !== 'none';
1238
1252
  }),
1239
- canExecute: computed(() => store.reportDefinition() !== null && !store.isLoading() && !store.isExecuting()),
1240
1253
  //#endregion
1241
- })), withMethods((store, reportDefinitionService = inject(AXPReportDefinitionService), commandService = inject(AXPCommandService)) => ({
1242
- //#region ---- Report Loading ----
1243
- async loadReport(reportId) {
1254
+ })), withMethods((store, reportDefinitionService = inject(AXPReportDefinitionService), commandService = inject(AXPCommandService)) => {
1255
+ const executeReport = async () => {
1256
+ const report = store.reportDefinition();
1257
+ const layout = store.currentLayout();
1258
+ if (!report || !layout)
1259
+ return;
1260
+ patchState(store, {
1261
+ status: AXPPageStatus.Submitting,
1262
+ error: null
1263
+ });
1264
+ patchState(store, {
1265
+ allowFetchData: true
1266
+ });
1267
+ patchState(store, {
1268
+ status: AXPPageStatus.Submitted,
1269
+ error: null
1270
+ });
1271
+ };
1272
+ const fetchData = async (parameters = {}) => {
1273
+ const report = store.reportDefinition();
1274
+ const layout = store.currentLayout();
1275
+ if (!report || !layout) {
1276
+ return null;
1277
+ }
1244
1278
  patchState(store, {
1245
1279
  status: AXPPageStatus.Processing,
1246
1280
  error: null
1247
1281
  });
1248
1282
  try {
1249
- const report = await reportDefinitionService.getReportById(reportId);
1250
- if (report) {
1251
- // Configure parameter widgets with proper paths
1252
- report.parameterGroups.forEach(group => {
1253
- group.parameters.forEach(param => {
1254
- param.widget.path = param.path;
1255
- });
1256
- });
1257
- // Load categories path for breadcrumbs
1258
- const categoriesPath = await reportDefinitionService.getCategoriesPathByReportId(reportId);
1259
- patchState(store, {
1260
- reportDefinition: report,
1261
- categoriesPath: categoriesPath || [],
1262
- reportData: [],
1263
- totalRecords: 0,
1264
- currentPage: 1,
1265
- filterContext: {}, // Reset context when loading new report
1266
- previousFilterContext: {}
1267
- });
1268
- }
1283
+ // Create execution context - ensure dataSource is provided
1284
+ const dataSource = layout.dataSource || {
1285
+ type: 'query',
1286
+ name: 'getEmployeeList'
1287
+ };
1288
+ const context = {
1289
+ reportId: report.id,
1290
+ layoutId: layout.id,
1291
+ dataSource: dataSource,
1292
+ parameters: {
1293
+ ...store.filterContext(),
1294
+ ...parameters
1295
+ }
1296
+ };
1297
+ return await commandService.execute('ReportManagement.Report:Execute', context);
1269
1298
  }
1270
1299
  catch (error) {
1271
1300
  patchState(store, {
1272
- error: 'Failed to load report definition'
1301
+ error: 'Failed to execute report',
1273
1302
  });
1274
- console.error('Error loading report:', error);
1303
+ console.error('Error executing report:', error);
1304
+ return null;
1275
1305
  }
1276
1306
  finally {
1277
1307
  patchState(store, {
1278
1308
  status: AXPPageStatus.Idle
1279
1309
  });
1280
1310
  }
1281
- },
1282
- //#endregion
1283
- //#region ---- Data Execution ----
1284
- async executeReport() {
1285
- const report = store.reportDefinition();
1286
- if (!report)
1287
- return;
1288
- patchState(store, {
1289
- status: AXPPageStatus.Submitting,
1290
- error: null
1291
- });
1292
- try {
1293
- const result = await commandService.execute('ReportManagement.Report:Execute', {
1294
- reportId: report.id,
1295
- parameters: store.filterContext(),
1296
- page: store.currentPage(),
1297
- pageSize: store.pageSize()
1311
+ };
1312
+ return {
1313
+ //#region ---- Report Loading ----
1314
+ async loadReport(reportId) {
1315
+ patchState(store, {
1316
+ status: AXPPageStatus.Processing,
1317
+ error: null
1298
1318
  });
1319
+ try {
1320
+ const report = await reportDefinitionService.getReportById(reportId);
1321
+ if (report) {
1322
+ console.log('report', report);
1323
+ // Configure parameter widgets with proper paths
1324
+ report.parameterGroups.forEach(group => {
1325
+ group.parameters.forEach(param => {
1326
+ param.widget.path = param.path;
1327
+ });
1328
+ });
1329
+ // Load categories path for breadcrumbs
1330
+ const categoriesPath = await reportDefinitionService.getCategoriesPathByReportId(reportId);
1331
+ // Set default layout
1332
+ const defaultLayout = report.layouts.find(l => l.isDefault) || report.layouts[0];
1333
+ patchState(store, {
1334
+ reportDefinition: report,
1335
+ currentLayout: defaultLayout,
1336
+ categoriesPath: categoriesPath || [],
1337
+ filterContext: {}, // Reset context when loading new report
1338
+ allowFetchData: false,
1339
+ });
1340
+ }
1341
+ }
1342
+ catch (error) {
1343
+ patchState(store, {
1344
+ error: 'Failed to load report definition'
1345
+ });
1346
+ console.error('Error loading report:', error);
1347
+ }
1348
+ finally {
1349
+ patchState(store, {
1350
+ status: AXPPageStatus.Idle
1351
+ });
1352
+ }
1353
+ },
1354
+ //#endregion
1355
+ //#region ---- Layout Management ----
1356
+ switchLayout(layoutId) {
1357
+ const report = store.reportDefinition();
1358
+ if (!report)
1359
+ return;
1360
+ const layout = report.layouts.find(l => l.id === layoutId);
1361
+ if (layout) {
1362
+ patchState(store, {
1363
+ currentLayout: layout,
1364
+ });
1365
+ }
1366
+ },
1367
+ //#endregion
1368
+ //#region ---- Data Execution ----
1369
+ executeReport,
1370
+ fetchData,
1371
+ //#endregion
1372
+ //#region ---- Filter Management ----
1373
+ updateFilterContext(context) {
1299
1374
  patchState(store, {
1300
- showResults: true,
1301
- reportData: result.data || [],
1302
- totalRecords: result.total || 0,
1303
- previousFilterContext: { ...store.filterContext() }
1375
+ filterContext: { ...store.filterContext(), ...context },
1304
1376
  });
1305
- }
1306
- catch (error) {
1377
+ },
1378
+ clearFilters() {
1307
1379
  patchState(store, {
1308
- error: 'Failed to execute report',
1309
- showResults: false,
1380
+ allowFetchData: false,
1381
+ filterContext: {},
1310
1382
  });
1311
- console.error('Error executing report:', error);
1312
- }
1313
- finally {
1383
+ },
1384
+ resetFilters() {
1314
1385
  patchState(store, {
1315
- status: AXPPageStatus.Idle
1386
+ allowFetchData: false
1387
+ });
1388
+ },
1389
+ //#endregion
1390
+ //#region ---- Export Management ----
1391
+ async exportReport(format) {
1392
+ const layout = store.currentLayout();
1393
+ if (!layout?.export) {
1394
+ console.warn('Export not configured for current layout');
1395
+ return;
1396
+ }
1397
+ try {
1398
+ // Export logic would go here
1399
+ // This would typically call a different command for export
1400
+ console.log(`Exporting report in ${format} format`);
1401
+ }
1402
+ catch (error) {
1403
+ console.error('Error exporting report:', error);
1404
+ }
1405
+ },
1406
+ //#endregion
1407
+ //#region ---- Utility Methods ----
1408
+ refresh() {
1409
+ return executeReport();
1410
+ },
1411
+ clearError() {
1412
+ patchState(store, {
1413
+ error: null
1414
+ });
1415
+ },
1416
+ reset() {
1417
+ patchState(store, {
1418
+ reportDefinition: null,
1419
+ currentLayout: null,
1420
+ filterContext: {},
1421
+ allowFetchData: false,
1422
+ categoriesPath: [],
1423
+ status: AXPPageStatus.Idle,
1424
+ error: null,
1316
1425
  });
1317
1426
  }
1318
- },
1319
- //#endregion
1320
- //#region ---- Filter Management ----
1321
- updateFilterContext(context) {
1322
- patchState(store, {
1323
- filterContext: { ...store.filterContext(), ...context },
1324
- });
1325
- },
1326
- clearFilters() {
1327
- patchState(store, {
1328
- filterContext: {},
1329
- reportData: [],
1330
- totalRecords: 0,
1331
- currentPage: 1
1332
- });
1333
- },
1334
- resetFilters() {
1335
- patchState(store, {
1336
- filterContext: { ...store.previousFilterContext() }
1337
- });
1338
- },
1339
- //#endregion
1340
- //#region ---- Pagination ----
1341
- changePage(page) {
1342
- patchState(store, {
1343
- currentPage: page
1344
- });
1345
- // Call executeReport method
1346
- this.executeReport();
1347
- },
1348
- changePageSize(pageSize) {
1349
- patchState(store, {
1350
- pageSize: pageSize,
1351
- currentPage: 1
1352
- });
1353
- // Call executeReport method
1354
- this.executeReport();
1355
- },
1356
- //#endregion
1357
- //#region ---- Utility Methods ----
1358
- refresh() {
1359
- // Call executeReport method
1360
- this.executeReport();
1361
- },
1362
- clearError() {
1363
- patchState(store, {
1364
- error: null
1365
- });
1366
- },
1367
- reset() {
1368
- patchState(store, {
1369
- reportDefinition: null,
1370
- reportData: [],
1371
- filterContext: {},
1372
- previousFilterContext: {},
1373
- categoriesPath: [],
1374
- status: AXPPageStatus.Idle,
1375
- totalRecords: 0,
1376
- currentPage: 1,
1377
- error: null
1378
- });
1379
- }
1380
- //#endregion
1381
- })), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({
1427
+ //#endregion
1428
+ };
1429
+ }), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({
1382
1430
  async onInit() {
1383
1431
  // Subscribe to language and locale changes
1384
1432
  translationService.langChanges$.subscribe(() => {
@@ -1397,31 +1445,109 @@ class AXPReportTableViewComponent {
1397
1445
  constructor() {
1398
1446
  //#region ---- Dependencies ----
1399
1447
  this.vm = inject(AXPReportViewerViewModel);
1448
+ this.commandService = inject(AXPCommandService);
1449
+ this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: "grid" }] : []));
1400
1450
  //#endregion
1401
- //#region ---- Outputs ----
1402
- this.rowClick = output();
1403
- this.actionClick = output();
1451
+ //#region ---- Computed Properties ----
1452
+ this.layout = computed(() => {
1453
+ return this.vm.currentLayout()?.layout;
1454
+ }, ...(ngDevMode ? [{ debugName: "layout" }] : []));
1455
+ this.#fetchData = effect(() => {
1456
+ if (this.grid() && this.vm.allowFetchData()) {
1457
+ this.grid()?.refresh();
1458
+ }
1459
+ }, ...(ngDevMode ? [{ debugName: "#fetchData" }] : []));
1460
+ this.dataSource = new AXDataSource({
1461
+ load: async (e) => {
1462
+ if (!this.vm.allowFetchData()) {
1463
+ return { items: [], total: 0 };
1464
+ }
1465
+ const result = await this.vm.fetchData(e);
1466
+ if (!result?.data || result.data.type !== 'table') {
1467
+ console.error('invalid table result');
1468
+ return { items: [], total: 0 };
1469
+ }
1470
+ ;
1471
+ let items = result.data.items ?? [];
1472
+ let total = result.data.total || 0;
1473
+ return { items, total };
1474
+ },
1475
+ pageSize: 10,
1476
+ key: 'id'
1477
+ });
1478
+ this.columns = computed(() => {
1479
+ return this.layout().columns?.map((col) => ({
1480
+ field: col.field,
1481
+ title: col.title || col.field,
1482
+ width: col.width || '150px',
1483
+ visible: col.visible !== false,
1484
+ align: col.align || 'left',
1485
+ widget: { ...col.widget, path: col.field }
1486
+ })) || [];
1487
+ }, ...(ngDevMode ? [{ debugName: "columns" }] : []));
1488
+ this.paginationEnabled = computed(() => {
1489
+ return this.layout().options?.pagination !== false;
1490
+ }, ...(ngDevMode ? [{ debugName: "paginationEnabled" }] : []));
1491
+ this.primaryRowAction = computed(() => {
1492
+ return this.layout().actions?.filter(a => a.priority === 'primary')?.map(a => this.convertToRowCommandItem(a)) || [];
1493
+ }, ...(ngDevMode ? [{ debugName: "primaryRowAction" }] : []));
1494
+ this.hasPrimaryRowAction = computed(() => {
1495
+ return this.primaryRowAction().length > 0;
1496
+ }, ...(ngDevMode ? [{ debugName: "hasPrimaryRowAction" }] : []));
1497
+ this.secondaryRowAction = computed(() => {
1498
+ return this.layout().actions?.filter(a => a.priority === 'secondary')?.map(a => this.convertToRowCommandItem(a)) || [];
1499
+ }, ...(ngDevMode ? [{ debugName: "secondaryRowAction" }] : []));
1500
+ this.hasSecondaryRowAction = computed(() => {
1501
+ return this.secondaryRowAction().length > 0;
1502
+ }, ...(ngDevMode ? [{ debugName: "hasSecondaryRowAction" }] : []));
1503
+ this.defaultRowAction = computed(() => {
1504
+ const defaultAction = this.layout().actions?.find(a => a.default);
1505
+ if (!defaultAction) {
1506
+ return null;
1507
+ }
1508
+ return this.convertToRowCommandItem(defaultAction);
1509
+ }, ...(ngDevMode ? [{ debugName: "defaultRowAction" }] : []));
1404
1510
  }
1405
1511
  //#endregion
1406
1512
  //#region ---- Event Handlers ----
1407
1513
  handleRowClick(event) {
1408
- this.rowClick.emit(event);
1514
+ this.handleRowAction(event.name, event.data);
1515
+ }
1516
+ handleDbRowClick(event) {
1517
+ if (this.defaultRowAction()) {
1518
+ this.handleRowAction(this.defaultRowAction().name, event.data);
1519
+ }
1520
+ }
1521
+ handleRowAction(name, data) {
1522
+ console.log('row action', name, data);
1409
1523
  }
1524
+ #fetchData;
1410
1525
  //#endregion
1411
- //#region ---- Utility Methods ----
1412
- getStatusColor(status) {
1413
- switch (status?.toLowerCase()) {
1414
- case 'active': return 'success';
1415
- case 'pending': return 'warning';
1416
- case 'completed': return 'primary';
1417
- case 'inactive': return 'danger';
1418
- default: return 'secondary';
1526
+ //#region ---- Helpers ----
1527
+ convertToRowCommandItem(action) {
1528
+ const systemAction = getSystemActions(action.type);
1529
+ if (!systemAction) {
1530
+ return {
1531
+ icon: action.icon ?? 'fa-light fa-eye',
1532
+ text: action.title,
1533
+ name: action.name,
1534
+ divided: action.break,
1535
+ color: action.color,
1536
+ };
1419
1537
  }
1538
+ const defaultAction = applySystemActionDefault(action, systemAction.key);
1539
+ return {
1540
+ icon: defaultAction.icon ?? 'fa-light fa-eye',
1541
+ text: defaultAction.title,
1542
+ name: defaultAction.name,
1543
+ divided: defaultAction.break,
1544
+ color: defaultAction.color,
1545
+ };
1420
1546
  }
1421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportTableViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1422
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPReportTableViewComponent, isStandalone: true, selector: "axp-report-table-view", outputs: { rowClick: "rowClick", actionClick: "actionClick" }, host: { classAttribute: "axp-report-table-view" }, ngImport: i0, template: "<ng-container *translate=\"let t\">\n @if (vm.isLoading()) {\n <!-- Loading State -->\n <div class=\"__loading-state\">\n <ax-loading></ax-loading>\n <p class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading') | async }}\n </p>\n </div>\n } @else if (vm.hasError()) {\n <!-- Error State -->\n <div class=\"__error-state\">\n <div class=\"__error-content\">\n <div class=\"__error-icon\">\n <ax-icon class=\"fa-light fa-exclamation-triangle\"></ax-icon>\n </div>\n <div class=\"__error-message\">\n {{ vm.error() || (t('@report-management:features.report-viewer.error') | async) }}\n </div>\n </div>\n </div>\n } @else if (!vm.hasData()) {\n <!-- No Data State -->\n <div class=\"__no-data-state\">\n <div class=\"__no-data-content\">\n <div class=\"__no-data-icon\">\n <ax-icon class=\"fa-light fa-table\"></ax-icon>\n </div>\n <div class=\"__no-data-title\">\n {{ t('@report-management:features.report-viewer.no-data.title') | async }}\n </div>\n <div class=\"__no-data-description\">\n {{ t('@report-management:features.report-viewer.no-data.description') | async }}\n </div>\n </div>\n </div>\n } @else {\n <!-- Data Table -->\n <ax-data-table\n [dataSource]=\"vm.dataSource()\"\n [paging]=\"vm.paginationEnabled()\"\n [loading]=\"{ enabled: true, animation: true }\"\n (onRowClick)=\"handleRowClick($event)\"\n class=\"ax-flex-1\"\n >\n <!-- Dynamic columns based on configuration -->\n @for (column of vm.columns(); track column.field) {\n @if (column.visible) {\n <ax-text-column [dataField]=\"column.field\" [caption]=\"column.title\" [width]=\"column.width\"> </ax-text-column>\n }\n }\n </ax-data-table>\n }\n</ng-container>\n", styles: [".axp-report-table-view{display:flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-report-table-view .__loading-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-table-view .__loading-state ax-loading{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__loading-state .__loading-text{max-width:28rem;text-align:center;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__error-state{display:flex;height:100%;align-items:center;justify-content:center;padding:2rem}.axp-report-table-view .__error-state .__error-content{display:flex;max-width:28rem;flex-direction:column;align-items:center;gap:1rem;text-align:center}.axp-report-table-view .__error-state .__error-content .__error-icon{margin-bottom:.5rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__error-state .__error-content .__error-message{font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__no-data-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-table-view .__no-data-state .__no-data-content{max-width:28rem}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-icon{margin-bottom:1rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-description{font-size:.875rem;line-height:1.25rem;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i2.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1547
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportTableViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1548
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPReportTableViewComponent, isStandalone: true, selector: "axp-report-table-view", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n @if (vm.canSelectRows()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <axp-widget-column-renderer\n [customWidth]=\"column.width + 'px'\"\n [caption]=\"(column.title | translate | async)!\"\n [node]=\"column.widget!\"\n ></axp-widget-column-renderer>\n }\n }\n @if (hasPrimaryRowAction()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"'100px'\"\n [items]=\"primaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-command-column>\n }\n @if (hasSecondaryRowAction()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"secondaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-dropdown-command-column>\n }\n</ax-data-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$1.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i1$1.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i1$1.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i1$1.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i2.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1423
1549
  }
1424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportTableViewComponent, decorators: [{
1550
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportTableViewComponent, decorators: [{
1425
1551
  type: Component,
1426
1552
  args: [{ selector: 'axp-report-table-view', standalone: true, imports: [
1427
1553
  CommonModule,
@@ -1430,9 +1556,128 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1430
1556
  AXDecoratorModule,
1431
1557
  AXTranslationModule,
1432
1558
  AXPLayoutBuilderModule
1433
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1434
- class: 'axp-report-table-view'
1435
- }, template: "<ng-container *translate=\"let t\">\n @if (vm.isLoading()) {\n <!-- Loading State -->\n <div class=\"__loading-state\">\n <ax-loading></ax-loading>\n <p class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading') | async }}\n </p>\n </div>\n } @else if (vm.hasError()) {\n <!-- Error State -->\n <div class=\"__error-state\">\n <div class=\"__error-content\">\n <div class=\"__error-icon\">\n <ax-icon class=\"fa-light fa-exclamation-triangle\"></ax-icon>\n </div>\n <div class=\"__error-message\">\n {{ vm.error() || (t('@report-management:features.report-viewer.error') | async) }}\n </div>\n </div>\n </div>\n } @else if (!vm.hasData()) {\n <!-- No Data State -->\n <div class=\"__no-data-state\">\n <div class=\"__no-data-content\">\n <div class=\"__no-data-icon\">\n <ax-icon class=\"fa-light fa-table\"></ax-icon>\n </div>\n <div class=\"__no-data-title\">\n {{ t('@report-management:features.report-viewer.no-data.title') | async }}\n </div>\n <div class=\"__no-data-description\">\n {{ t('@report-management:features.report-viewer.no-data.description') | async }}\n </div>\n </div>\n </div>\n } @else {\n <!-- Data Table -->\n <ax-data-table\n [dataSource]=\"vm.dataSource()\"\n [paging]=\"vm.paginationEnabled()\"\n [loading]=\"{ enabled: true, animation: true }\"\n (onRowClick)=\"handleRowClick($event)\"\n class=\"ax-flex-1\"\n >\n <!-- Dynamic columns based on configuration -->\n @for (column of vm.columns(); track column.field) {\n @if (column.visible) {\n <ax-text-column [dataField]=\"column.field\" [caption]=\"column.title\" [width]=\"column.width\"> </ax-text-column>\n }\n }\n </ax-data-table>\n }\n</ng-container>\n", styles: [".axp-report-table-view{display:flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-report-table-view .__loading-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-table-view .__loading-state ax-loading{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__loading-state .__loading-text{max-width:28rem;text-align:center;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-table-view .__error-state{display:flex;height:100%;align-items:center;justify-content:center;padding:2rem}.axp-report-table-view .__error-state .__error-content{display:flex;max-width:28rem;flex-direction:column;align-items:center;gap:1rem;text-align:center}.axp-report-table-view .__error-state .__error-content .__error-icon{margin-bottom:.5rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__error-state .__error-content .__error-message{font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-500),var(--tw-text-opacity, 1))}.axp-report-table-view .__no-data-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-table-view .__no-data-state .__no-data-content{max-width:28rem}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-icon{margin-bottom:1rem;font-size:3rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-table-view .__no-data-state .__no-data-content .__no-data-description{font-size:.875rem;line-height:1.25rem;opacity:.75}\n"] }]
1559
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n @if (vm.canSelectRows()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <axp-widget-column-renderer\n [customWidth]=\"column.width + 'px'\"\n [caption]=\"(column.title | translate | async)!\"\n [node]=\"column.widget!\"\n ></axp-widget-column-renderer>\n }\n }\n @if (hasPrimaryRowAction()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"'100px'\"\n [items]=\"primaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-command-column>\n }\n @if (hasSecondaryRowAction()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"secondaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-dropdown-command-column>\n }\n</ax-data-table>\n" }]
1560
+ }] });
1561
+
1562
+ class AXPReportChartViewComponent {
1563
+ constructor() {
1564
+ //#region ---- Dependencies ----
1565
+ this.vm = inject(AXPReportViewerViewModel);
1566
+ this.AXPPageStatus = AXPPageStatus;
1567
+ //#endregion
1568
+ //#region ---- Computed Properties ----
1569
+ /**
1570
+ * Current chart layout configuration
1571
+ */
1572
+ this.chartLayout = computed(() => {
1573
+ const layout = this.vm.currentLayout();
1574
+ return layout?.layout.type === 'chart'
1575
+ ? layout.layout
1576
+ : null;
1577
+ }, ...(ngDevMode ? [{ debugName: "chartLayout" }] : []));
1578
+ /**
1579
+ * Chart configuration options
1580
+ */
1581
+ this.chartOptions = computed(() => {
1582
+ const chartLayout = this.chartLayout();
1583
+ return chartLayout?.options || null;
1584
+ }, ...(ngDevMode ? [{ debugName: "chartOptions" }] : []));
1585
+ /**
1586
+ * Chart type for rendering
1587
+ */
1588
+ this.chartType = computed(() => {
1589
+ const options = this.chartOptions();
1590
+ return options?.chartType || 'bar';
1591
+ }, ...(ngDevMode ? [{ debugName: "chartType" }] : []));
1592
+ /**
1593
+ * Data mapping configuration
1594
+ */
1595
+ this.dataMapping = computed(() => {
1596
+ const options = this.chartOptions();
1597
+ return options?.dataMapping || null;
1598
+ }, ...(ngDevMode ? [{ debugName: "dataMapping" }] : []));
1599
+ //#endregion
1600
+ //#region ---- Effects ----
1601
+ /**
1602
+ * Effect to handle data fetching when chart configuration changes
1603
+ */
1604
+ this.#fetchData = effect(() => {
1605
+ if (this.vm.allowFetchData() && this.chartOptions()) {
1606
+ // TODO: Implement chart data fetching
1607
+ console.log('Chart data fetch triggered', {
1608
+ chartType: this.chartType(),
1609
+ dataMapping: this.dataMapping()
1610
+ });
1611
+ this.vm.fetchData().then((data) => {
1612
+ const donutChartData = AXPieChartReportMapper((data?.data).data ?? {});
1613
+ this.donutChartData.set(donutChartData);
1614
+ console.log('donutChartData', donutChartData);
1615
+ });
1616
+ }
1617
+ }, ...(ngDevMode ? [{ debugName: "#fetchData" }] : []));
1618
+ this.donutChartData = signal([], ...(ngDevMode ? [{ debugName: "donutChartData" }] : []));
1619
+ this.donutChartOptions = signal({
1620
+ totalLabel: 'Total',
1621
+ showTooltip: true
1622
+ }, ...(ngDevMode ? [{ debugName: "donutChartOptions" }] : []));
1623
+ this.legendOptions = signal({
1624
+ mode: 'horizontal',
1625
+ }, ...(ngDevMode ? [{ debugName: "legendOptions" }] : []));
1626
+ }
1627
+ //#endregion
1628
+ //#region ---- Effects ----
1629
+ /**
1630
+ * Effect to handle data fetching when chart configuration changes
1631
+ */
1632
+ #fetchData;
1633
+ //#endregion
1634
+ //#region ---- Event Handlers ----
1635
+ /**
1636
+ * Handle chart click events
1637
+ */
1638
+ handleChartClick(event) {
1639
+ // TODO: Implement chart click handling
1640
+ console.log('Chart clicked:', event);
1641
+ }
1642
+ /**
1643
+ * Handle chart data point selection
1644
+ */
1645
+ handleDataPointSelect(event) {
1646
+ // TODO: Implement data point selection
1647
+ console.log('Data point selected:', event);
1648
+ }
1649
+ //#endregion
1650
+ //#region ---- Helper Methods ----
1651
+ /**
1652
+ * Check if chart is ready to render
1653
+ */
1654
+ isChartReady() {
1655
+ return !!(this.chartOptions() && this.dataMapping());
1656
+ }
1657
+ /**
1658
+ * Get chart configuration for rendering
1659
+ */
1660
+ getChartConfig() {
1661
+ // TODO: Transform AXPReportChartOptions to chart library format
1662
+ return {
1663
+ type: this.chartType(),
1664
+ options: this.chartOptions(),
1665
+ dataMapping: this.dataMapping()
1666
+ };
1667
+ }
1668
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportChartViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1669
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPReportChartViewComponent, isStandalone: true, selector: "axp-report-chart-view", ngImport: i0, template: "<div class=\"axp-report-chart-view\" *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading\">\n <div\n class=\"ax-spinner ax-spin ax-border-4 ax-border-gray-200 ax-border-t-primary ax-rounded-full ax-w-12 ax-h-12\"\n ></div>\n <div class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading.chart') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <div class=\"__error\">\n <div class=\"__error-icon\">\n <i class=\"fa-light fa-exclamation-triangle\"></i>\n </div>\n <div class=\"__error-content\">\n <h4 class=\"__error-title\">\n {{ t('@report-management:features.report-viewer.error.title') | async }}\n </h4>\n <p class=\"__error-description\">\n {{ vm.error() || t('@report-management:features.report-viewer.error.generic') | async }}\n </p>\n </div>\n </div>\n } @else if (isChartReady()) {\n <!-- Chart Content -->\n <div class=\"__chart-container\">\n @if (chartLayout()?.header) {\n <div class=\"__chart-header\">\n <h3 class=\"__chart-title\">{{ chartLayout()?.header?.title }}</h3>\n @if (chartLayout()?.header?.showDate) {\n <div class=\"__chart-date\">{{ 'common.date.today' | translate | async }}</div>\n }\n </div>\n }\n\n <div class=\"__chart-body\">\n <!-- Chart component will be rendered here -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-content\">\n <div\n class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-center ax-gap-10\"\n [class]=\"legendOptions().mode === 'horizontal' ? 'ax-flex-col' : 'ax-flex-row'\"\n >\n <!-- Chart Area -->\n <div class=\"ax-flex-0 ax-size-96\">\n <ax-donut-chart #chart [data]=\"donutChartData()\" [options]=\"donutChartOptions()\"></ax-donut-chart>\n </div>\n <!-- Legend Area -->\n @if (donutChartData().length > 0) {\n <div>\n <ax-chart-legend [options]=\"legendOptions()\" [chart]=\"chart\"></ax-chart-legend>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n\n @if (chartLayout()?.footer) {\n <div class=\"__chart-footer\">\n @if (chartLayout()?.footer?.customHtml) {\n <div [innerHTML]=\"chartLayout()?.footer?.customHtml\"></div>\n }\n </div>\n }\n </div>\n } @else {\n <!-- No Configuration State -->\n <div class=\"__no-config\">\n <div class=\"__no-config-icon\">\n <i class=\"fa-light fa-chart-line\"></i>\n </div>\n <div class=\"__no-config-content\">\n <h4 class=\"__no-config-title\">\n {{ t('@report-management:features.report-viewer.chart.no-config.title') | async }}\n </h4>\n <p class=\"__no-config-description\">\n {{ t('@report-management:features.report-viewer.chart.no-config.description') | async }}\n </p>\n </div>\n </div>\n }\n</div>\n", styles: [".axp-report-chart-view{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-chart-view .__loading{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-chart-view .__loading .__loading-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-chart-view .__chart-container .__chart-header{border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.axp-report-chart-view .__chart-container .__chart-header .__chart-title{margin:0;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__chart-container .__chart-header .__chart-date{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container .__chart-body{flex:1 1 0%;overflow:hidden}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-icon{font-size:3.75rem;line-height:1;color:rgba(var(--ax-sys-color-primary-500),.2)}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content{max-width:28rem}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content .__placeholder-description{margin-bottom:1rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container .__chart-body .__chart-content{height:100%;width:100%}.axp-report-chart-view .__chart-container .__chart-footer{border-top-width:1px;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}.axp-report-chart-view .__error .__error-icon{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error .__error-content{max-width:28rem}.axp-report-chart-view .__error .__error-content .__error-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error .__error-content .__error-description{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__no-config{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}.axp-report-chart-view .__no-config .__no-config-icon{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__no-config .__no-config-content{max-width:28rem}.axp-report-chart-view .__no-config .__no-config-content .__no-config-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__no-config .__no-config-content .__no-config-description{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i1$3.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: AXDonutChartComponent, selector: "ax-donut-chart", inputs: ["data", "options"], outputs: ["segmentClick", "segmentHover"] }, { kind: "component", type: AXChartLegendComponent, selector: "ax-chart-legend", inputs: ["chart", "options"], outputs: ["itemClick", "itemMouseEnter", "itemMouseLeave"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1670
+ }
1671
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportChartViewComponent, decorators: [{
1672
+ type: Component,
1673
+ args: [{ selector: 'axp-report-chart-view', standalone: true, imports: [
1674
+ CommonModule,
1675
+ AXDecoratorModule,
1676
+ AXTranslationModule,
1677
+ AXPLayoutBuilderModule,
1678
+ AXDonutChartComponent,
1679
+ AXChartLegendComponent
1680
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"axp-report-chart-view\" *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading\">\n <div\n class=\"ax-spinner ax-spin ax-border-4 ax-border-gray-200 ax-border-t-primary ax-rounded-full ax-w-12 ax-h-12\"\n ></div>\n <div class=\"__loading-text\">\n {{ t('@report-management:features.report-viewer.loading.chart') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <div class=\"__error\">\n <div class=\"__error-icon\">\n <i class=\"fa-light fa-exclamation-triangle\"></i>\n </div>\n <div class=\"__error-content\">\n <h4 class=\"__error-title\">\n {{ t('@report-management:features.report-viewer.error.title') | async }}\n </h4>\n <p class=\"__error-description\">\n {{ vm.error() || t('@report-management:features.report-viewer.error.generic') | async }}\n </p>\n </div>\n </div>\n } @else if (isChartReady()) {\n <!-- Chart Content -->\n <div class=\"__chart-container\">\n @if (chartLayout()?.header) {\n <div class=\"__chart-header\">\n <h3 class=\"__chart-title\">{{ chartLayout()?.header?.title }}</h3>\n @if (chartLayout()?.header?.showDate) {\n <div class=\"__chart-date\">{{ 'common.date.today' | translate | async }}</div>\n }\n </div>\n }\n\n <div class=\"__chart-body\">\n <!-- Chart component will be rendered here -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-content\">\n <div\n class=\"ax-flex ax-flex-wrap ax-items-center ax-justify-center ax-gap-10\"\n [class]=\"legendOptions().mode === 'horizontal' ? 'ax-flex-col' : 'ax-flex-row'\"\n >\n <!-- Chart Area -->\n <div class=\"ax-flex-0 ax-size-96\">\n <ax-donut-chart #chart [data]=\"donutChartData()\" [options]=\"donutChartOptions()\"></ax-donut-chart>\n </div>\n <!-- Legend Area -->\n @if (donutChartData().length > 0) {\n <div>\n <ax-chart-legend [options]=\"legendOptions()\" [chart]=\"chart\"></ax-chart-legend>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n\n @if (chartLayout()?.footer) {\n <div class=\"__chart-footer\">\n @if (chartLayout()?.footer?.customHtml) {\n <div [innerHTML]=\"chartLayout()?.footer?.customHtml\"></div>\n }\n </div>\n }\n </div>\n } @else {\n <!-- No Configuration State -->\n <div class=\"__no-config\">\n <div class=\"__no-config-icon\">\n <i class=\"fa-light fa-chart-line\"></i>\n </div>\n <div class=\"__no-config-content\">\n <h4 class=\"__no-config-title\">\n {{ t('@report-management:features.report-viewer.chart.no-config.title') | async }}\n </h4>\n <p class=\"__no-config-description\">\n {{ t('@report-management:features.report-viewer.chart.no-config.description') | async }}\n </p>\n </div>\n </div>\n }\n</div>\n", styles: [".axp-report-chart-view{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-chart-view .__loading{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.axp-report-chart-view .__loading .__loading-text{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-chart-view .__chart-container .__chart-header{border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.axp-report-chart-view .__chart-container .__chart-header .__chart-title{margin:0;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__chart-container .__chart-header .__chart-date{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container .__chart-body{flex:1 1 0%;overflow:hidden}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-icon{font-size:3.75rem;line-height:1;color:rgba(var(--ax-sys-color-primary-500),.2)}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content{max-width:28rem}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__chart-container .__chart-body .__chart-placeholder .__placeholder-content .__placeholder-description{margin-bottom:1rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__chart-container .__chart-body .__chart-content{height:100%;width:100%}.axp-report-chart-view .__chart-container .__chart-footer{border-top-width:1px;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}.axp-report-chart-view .__error .__error-icon{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error .__error-content{max-width:28rem}.axp-report-chart-view .__error .__error-content .__error-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__error .__error-content .__error-description{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__no-config{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}.axp-report-chart-view .__no-config .__no-config-icon{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-report-chart-view .__no-config .__no-config-content{max-width:28rem}.axp-report-chart-view .__no-config .__no-config-content .__no-config-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-chart-view .__no-config .__no-config-content .__no-config-description{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}\n"] }]
1436
1681
  }] });
1437
1682
 
1438
1683
  class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
@@ -1446,11 +1691,11 @@ class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
1446
1691
  this.unsubscriber = inject(AXUnsubscriber);
1447
1692
  //#endregion
1448
1693
  //#region ---- Inputs ----
1449
- this.reportId = input();
1450
- this.reportParameters = input({});
1694
+ this.reportId = input(...(ngDevMode ? [undefined, { debugName: "reportId" }] : []));
1695
+ this.reportParameters = input({}, ...(ngDevMode ? [{ debugName: "reportParameters" }] : []));
1451
1696
  //#endregion
1452
1697
  //#region ---- ViewChildren ----
1453
- this.filtersForm = viewChild('filtersForm');
1698
+ this.filtersForm = viewChild('filtersForm', ...(ngDevMode ? [{ debugName: "filtersForm" }] : []));
1454
1699
  //#endregion
1455
1700
  //#region ---- ViewModel ----
1456
1701
  this.vm = inject(AXPReportViewerViewModel);
@@ -1489,13 +1734,6 @@ class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
1489
1734
  await this.loadReportAndRefresh(reportId);
1490
1735
  }
1491
1736
  });
1492
- // Initial load if reportId is available
1493
- const reportId = this.route.snapshot.paramMap.get('reportId') ||
1494
- this.route.snapshot.queryParamMap.get('reportId') ||
1495
- this.reportId();
1496
- if (reportId) {
1497
- await this.loadReportAndRefresh(reportId);
1498
- }
1499
1737
  }
1500
1738
  //#endregion
1501
1739
  //#region ---- Helper Methods ----
@@ -1544,14 +1782,6 @@ class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
1544
1782
  form.resetErrors();
1545
1783
  }
1546
1784
  }
1547
- handleRowClick(rowData) {
1548
- // Handle row click - can be extended for row details
1549
- console.log('Row clicked:', rowData);
1550
- }
1551
- handleActionClick(event) {
1552
- // Handle action click - can be extended for row actions
1553
- console.log('Action clicked:', event);
1554
- }
1555
1785
  //#endregion
1556
1786
  //#region ---- Page Configuration Overrides ----
1557
1787
  async getPageBreadcrumbs() {
@@ -1692,19 +1922,19 @@ class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
1692
1922
  break;
1693
1923
  }
1694
1924
  }
1695
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportViewerPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1696
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPReportViewerPageComponent, isStandalone: true, selector: "axp-report-viewer-page", inputs: { reportId: { classPropertyName: "reportId", publicName: "reportId", isSignal: true, isRequired: false, transformFunction: null }, reportParameters: { classPropertyName: "reportParameters", publicName: "reportParameters", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "axp-report-viewer-page" }, providers: [
1925
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportViewerPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1926
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPReportViewerPageComponent, isStandalone: true, selector: "axp-report-viewer-page", inputs: { reportId: { classPropertyName: "reportId", publicName: "reportId", isSignal: true, isRequired: false, transformFunction: null }, reportParameters: { classPropertyName: "reportParameters", publicName: "reportParameters", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "axp-report-viewer-page" }, providers: [
1697
1927
  AXUnsubscriber,
1698
1928
  AXPReportViewerViewModel,
1699
1929
  {
1700
1930
  provide: AXPPageLayoutBase,
1701
1931
  useExisting: AXPReportViewerPageComponent,
1702
1932
  },
1703
- ], viewQueries: [{ propertyName: "filtersForm", first: true, predicate: ["filtersForm"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form\n #filtersForm\n [formDefinition]=\"vm.formDefinition()\"\n [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\"\n [layoutStyle]=\"'compact'\"\n (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\"\n >\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n <axp-layout-footer class=\"ax-p-4 ax-border-t\">\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n class=\"ax-w-full\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\"\n [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-footer>\n </axp-layout-start-side>\n }\n <!-- Main Content: Report Display -->\n <axp-page-content>\n @if (!vm.reportDefinition()) {\n <ng-container *ngTemplateOutlet=\"noReport\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"reportDisplay\"></ng-container>\n }\n </axp-page-content>\n</axp-page-layout>\n\n<!-- Report Display Area -->\n<ng-template #reportDisplay>\n @if (vm.isTableLayout()) {\n <axp-report-table-view (rowClick)=\"handleRowClick($event)\" (actionClick)=\"handleActionClick($event)\">\n </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <!-- Chart View Placeholder -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-chart-column\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Chart View</h4>\n <p class=\"__placeholder-description\">Chart visualization will be implemented here</p>\n </div>\n </div>\n } @else {\n <!-- Custom Layout Placeholder -->\n <div class=\"__custom-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-layout-grid\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Custom Layout</h4>\n <p class=\"__placeholder-description\">Custom report layout will be implemented here</p>\n </div>\n </div>\n }\n</ng-template>\n\n<!-- No Report Selected State -->\n<ng-template #noReport>\n <div class=\"__no-report\" *translate=\"let t\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-container{overflow:hidden}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;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))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side>axp-layout-header{height:73px;border-bottom-width:1px}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding:.5rem}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections{gap:0px!important}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections axp-layout-section{border-style:none!important;padding:0!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;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))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;margin:1.5rem;border-radius:.5rem;border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));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))}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon,.axp-report-viewer-page .__cards-placeholder .__placeholder-icon,.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{margin-bottom:1rem;font-size:3rem;line-height:1;opacity:.5}.axp-report-viewer-page .__chart-placeholder .__placeholder-content,.axp-report-viewer-page .__cards-placeholder .__placeholder-content,.axp-report-viewer-page .__custom-placeholder .__placeholder-content{max-width:28rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__cards-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-accent1-500),var(--tw-text-opacity, 1))}@media (max-width: 768px){.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{margin:1rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{font-size:1rem;line-height:1.5rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.75rem;line-height:1rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type:
1933
+ ], viewQueries: [{ propertyName: "filtersForm", first: true, predicate: ["filtersForm"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form\n #filtersForm\n [formDefinition]=\"vm.formDefinition()\"\n [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\"\n [layoutStyle]=\"'compact'\"\n (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\"\n >\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n <axp-layout-footer class=\"ax-p-4 ax-border-t\">\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n class=\"ax-w-full\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\"\n [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-footer>\n </axp-layout-start-side>\n }\n\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (vm.hasMultipleLayouts()) {\n <ax-button [text]=\"vm.currentLayout()?.title\">\n <ax-icon icon=\"fa-light {{ vm.currentLayout()?.icon }}\"></ax-icon>\n <ax-dropdown-panel>\n @for (layout of vm.availableLayouts(); track layout.id) {\n <ax-button-item-list>\n <ax-button-item\n [text]=\"layout.title\"\n [selected]=\"vm.currentLayout()?.id === layout.id\"\n (onClick)=\"vm.switchLayout(layout.id)\"\n >\n <ax-icon icon=\"fa-light {{ layout.icon }}\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n }\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-prefix>\n <axp-layout-suffix> </axp-layout-suffix>\n </axp-page-toolbar>\n\n <!-- Main Content: Report Display -->\n <axp-page-content>\n @if (!vm.reportDefinition()) {\n <ng-container *ngTemplateOutlet=\"noReport\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"reportDisplay\"></ng-container>\n }\n </axp-page-content>\n</axp-page-layout>\n\n<!-- Report Display Area -->\n<ng-template #reportDisplay>\n @if (vm.isTableLayout()) {\n <axp-report-table-view> </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <axp-report-chart-view> </axp-report-chart-view>\n }\n</ng-template>\n\n<!-- No Report Selected State -->\n<ng-template #noReport>\n <div class=\"__no-report\" *translate=\"let t\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;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))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side>axp-layout-header{height:73px;border-bottom-width:1px}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding:.5rem}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections{gap:0px!important}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections axp-layout-section{border-style:none!important;padding:0!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;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))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i1$3.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type:
1704
1934
  //
1705
- AXPDynamicFormComponent, selector: "axp-dynamic-form", inputs: ["formDefinition", "context", "layoutStyle", "layoutConfig"], outputs: ["contextChange", "contextInitiated", "validityChange"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { 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: AXPReportTableViewComponent, selector: "axp-report-table-view", outputs: ["rowClick", "actionClick"] }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1935
+ AXPDynamicFormComponent, selector: "axp-dynamic-form", inputs: ["formDefinition", "context", "layoutStyle", "layoutConfig"], outputs: ["contextChange", "contextInitiated", "validityChange"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { 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: AXPReportTableViewComponent, selector: "axp-report-table-view" }, { kind: "component", type: AXPReportChartViewComponent, selector: "axp-report-chart-view" }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1706
1936
  }
1707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPReportViewerPageComponent, decorators: [{
1937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPReportViewerPageComponent, decorators: [{
1708
1938
  type: Component,
1709
1939
  args: [{ selector: 'axp-report-viewer-page', standalone: true, imports: [
1710
1940
  CommonModule,
@@ -1712,6 +1942,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1712
1942
  AXDecoratorModule,
1713
1943
  AXLoadingModule,
1714
1944
  AXTranslationModule,
1945
+ AXDropdownButtonModule,
1946
+ AXDropdownModule,
1715
1947
  //
1716
1948
  AXPDynamicFormComponent,
1717
1949
  AXPPageLayoutComponent,
@@ -1719,6 +1951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1719
1951
  AXPThemeLayoutHeaderComponent,
1720
1952
  AXPThemeLayoutBlockComponent,
1721
1953
  AXPReportTableViewComponent,
1954
+ AXPReportChartViewComponent,
1722
1955
  AXPThemeLayoutFooterComponent
1723
1956
  ], providers: [
1724
1957
  AXUnsubscriber,
@@ -1727,7 +1960,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
1727
1960
  provide: AXPPageLayoutBase,
1728
1961
  useExisting: AXPReportViewerPageComponent,
1729
1962
  },
1730
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'axp-report-viewer-page' }, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form\n #filtersForm\n [formDefinition]=\"vm.formDefinition()\"\n [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\"\n [layoutStyle]=\"'compact'\"\n (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\"\n >\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n <axp-layout-footer class=\"ax-p-4 ax-border-t\">\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n class=\"ax-w-full\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\"\n [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-footer>\n </axp-layout-start-side>\n }\n <!-- Main Content: Report Display -->\n <axp-page-content>\n @if (!vm.reportDefinition()) {\n <ng-container *ngTemplateOutlet=\"noReport\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"reportDisplay\"></ng-container>\n }\n </axp-page-content>\n</axp-page-layout>\n\n<!-- Report Display Area -->\n<ng-template #reportDisplay>\n @if (vm.isTableLayout()) {\n <axp-report-table-view (rowClick)=\"handleRowClick($event)\" (actionClick)=\"handleActionClick($event)\">\n </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <!-- Chart View Placeholder -->\n <div class=\"__chart-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-chart-column\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Chart View</h4>\n <p class=\"__placeholder-description\">Chart visualization will be implemented here</p>\n </div>\n </div>\n } @else {\n <!-- Custom Layout Placeholder -->\n <div class=\"__custom-placeholder\">\n <div class=\"__placeholder-icon\">\n <ax-icon class=\"fa-light fa-layout-grid\"></ax-icon>\n </div>\n <div class=\"__placeholder-content\">\n <h4 class=\"__placeholder-title\">Custom Layout</h4>\n <p class=\"__placeholder-description\">Custom report layout will be implemented here</p>\n </div>\n </div>\n }\n</ng-template>\n\n<!-- No Report Selected State -->\n<ng-template #noReport>\n <div class=\"__no-report\" *translate=\"let t\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-container{overflow:hidden}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;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))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side>axp-layout-header{height:73px;border-bottom-width:1px}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding:.5rem}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections{gap:0px!important}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections axp-layout-section{border-style:none!important;padding:0!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;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))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;margin:1.5rem;border-radius:.5rem;border-width:2px;border-style:dashed;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));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))}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon,.axp-report-viewer-page .__cards-placeholder .__placeholder-icon,.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{margin-bottom:1rem;font-size:3rem;line-height:1;opacity:.5}.axp-report-viewer-page .__chart-placeholder .__placeholder-content,.axp-report-viewer-page .__cards-placeholder .__placeholder-content,.axp-report-viewer-page .__custom-placeholder .__placeholder-content{max-width:28rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__chart-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__cards-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-secondary-500),var(--tw-text-opacity, 1))}.axp-report-viewer-page .__custom-placeholder .__placeholder-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-accent1-500),var(--tw-text-opacity, 1))}@media (max-width: 768px){.axp-report-viewer-page .__chart-placeholder,.axp-report-viewer-page .__cards-placeholder,.axp-report-viewer-page .__custom-placeholder{margin:1rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-title,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-title{font-size:1rem;line-height:1.5rem}.axp-report-viewer-page .__chart-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__cards-placeholder .__placeholder-content .__placeholder-description,.axp-report-viewer-page .__custom-placeholder .__placeholder-content .__placeholder-description{font-size:.75rem;line-height:1rem}}\n"] }]
1963
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'axp-report-viewer-page' }, template: "<axp-page-layout *translate=\"let t\">\n <!-- Left Panel: Filters (Always visible for desktop) -->\n @if (showFiltersPanel()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>\n {{ t('@report-management:features.report-viewer.filters.title') | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content>\n <div class=\"__filters-container\">\n <axp-dynamic-form\n #filtersForm\n [formDefinition]=\"vm.formDefinition()\"\n [context]=\"vm.filterContext()\"\n [layoutConfig]=\"defaultLayout()\"\n [layoutStyle]=\"'compact'\"\n (contextChange)=\"handleFiltersChange($event)\"\n (contextInitiated)=\"handleFiltersInitiated($event)\"\n >\n </axp-dynamic-form>\n </div>\n </axp-layout-content>\n <axp-layout-footer class=\"ax-p-4 ax-border-t\">\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n class=\"ax-w-full\"\n [text]=\"t('@report-management:features.report-viewer.actions.execute') | async\"\n [color]=\"'primary'\"\n (onClick)=\"execute({ name: 'execute-report' })\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-play\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </axp-layout-footer>\n </axp-layout-start-side>\n }\n\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (vm.hasMultipleLayouts()) {\n <ax-button [text]=\"vm.currentLayout()?.title\">\n <ax-icon icon=\"fa-light {{ vm.currentLayout()?.icon }}\"></ax-icon>\n <ax-dropdown-panel>\n @for (layout of vm.availableLayouts(); track layout.id) {\n <ax-button-item-list>\n <ax-button-item\n [text]=\"layout.title\"\n [selected]=\"vm.currentLayout()?.id === layout.id\"\n (onClick)=\"vm.switchLayout(layout.id)\"\n >\n <ax-icon icon=\"fa-light {{ layout.icon }}\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n }\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-prefix>\n <axp-layout-suffix> </axp-layout-suffix>\n </axp-page-toolbar>\n\n <!-- Main Content: Report Display -->\n <axp-page-content>\n @if (!vm.reportDefinition()) {\n <ng-container *ngTemplateOutlet=\"noReport\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"reportDisplay\"></ng-container>\n }\n </axp-page-content>\n</axp-page-layout>\n\n<!-- Report Display Area -->\n<ng-template #reportDisplay>\n @if (vm.isTableLayout()) {\n <axp-report-table-view> </axp-report-table-view>\n } @else if (vm.isChartLayout()) {\n <axp-report-chart-view> </axp-report-chart-view>\n }\n</ng-template>\n\n<!-- No Report Selected State -->\n<ng-template #noReport>\n <div class=\"__no-report\" *translate=\"let t\">\n <div class=\"__no-report-icon\">\n <ax-icon class=\"fa-light fa-chart-line\"></ax-icon>\n </div>\n <div class=\"__no-report-content\">\n <h3 class=\"__no-report-title\">\n {{ t('@report-management:features.report-viewer.no-report.title') | async }}\n </h3>\n <p class=\"__no-report-description\">\n {{ t('@report-management:features.report-viewer.no-report.description') | async }}\n </p>\n <div class=\"__no-report-actions\">\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"t('@report-management:features.report-viewer.no-report.browse-reports') | async\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-light fa-folder-open\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".axp-report-viewer-page{display:flex;height:100%;width:100%;flex-direction:column}.axp-report-viewer-page axp-layout-start-side{height:100%;width:20rem;border-inline-end-width:1px;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))}@media (min-width: 1920px){.axp-report-viewer-page axp-layout-start-side{width:24rem}}.axp-report-viewer-page axp-layout-start-side>axp-layout-header{height:73px;border-bottom-width:1px}.axp-report-viewer-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding:.5rem}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections{gap:0px!important}.axp-report-viewer-page axp-layout-start-side axp-layout-content .__filters-container axp-layout-sections axp-layout-section{border-style:none!important;padding:0!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.axp-report-viewer-page .__mobile-filters{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));padding:1rem;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))}.axp-report-viewer-page axp-page-content{display:flex;height:100%;flex-direction:column}.axp-report-viewer-page .__no-report{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-report-viewer-page .__no-report .__no-report-icon{margin-bottom:1rem;font-size:3.75rem;line-height:1;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1));opacity:.5}.axp-report-viewer-page .__no-report .__no-report-content{max-width:28rem}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-title{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:600}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-description{margin-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-viewer-page .__no-report .__no-report-content .__no-report-actions{display:flex;justify-content:center}.axp-report-viewer-page axp-report-table-view{flex:1 1 0%;overflow:hidden}\n"] }]
1731
1964
  }] });
1732
1965
 
1733
1966
  var reportViewerPage_component = /*#__PURE__*/Object.freeze({
@@ -1739,5 +1972,5 @@ var reportViewerPage_component = /*#__PURE__*/Object.freeze({
1739
1972
  * Generated bundle index. Do not edit.
1740
1973
  */
1741
1974
 
1742
- export { AXMReportManagementModule, AXPReportTableViewComponent, AXPReportViewerPageComponent, AXPReportViewerViewModel, RootConfig };
1975
+ export { AXMReportManagementModule, AXPReportChartViewComponent, AXPReportTableViewComponent, AXPReportViewerPageComponent, AXPReportViewerViewModel, RootConfig };
1743
1976
  //# sourceMappingURL=acorex-modules-report-management.mjs.map