@acorex/modules 20.0.25 → 20.2.0-next.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 (263) hide show
  1. package/common/index.d.ts +8 -1
  2. package/conversation/index.d.ts +69 -9
  3. package/dashboard-management/index.d.ts +2 -0
  4. package/data-management/index.d.ts +401 -3
  5. package/fesm2022/{acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs → acorex-modules-application-management-module-designer.component-udoks-Ef.mjs} +17 -17
  6. package/fesm2022/acorex-modules-application-management-module-designer.component-udoks-Ef.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-application-management.mjs +53 -53
  8. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  9. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs → acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs} +67 -125
  10. package/fesm2022/acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs.map +1 -0
  11. package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs → acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs} +7 -7
  12. package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs.map → acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs → acorex-modules-auth-blank.layout-C8NsXB9K.mjs} +5 -5
  14. package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs.map → acorex-modules-auth-blank.layout-C8NsXB9K.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs → acorex-modules-auth-login.module-ZEX4NMuJ.mjs} +8 -8
  16. package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs.map → acorex-modules-auth-login.module-ZEX4NMuJ.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs → acorex-modules-auth-master.layout-D-lIn4Pl.mjs} +7 -7
  18. package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs.map → acorex-modules-auth-master.layout-D-lIn4Pl.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs → acorex-modules-auth-password.component-CafZfqKe.mjs} +12 -12
  20. package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs.map → acorex-modules-auth-password.component-CafZfqKe.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-auth-password.component-BbsQWpEh.mjs → acorex-modules-auth-password.component-DLCb0_6e.mjs} +16 -16
  22. package/fesm2022/acorex-modules-auth-password.component-DLCb0_6e.mjs.map +1 -0
  23. package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs → acorex-modules-auth-routes-D9-qfC3V.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs.map → acorex-modules-auth-routes-D9-qfC3V.mjs.map} +1 -1
  25. package/fesm2022/acorex-modules-auth-settings.provider-CM-T8nbI.mjs.map +1 -1
  26. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs → acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs} +10 -10
  27. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs.map → acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs.map} +1 -1
  28. package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs → acorex-modules-auth-two-factor-code.component-BglerlU-.mjs} +10 -10
  29. package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs.map → acorex-modules-auth-two-factor-code.component-BglerlU-.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs → acorex-modules-auth-two-factor.module-D3N2XyOH.mjs} +7 -7
  31. package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs.map → acorex-modules-auth-two-factor.module-D3N2XyOH.mjs.map} +1 -1
  32. package/fesm2022/acorex-modules-auth.mjs +1 -1
  33. package/fesm2022/acorex-modules-calendar-management.mjs +19 -19
  34. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  35. package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs +1667 -0
  36. package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs.map +1 -0
  37. package/fesm2022/{acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs → acorex-modules-common-search-popup.component-CpFvcrxw.mjs} +13 -13
  38. package/fesm2022/acorex-modules-common-search-popup.component-CpFvcrxw.mjs.map +1 -0
  39. package/fesm2022/{acorex-modules-platform-management-settings.provider-intHn3XI.mjs → acorex-modules-common-settings.provider-ha75F6g5.mjs} +2 -3
  40. package/fesm2022/acorex-modules-common-settings.provider-ha75F6g5.mjs.map +1 -0
  41. 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
  42. package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs.map +1 -0
  43. package/fesm2022/acorex-modules-common.mjs +1 -1199
  44. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  45. package/fesm2022/{acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs → acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs} +47 -222
  46. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs.map +1 -0
  47. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs → acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs} +2 -2
  52. 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
  53. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs → acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs} +2 -2
  54. 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
  55. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs} +2 -2
  56. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs.map} +1 -1
  57. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs → acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs} +2 -2
  58. 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
  59. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs → acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs} +2 -2
  60. 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
  61. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  62. package/fesm2022/acorex-modules-content-management.mjs +14 -14
  63. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  64. package/fesm2022/acorex-modules-conversation.mjs +608 -178
  65. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  66. package/fesm2022/acorex-modules-dashboard-management.mjs +191 -191
  67. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-data-management.mjs +2215 -265
  69. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  70. 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
  71. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-B4Jd-KGV.mjs.map +1 -0
  72. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs} +5 -5
  73. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs.map → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs → acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs} +22 -22
  75. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs.map +1 -0
  76. package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs} +5 -5
  77. package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs.map → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs.map} +1 -1
  78. package/fesm2022/{acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs → acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs} +18 -18
  79. package/fesm2022/acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs.map +1 -0
  80. package/fesm2022/{acorex-modules-document-management-drive.component-CUej0GjY.mjs → acorex-modules-document-management-drive.component-DrkSd6Rv.mjs} +28 -28
  81. package/fesm2022/acorex-modules-document-management-drive.component-DrkSd6Rv.mjs.map +1 -0
  82. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuwrkLhe.mjs → acorex-modules-document-management-large-icons-view.component-DV8oWdDh.mjs} +5 -5
  83. 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
  84. 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
  85. 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
  86. package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs} +5 -5
  87. package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs.map → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs.map} +1 -1
  88. package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs} +5 -5
  89. package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs.map → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs.map} +1 -1
  90. 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
  91. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DYJN-4Pe.mjs.map +1 -0
  92. 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
  93. 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
  94. 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
  95. package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs.map +1 -0
  96. 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
  97. 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
  98. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs} +2 -2
  99. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs.map → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs.map} +1 -1
  100. 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
  101. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-C_dsLLMb.mjs.map +1 -0
  102. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs} +6 -6
  103. package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs.map → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs.map} +1 -1
  104. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-CKlG3YwB.mjs → acorex-modules-document-management-share-email-dialog.component-D3WcHAOf.mjs} +5 -5
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  111. 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
  112. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs.map +1 -0
  113. package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs} +2 -2
  114. package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs.map → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs.map} +1 -1
  115. package/fesm2022/{acorex-modules-form-template-management-designer.page-B14QVCAw.mjs → acorex-modules-form-template-management-designer.page-DQorNK3f.mjs} +6 -6
  116. package/fesm2022/acorex-modules-form-template-management-designer.page-DQorNK3f.mjs.map +1 -0
  117. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BMd6DvoR.mjs → acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs} +2 -2
  118. 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
  119. package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs} +2 -2
  120. package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs.map → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs.map} +1 -1
  121. 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
  122. package/fesm2022/acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs.map +1 -0
  123. 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
  124. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs.map +1 -0
  125. package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs} +2 -2
  126. package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs.map → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs.map} +1 -1
  127. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs → acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs} +12 -12
  128. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs.map +1 -0
  129. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  130. 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
  131. 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
  132. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs} +7 -7
  133. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs.map → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs.map} +1 -1
  134. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  135. package/fesm2022/acorex-modules-log-management.mjs +427 -479
  136. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  137. package/fesm2022/acorex-modules-notification-management.mjs +169 -63
  138. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  139. package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs} +16 -16
  140. package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs.map → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs.map} +1 -1
  141. package/fesm2022/{acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs → acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs} +80 -6
  142. package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +1 -0
  143. package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +1 -1
  144. package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +1 -1
  145. package/fesm2022/{acorex-modules-organization-management-department.entity-BMojk26d.mjs → acorex-modules-organization-management-department.entity-BxCyXNtv.mjs} +68 -7
  146. package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +1 -0
  147. package/fesm2022/{acorex-modules-organization-management-division.entity-BnWpX4US.mjs → acorex-modules-organization-management-division.entity-DzQT2jpz.mjs} +68 -6
  148. package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs → acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs} +152 -28
  150. package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs → acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs} +21 -8
  152. package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +1 -0
  153. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs → acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs} +6 -6
  154. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs.map +1 -0
  155. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs → acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs} +5 -5
  156. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs.map +1 -0
  157. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs → acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs} +20 -20
  158. package/fesm2022/acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs.map +1 -0
  159. package/fesm2022/{acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs → acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs} +20 -35
  160. package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +1 -0
  161. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +526 -0
  162. package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +1 -0
  163. package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs → acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs} +12 -25
  164. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +1 -0
  165. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs → acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs} +70 -25
  166. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +1 -0
  167. package/fesm2022/{acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs → acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs} +22 -14
  168. package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +1 -0
  169. package/fesm2022/{acorex-modules-organization-management-position.entity-CY4TugWR.mjs → acorex-modules-organization-management-role.entity-CruQeObl.mjs} +77 -79
  170. package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +1 -0
  171. package/fesm2022/acorex-modules-organization-management-settings.provider-hlbUXugb.mjs.map +1 -1
  172. package/fesm2022/{acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs → acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs} +18 -33
  173. package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +1 -0
  174. package/fesm2022/{acorex-modules-organization-management-skill.entity-D9XojzUV.mjs → acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs} +61 -22
  175. package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +1 -0
  176. package/fesm2022/{acorex-modules-organization-management-team.entity-mYPhrc2l.mjs → acorex-modules-organization-management-team.entity-DMCfAZsr.mjs} +58 -10
  177. package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +1 -0
  178. package/fesm2022/acorex-modules-organization-management.mjs +221 -136
  179. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  180. package/fesm2022/{acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs → acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs} +9 -9
  181. package/fesm2022/acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs.map +1 -0
  182. package/fesm2022/acorex-modules-platform-management.mjs +3479 -1
  183. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  184. package/fesm2022/acorex-modules-project-management.mjs +43 -43
  185. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  186. package/fesm2022/{acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs → acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs} +10 -10
  187. package/fesm2022/acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs.map +1 -0
  188. 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
  189. 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
  190. package/fesm2022/acorex-modules-report-management.mjs +465 -232
  191. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  192. package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
  193. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  194. package/fesm2022/acorex-modules-security-management.mjs +432 -900
  195. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  196. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs → acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs} +17 -17
  197. package/fesm2022/acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs.map +1 -0
  198. package/fesm2022/{acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs → acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs} +11 -11
  199. package/fesm2022/acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs.map +1 -0
  200. package/fesm2022/acorex-modules-settings-management.mjs +6 -6
  201. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  202. package/fesm2022/acorex-modules-text-template-management-settings.provider-fX0dhWUL.mjs.map +1 -1
  203. package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
  204. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  205. package/fesm2022/acorex-modules-training-management.mjs +43 -43
  206. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  207. package/fesm2022/{acorex-modules-workflow-management-task-board.page-zaSchG-u.mjs → acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs} +123 -133
  208. package/fesm2022/acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs.map +1 -0
  209. package/fesm2022/acorex-modules-workflow-management.mjs +12 -12
  210. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  211. package/log-management/index.d.ts +46 -19
  212. package/notification-management/index.d.ts +125 -29
  213. package/organization-management/index.d.ts +41 -13
  214. package/package.json +5 -5
  215. package/platform-management/index.d.ts +8 -277
  216. package/report-management/index.d.ts +182 -126
  217. package/security-management/index.d.ts +5 -58
  218. package/fesm2022/acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs.map +0 -1
  219. package/fesm2022/acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs.map +0 -1
  220. package/fesm2022/acorex-modules-auth-password.component-BbsQWpEh.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs +0 -135
  222. package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D48aDOVu.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Bte3VGKC.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-document-management-drive.component-CUej0GjY.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DsSo15AL.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-B-fYrGs1.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-DWzD41AV.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-form-template-management-designer.page-B14QVCAw.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-form-template-management-template-picker.component-C0mLCsFT.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CffnsEo2.mjs.map +0 -1
  237. package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-organization-management-department.entity-BMojk26d.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-organization-management-division.entity-BnWpX4US.mjs.map +0 -1
  241. package/fesm2022/acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs.map +0 -1
  243. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs.map +0 -1
  245. package/fesm2022/acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs.map +0 -1
  246. package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs.map +0 -1
  247. package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs.map +0 -1
  248. package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs.map +0 -1
  249. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs.map +0 -1
  250. package/fesm2022/acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs.map +0 -1
  251. package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs +0 -324
  252. package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +0 -1
  253. package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs.map +0 -1
  254. package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs.map +0 -1
  255. package/fesm2022/acorex-modules-organization-management-team.entity-mYPhrc2l.mjs.map +0 -1
  256. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs +0 -5524
  257. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +0 -1
  258. package/fesm2022/acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map +0 -1
  259. package/fesm2022/acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map +0 -1
  260. package/fesm2022/acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map +0 -1
  261. package/fesm2022/acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs.map +0 -1
  262. package/fesm2022/acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs.map +0 -1
  263. package/fesm2022/acorex-modules-workflow-management-task-board.page-zaSchG-u.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
2
2
  import { createAllQueryView, AXPEntityCommandScope, AXPEntityQueryType, AXPRegionalService, AXP_HOME_PAGES, AXP_MENU_PROVIDER, AXP_HOME_PAGE_DEFAULT_KEY, AXPSettingService } from '@acorex/platform/common';
3
- import * as i3$2 from '@acorex/platform/layout/builder';
3
+ import * as i2$3 from '@acorex/platform/layout/builder';
4
4
  import { AXPWidgetsCatalog, AXPLayoutWidgetComponent, AXPWidgetGroupEnum, AXPValueWidgetComponent, cloneProperty, AXPLayoutBuilderModule, AXPWidgetRendererDirective } from '@acorex/platform/layout/builder';
5
5
  import { AXMEntityCrudServiceImpl, AXPEntityService, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';
6
6
  import { AXP_DATA_PROPERTY_GROUP, AXP_APPEARANCE_PROPERTY_GROUP, AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BG_COLOR_PROPERTY, plainTextDefaultProperty, AXP_COLOR_PROPERTY, AXPWidgetsModule } from '@acorex/platform/widgets';
@@ -20,7 +20,7 @@ import { AXDonutChartComponent } from '@acorex/charts/donut-chart';
20
20
  import { AXGaugeChartComponent } from '@acorex/charts/gauge-chart';
21
21
  import { AXLineChartComponent } from '@acorex/charts/line-chart';
22
22
  import { AXColorBoxModule } from '@acorex/components/color-box';
23
- import * as i4$1 from '@acorex/components/grid-layout-builder';
23
+ import * as i3$3 from '@acorex/components/grid-layout-builder';
24
24
  import { AXGridLayoutWidgetComponent, AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
25
25
  import { AXPopoverModule } from '@acorex/components/popover';
26
26
  import { AXToolBarModule } from '@acorex/components/toolbar';
@@ -31,16 +31,16 @@ import { FormsModule } from '@angular/forms';
31
31
  import { AXAvatarModule } from '@acorex/components/avatar';
32
32
  import * as i3 from '@acorex/components/badge';
33
33
  import { AXBadgeModule } from '@acorex/components/badge';
34
- import * as i1$2 from '@acorex/components/button';
34
+ import * as i1$3 from '@acorex/components/button';
35
35
  import { AXButtonModule } from '@acorex/components/button';
36
36
  import * as i4 from '@acorex/components/check-box';
37
37
  import { AXCheckBoxModule } from '@acorex/components/check-box';
38
38
  import { AXImageModule } from '@acorex/components/image';
39
39
  import { AXLabelModule } from '@acorex/components/label';
40
40
  import { AXTabsModule } from '@acorex/components/tabs';
41
- import * as i3$1 from '@acorex/core/translation';
41
+ import * as i4$1 from '@acorex/core/translation';
42
42
  import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
43
- import * as i2$3 from '@acorex/components/skeleton';
43
+ import * as i1$2 from '@acorex/components/skeleton';
44
44
  import { AXSkeletonModule } from '@acorex/components/skeleton';
45
45
  import { AXTooltipModule } from '@acorex/components/tooltip';
46
46
  import { HttpClient, HttpClientModule } from '@angular/common/http';
@@ -52,22 +52,22 @@ import { ActivatedRoute, Router } from '@angular/router';
52
52
  import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
53
53
  import { AXButtonGroupModule } from '@acorex/components/button-group';
54
54
  import { AXDialogService } from '@acorex/components/dialog';
55
- import * as i3$3 from '@acorex/components/dropdown';
55
+ import * as i3$1 from '@acorex/components/dropdown';
56
56
  import { AXDropdownModule } from '@acorex/components/dropdown';
57
57
  import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
58
58
  import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
59
59
  import { AXPWidgetPropertyViewerComponent, AXPWidgetPickerService, AXPDesignerService } from '@acorex/platform/layout/designer';
60
60
  import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
61
61
  import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
62
- import * as i2$4 from '@acorex/components/loading';
62
+ import * as i1$4 from '@acorex/components/loading';
63
63
  import { AXLoadingModule } from '@acorex/components/loading';
64
64
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
65
65
  import { AXBasePageComponent } from '@acorex/components/page';
66
- import * as i7 from '@acorex/components/select-box';
66
+ import * as i5 from '@acorex/components/select-box';
67
67
  import { AXSelectBoxModule } from '@acorex/components/select-box';
68
- import * as i8 from '@acorex/components/switch';
68
+ import * as i6 from '@acorex/components/switch';
69
69
  import { AXSwitchModule } from '@acorex/components/switch';
70
- import * as i3$4 from '@acorex/components/text-box';
70
+ import * as i3$2 from '@acorex/components/text-box';
71
71
  import { AXTextBoxModule } from '@acorex/components/text-box';
72
72
  import { AXMOrganizationManagementRoleEntityService } from '@acorex/modules/organization-management';
73
73
 
@@ -98,10 +98,10 @@ class AXMDashboardServiceImpl extends AXMDashboardService {
98
98
  constructor() {
99
99
  super(`${RootConfig.module.name}.${RootConfig.entities.dashboard.name}`);
100
100
  }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardServiceImpl }); }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
102
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardServiceImpl }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardServiceImpl, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardServiceImpl, decorators: [{
105
105
  type: Injectable
106
106
  }], ctorParameters: () => [] });
107
107
 
@@ -445,35 +445,35 @@ class AXMEntityProvider {
445
445
  }
446
446
  return null;
447
447
  }
448
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
449
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMEntityProvider }); }
448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
449
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMEntityProvider }); }
450
450
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMEntityProvider, decorators: [{
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMEntityProvider, decorators: [{
452
452
  type: Injectable
453
453
  }] });
454
454
 
455
455
  class AXMAnalogClockComponent {
456
456
  constructor() {
457
- this.timezone = input();
458
- this.classes = input();
459
- this.showNumbers = input(true);
460
- this.currentTime = signal(new Date());
461
- this.timeParts = signal({ hours: 0, minutes: 0, seconds: 0 });
457
+ this.timezone = input(...(ngDevMode ? [undefined, { debugName: "timezone" }] : []));
458
+ this.classes = input(...(ngDevMode ? [undefined, { debugName: "classes" }] : []));
459
+ this.showNumbers = input(true, ...(ngDevMode ? [{ debugName: "showNumbers" }] : []));
460
+ this.currentTime = signal(new Date(), ...(ngDevMode ? [{ debugName: "currentTime" }] : []));
461
+ this.timeParts = signal({ hours: 0, minutes: 0, seconds: 0 }, ...(ngDevMode ? [{ debugName: "timeParts" }] : []));
462
462
  this.hourHandTransform = computed(() => {
463
463
  const { hours, minutes } = this.timeParts();
464
464
  const hoursAngle = (hours % 12) * 30 + minutes * 0.5;
465
465
  return `translateX(-50%) rotate(${hoursAngle}deg)`;
466
- });
466
+ }, ...(ngDevMode ? [{ debugName: "hourHandTransform" }] : []));
467
467
  this.minuteHandTransform = computed(() => {
468
468
  const { minutes, seconds } = this.timeParts();
469
469
  const minutesAngle = minutes * 6 + seconds * 0.1;
470
470
  return `translateX(-50%) rotate(${minutesAngle}deg)`;
471
- });
471
+ }, ...(ngDevMode ? [{ debugName: "minuteHandTransform" }] : []));
472
472
  this.secondHandTransform = computed(() => {
473
473
  const { seconds } = this.timeParts();
474
474
  const secondsAngle = seconds * 6;
475
475
  return `translateX(-50%) rotate(${secondsAngle}deg)`;
476
- });
476
+ }, ...(ngDevMode ? [{ debugName: "secondHandTransform" }] : []));
477
477
  this.hourLines = [];
478
478
  this.hourNumbers = [];
479
479
  this.dots = [];
@@ -550,8 +550,8 @@ class AXMAnalogClockComponent {
550
550
  }
551
551
  }
552
552
  }
553
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAnalogClockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
554
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMAnalogClockComponent, isStandalone: true, selector: "axm-analog-clock", inputs: { timezone: { classPropertyName: "timezone", publicName: "timezone", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, showNumbers: { classPropertyName: "showNumbers", publicName: "showNumbers", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
553
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAnalogClockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
554
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMAnalogClockComponent, isStandalone: true, selector: "axm-analog-clock", inputs: { timezone: { classPropertyName: "timezone", publicName: "timezone", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, showNumbers: { classPropertyName: "showNumbers", publicName: "showNumbers", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
555
555
  <div class="axm-analog-clock-container">
556
556
  <div class="axm-analog-clock-face" [class]="classes()">
557
557
  <div class="axm-analog-clock-marks-container">
@@ -592,7 +592,7 @@ class AXMAnalogClockComponent {
592
592
  </div>
593
593
  `, isInline: true, styles: [":host{display:grid;width:100%;height:100%;place-items:center}.axm-analog-clock-container{position:relative;max-height:100%;width:100%;aspect-ratio:1;container-type:inline-size}.axm-analog-clock-face{position:relative;height:100%;width:100%;border-radius:9999px}.axm-analog-clock-marks-container,.axm-analog-clock-numbers-container,.axm-analog-clock-hands{position:absolute;top:0;right:0;bottom:0;left:0}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{position:absolute;bottom:50%;left:50%;height:50%;transform-origin:bottom}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{width:1.8cqw}.axm-analog-clock-hour-line-inner{position:absolute;top:6cqw;left:50%;height:5.5cqw;width:100%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-line-inner:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.axm-analog-clock-dot-line-inner{position:absolute;top:6cqw;left:50%;height:2cqw;width:1.2cqw;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.axm-analog-clock-dot-line-inner:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-number{position:absolute;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));font-size:10cqw;font-weight:500;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.axm-analog-clock-hand{position:absolute;bottom:50%;left:50%;transform-origin:bottom;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.axm-analog-clock-hand:after{content:\"\";position:absolute;left:0;width:100%}.axm-analog-clock-hour-hand{z-index:2;height:25%;width:2.7cqw;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand{z-index:3;height:35%;width:2.1cqw;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand{z-index:4;height:42%;width:1.5cqw;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-center-point{position:absolute;top:50%;left:50%;z-index:5;height:9cqw;width:9cqw;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1.8cqw;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
594
594
  }
595
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAnalogClockComponent, decorators: [{
595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAnalogClockComponent, decorators: [{
596
596
  type: Component,
597
597
  args: [{ selector: 'axm-analog-clock', standalone: true, imports: [], template: `
598
598
  <div class="axm-analog-clock-container">
@@ -641,21 +641,21 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
641
641
  super();
642
642
  this.regionalService = inject(AXPRegionalService);
643
643
  this.elementRef = inject(ElementRef);
644
- this.userTimezone = signal(null);
645
- this.containerWidth = signal(0);
646
- this.containerHeight = signal(0);
644
+ this.userTimezone = signal(null, ...(ngDevMode ? [{ debugName: "userTimezone" }] : []));
645
+ this.containerWidth = signal(0, ...(ngDevMode ? [{ debugName: "containerWidth" }] : []));
646
+ this.containerHeight = signal(0, ...(ngDevMode ? [{ debugName: "containerHeight" }] : []));
647
647
  this.resizeObserver = null;
648
648
  this.timezone = computed(() => {
649
649
  const configuredTimezone = this.options()?.timezone;
650
650
  return configuredTimezone || this.userTimezone();
651
- });
652
- this.others = computed(() => (this.options()?.others ?? []));
651
+ }, ...(ngDevMode ? [{ debugName: "timezone" }] : []));
652
+ this.others = computed(() => (this.options()?.others ?? []), ...(ngDevMode ? [{ debugName: "others" }] : []));
653
653
  this.isHorizontal = computed(() => {
654
654
  const width = this.containerWidth();
655
655
  const height = this.containerHeight();
656
656
  // If width is greater than height or they are equal, use horizontal layout
657
657
  return width >= height - (this.others().length > 0 ? 75 : 0);
658
- });
658
+ }, ...(ngDevMode ? [{ debugName: "isHorizontal" }] : []));
659
659
  this.hasEnoughSpaceForHorizontal = computed(() => {
660
660
  const width = this.containerWidth();
661
661
  const clockCount = this.others().length;
@@ -663,7 +663,7 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
663
663
  // Each clock needs about 100px (60px clock + padding + text)
664
664
  const minWidthNeeded = clockCount * 100;
665
665
  return width >= minWidthNeeded && clockCount <= 4;
666
- });
666
+ }, ...(ngDevMode ? [{ debugName: "hasEnoughSpaceForHorizontal" }] : []));
667
667
  this.loadUserTimezone();
668
668
  }
669
669
  ngAfterViewInit() {
@@ -699,8 +699,8 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
699
699
  console.error('Failed to load user timezone', error);
700
700
  }
701
701
  }
702
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMClockWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
703
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMClockWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMClockWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
703
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMClockWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
704
704
  <div class="ax-p-2 ax-h-full ax-overflow-hidden" [class.ax-bg-light]="others().length > 0">
705
705
  <!-- Main Clock Section -->
706
706
  <div class="ax-flex ax-flex-col ax-items-center ax-justify-around ax-gap-2 ax-flex-1 ax-h-full">
@@ -784,7 +784,7 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
784
784
  </div>
785
785
  `, isInline: true, styles: [":host{display:block;width:100%;height:100%}.ax-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: AXMAnalogClockComponent, selector: "axm-analog-clock", inputs: ["timezone", "classes", "showNumbers"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
786
786
  }
787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMClockWidgetViewComponent, decorators: [{
787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMClockWidgetViewComponent, decorators: [{
788
788
  type: Component,
789
789
  args: [{ template: `
790
790
  <div class="ax-p-2 ax-h-full ax-overflow-hidden" [class.ax-bg-light]="others().length > 0">
@@ -951,8 +951,8 @@ const AXPAnalogClockWidget = {
951
951
  class AXPBarChartWidgetViewComponent extends AXPValueWidgetComponent {
952
952
  constructor() {
953
953
  super();
954
- this.barChartData = computed(() => this.getValue());
955
- this.barChartOptions = computed(() => this.options());
954
+ this.barChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "barChartData" }] : []));
955
+ this.barChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "barChartOptions" }] : []));
956
956
  this.setOptions({
957
957
  ...this.options(),
958
958
  showXAxis: true,
@@ -969,10 +969,10 @@ class AXPBarChartWidgetViewComponent extends AXPValueWidgetComponent {
969
969
  handleBarClick(event) {
970
970
  //console.log(event);
971
971
  }
972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPBarChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
973
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: AXPBarChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-bar-chart [data]=\"barChartData()\" [options]=\"barChartOptions()\" (barClick)=\"handleBarClick($event)\"></ax-bar-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXBarChartComponent, selector: "ax-bar-chart", inputs: ["data", "options"], outputs: ["barClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
972
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPBarChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
973
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AXPBarChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-bar-chart [data]=\"barChartData()\" [options]=\"barChartOptions()\" (barClick)=\"handleBarClick($event)\"></ax-bar-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXBarChartComponent, selector: "ax-bar-chart", inputs: ["data", "options"], outputs: ["barClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
974
974
  }
975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPBarChartWidgetViewComponent, decorators: [{
975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPBarChartWidgetViewComponent, decorators: [{
976
976
  type: Component,
977
977
  args: [{ imports: [AXBarChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-bar-chart [data]=\"barChartData()\" [options]=\"barChartOptions()\" (barClick)=\"handleBarClick($event)\"></ax-bar-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
978
978
  }], ctorParameters: () => [] });
@@ -1304,21 +1304,21 @@ class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {
1304
1304
  this.minuteRotation = 0;
1305
1305
  this.secondRotation = 0;
1306
1306
  // Options with computed properties and defaults
1307
- this.displayLayout = computed(() => this.options()?.displayLayout?.id ?? 'both');
1307
+ this.displayLayout = computed(() => this.options()?.displayLayout?.id ?? 'both', ...(ngDevMode ? [{ debugName: "displayLayout" }] : []));
1308
1308
  this.showDigitalClock = computed(() => {
1309
1309
  const layout = this.displayLayout();
1310
1310
  return layout === 'both' || layout === 'digital';
1311
- });
1311
+ }, ...(ngDevMode ? [{ debugName: "showDigitalClock" }] : []));
1312
1312
  this.showAnalogClock = computed(() => {
1313
1313
  const layout = this.displayLayout();
1314
1314
  return layout === 'both' || layout === 'analog';
1315
- });
1316
- this.showDate = computed(() => this.options()?.showDate !== false);
1317
- this.showDayOfWeek = computed(() => this.options()?.showDayOfWeek !== false);
1318
- this.use24Hour = computed(() => this.options()?.use24Hour === true);
1319
- this.showSeconds = computed(() => this.options()?.showSeconds !== false);
1320
- this.dateFormat = computed(() => this.options()?.dateFormat?.id ?? 'DD MMM YYYY');
1321
- this.timezone = computed(() => this.options()?.timezone?.id ?? 'local');
1315
+ }, ...(ngDevMode ? [{ debugName: "showAnalogClock" }] : []));
1316
+ this.showDate = computed(() => this.options()?.showDate !== false, ...(ngDevMode ? [{ debugName: "showDate" }] : []));
1317
+ this.showDayOfWeek = computed(() => this.options()?.showDayOfWeek !== false, ...(ngDevMode ? [{ debugName: "showDayOfWeek" }] : []));
1318
+ this.use24Hour = computed(() => this.options()?.use24Hour === true, ...(ngDevMode ? [{ debugName: "use24Hour" }] : []));
1319
+ this.showSeconds = computed(() => this.options()?.showSeconds !== false, ...(ngDevMode ? [{ debugName: "showSeconds" }] : []));
1320
+ this.dateFormat = computed(() => this.options()?.dateFormat?.id ?? 'DD MMM YYYY', ...(ngDevMode ? [{ debugName: "dateFormat" }] : []));
1321
+ this.timezone = computed(() => this.options()?.timezone?.id ?? 'local', ...(ngDevMode ? [{ debugName: "timezone" }] : []));
1322
1322
  // protected readonly showTimezoneIndicator: Signal<boolean> = computed(() => this.timezone() !== 'local');
1323
1323
  this.displayTimezone = computed(() => {
1324
1324
  const tz = this.timezone();
@@ -1334,8 +1334,8 @@ class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {
1334
1334
  }
1335
1335
  }
1336
1336
  return tz;
1337
- });
1338
- this.timeFormat = computed(() => this.showSeconds() ? (this.use24Hour() ? 'HH:mm:ss' : 'hh:mm:ss a') : this.use24Hour() ? 'HH:mm' : 'hh:mm a');
1337
+ }, ...(ngDevMode ? [{ debugName: "displayTimezone" }] : []));
1338
+ this.timeFormat = computed(() => this.showSeconds() ? (this.use24Hour() ? 'HH:mm:ss' : 'hh:mm:ss a') : this.use24Hour() ? 'HH:mm' : 'hh:mm a', ...(ngDevMode ? [{ debugName: "timeFormat" }] : []));
1339
1339
  }
1340
1340
  ngOnInit() {
1341
1341
  super.ngOnInit();
@@ -1406,10 +1406,10 @@ class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {
1406
1406
  const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
1407
1407
  return days[this.currentDate.getDay()];
1408
1408
  }
1409
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1410
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPClockCalendarWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n <!-- @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n } -->\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format: 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\"\n >\n <span [style.transform]=\"'rotate(' + -hour.angle + 'deg)'\">{{ hour.number }}</span>\n </div>\n }\n </div>\n\n <!-- Clock Hands -->\n <div class=\"axp-clock-calendar-hands-container\">\n <div class=\"axp-clock-calendar-hour-hand\" [style.transform]=\"'rotate(' + hourRotation + 'deg)'\"></div>\n <div class=\"axp-clock-calendar-minute-hand\" [style.transform]=\"'rotate(' + minuteRotation + 'deg)'\"></div>\n @if (showSeconds()) {\n <div class=\"axp-clock-calendar-second-hand\" [style.transform]=\"'rotate(' + secondRotation + 'deg)'\"></div>\n }\n <div class=\"axp-clock-calendar-center-dot\"></div>\n </div>\n </div>\n }\n\n <!-- Date Display -->\n @if (showDate()) {\n <div class=\"axp-clock-calendar-date-display\">\n <i class=\"fa-regular fa-calendar\"></i>\n {{ currentDate | format: 'datetime' : dateFormat() | async }}\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:rgba(23,23,23,.75)}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:rgba(245,245,245,.75)}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:rgba(23,23,23,.5)}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:rgba(245,245,245,.5)}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px rgba(0,0,0,.2)}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXTagModule }, { kind: "ngmodule", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1409
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1410
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPClockCalendarWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n <!-- @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n } -->\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format: 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\"\n >\n <span [style.transform]=\"'rotate(' + -hour.angle + 'deg)'\">{{ hour.number }}</span>\n </div>\n }\n </div>\n\n <!-- Clock Hands -->\n <div class=\"axp-clock-calendar-hands-container\">\n <div class=\"axp-clock-calendar-hour-hand\" [style.transform]=\"'rotate(' + hourRotation + 'deg)'\"></div>\n <div class=\"axp-clock-calendar-minute-hand\" [style.transform]=\"'rotate(' + minuteRotation + 'deg)'\"></div>\n @if (showSeconds()) {\n <div class=\"axp-clock-calendar-second-hand\" [style.transform]=\"'rotate(' + secondRotation + 'deg)'\"></div>\n }\n <div class=\"axp-clock-calendar-center-dot\"></div>\n </div>\n </div>\n }\n\n <!-- Date Display -->\n @if (showDate()) {\n <div class=\"axp-clock-calendar-date-display\">\n <i class=\"fa-regular fa-calendar\"></i>\n {{ currentDate | format: 'datetime' : dateFormat() | async }}\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:rgba(23,23,23,.75)}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:rgba(245,245,245,.75)}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:rgba(23,23,23,.5)}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:rgba(245,245,245,.5)}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px rgba(0,0,0,.2)}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXTagModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1411
1411
  }
1412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, decorators: [{
1412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, decorators: [{
1413
1413
  type: Component,
1414
1414
  args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, AXTagModule, AXDecoratorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n <!-- @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n } -->\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format: 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\"\n >\n <span [style.transform]=\"'rotate(' + -hour.angle + 'deg)'\">{{ hour.number }}</span>\n </div>\n }\n </div>\n\n <!-- Clock Hands -->\n <div class=\"axp-clock-calendar-hands-container\">\n <div class=\"axp-clock-calendar-hour-hand\" [style.transform]=\"'rotate(' + hourRotation + 'deg)'\"></div>\n <div class=\"axp-clock-calendar-minute-hand\" [style.transform]=\"'rotate(' + minuteRotation + 'deg)'\"></div>\n @if (showSeconds()) {\n <div class=\"axp-clock-calendar-second-hand\" [style.transform]=\"'rotate(' + secondRotation + 'deg)'\"></div>\n }\n <div class=\"axp-clock-calendar-center-dot\"></div>\n </div>\n </div>\n }\n\n <!-- Date Display -->\n @if (showDate()) {\n <div class=\"axp-clock-calendar-date-display\">\n <i class=\"fa-regular fa-calendar\"></i>\n {{ currentDate | format: 'datetime' : dateFormat() | async }}\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:rgba(23,23,23,.75)}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:rgba(245,245,245,.75)}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:rgba(23,23,23,.5)}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:rgba(245,245,245,.5)}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px rgba(0,0,0,.2)}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\n"] }]
1415
1415
  }] });
@@ -1639,8 +1639,8 @@ const AXPClockCalendarWidget = {
1639
1639
  class AXPDonutChartWidgetViewComponent extends AXPValueWidgetComponent {
1640
1640
  constructor() {
1641
1641
  super();
1642
- this.donutChartData = computed(() => this.getValue());
1643
- this.donutChartOptions = computed(() => this.options());
1642
+ this.donutChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "donutChartData" }] : []));
1643
+ this.donutChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "donutChartOptions" }] : []));
1644
1644
  this.setOptions({
1645
1645
  ...this.options(),
1646
1646
  width: 300,
@@ -1656,10 +1656,10 @@ class AXPDonutChartWidgetViewComponent extends AXPValueWidgetComponent {
1656
1656
  handleDonutChartSegmentClick(event) {
1657
1657
  //console.log(event);
1658
1658
  }
1659
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPDonutChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1660
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: AXPDonutChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-donut-chart\n [data]=\"donutChartData()\"\n [options]=\"donutChartOptions()\"\n (segmentClick)=\"handleDonutChartSegmentClick($event)\"\n></ax-donut-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXDonutChartComponent, selector: "ax-donut-chart", inputs: ["data", "options"], outputs: ["segmentClick", "segmentHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPDonutChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AXPDonutChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-donut-chart\n [data]=\"donutChartData()\"\n [options]=\"donutChartOptions()\"\n (segmentClick)=\"handleDonutChartSegmentClick($event)\"\n></ax-donut-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXDonutChartComponent, selector: "ax-donut-chart", inputs: ["data", "options"], outputs: ["segmentClick", "segmentHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1661
1661
  }
1662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPDonutChartWidgetViewComponent, decorators: [{
1662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPDonutChartWidgetViewComponent, decorators: [{
1663
1663
  type: Component,
1664
1664
  args: [{ imports: [AXDonutChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-donut-chart\n [data]=\"donutChartData()\"\n [options]=\"donutChartOptions()\"\n (segmentClick)=\"handleDonutChartSegmentClick($event)\"\n></ax-donut-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
1665
1665
  }], ctorParameters: () => [] });
@@ -1921,8 +1921,8 @@ const AXPDonutChartWidget = {
1921
1921
  class AXPGaugeChartWidgetViewComponent extends AXPValueWidgetComponent {
1922
1922
  constructor() {
1923
1923
  super();
1924
- this.gaugeChartValue = computed(() => this.getValue());
1925
- this.gaugeChartOptions = computed(() => this.options());
1924
+ this.gaugeChartValue = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "gaugeChartValue" }] : []));
1925
+ this.gaugeChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "gaugeChartOptions" }] : []));
1926
1926
  this.setOptions({
1927
1927
  ...this.options(),
1928
1928
  width: null,
@@ -1936,10 +1936,10 @@ class AXPGaugeChartWidgetViewComponent extends AXPValueWidgetComponent {
1936
1936
  animationDuration: 800,
1937
1937
  });
1938
1938
  }
1939
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1940
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: AXPGaugeChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-gauge-chart [value]=\"gaugeChartValue()\" [options]=\"gaugeChartOptions()\"></ax-gauge-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXGaugeChartComponent, selector: "ax-gauge-chart", inputs: ["value", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1939
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1940
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AXPGaugeChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-gauge-chart [value]=\"gaugeChartValue()\" [options]=\"gaugeChartOptions()\"></ax-gauge-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXGaugeChartComponent, selector: "ax-gauge-chart", inputs: ["value", "options"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1941
1941
  }
1942
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, decorators: [{
1942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, decorators: [{
1943
1943
  type: Component,
1944
1944
  args: [{ imports: [AXGaugeChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-gauge-chart [value]=\"gaugeChartValue()\" [options]=\"gaugeChartOptions()\"></ax-gauge-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
1945
1945
  }], ctorParameters: () => [] });
@@ -2199,8 +2199,8 @@ const AXPGaugeChartWidget = {
2199
2199
  class AXPLineChartWidgetViewComponent extends AXPValueWidgetComponent {
2200
2200
  constructor() {
2201
2201
  super();
2202
- this.lineChartData = computed(() => this.getValue());
2203
- this.lineChartOptions = computed(() => this.options());
2202
+ this.lineChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "lineChartData" }] : []));
2203
+ this.lineChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "lineChartOptions" }] : []));
2204
2204
  this.setOptions({
2205
2205
  ...this.options(),
2206
2206
  showXAxis: true,
@@ -2222,10 +2222,10 @@ class AXPLineChartWidgetViewComponent extends AXPValueWidgetComponent {
2222
2222
  handleLineChartPointClick(event) {
2223
2223
  //console.log(event);
2224
2224
  }
2225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPLineChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.7", type: AXPLineChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-line-chart\n (pointClick)=\"handleLineChartPointClick($event)\"\n [data]=\"lineChartData()\"\n [options]=\"lineChartOptions()\"\n></ax-line-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXLineChartComponent, selector: "ax-line-chart", inputs: ["data", "options"], outputs: ["pointClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPLineChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AXPLineChartWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ax-line-chart\n (pointClick)=\"handleLineChartPointClick($event)\"\n [data]=\"lineChartData()\"\n [options]=\"lineChartOptions()\"\n></ax-line-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: AXLineChartComponent, selector: "ax-line-chart", inputs: ["data", "options"], outputs: ["pointClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2227
2227
  }
2228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPLineChartWidgetViewComponent, decorators: [{
2228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPLineChartWidgetViewComponent, decorators: [{
2229
2229
  type: Component,
2230
2230
  args: [{ standalone: true, imports: [AXLineChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-line-chart\n (pointClick)=\"handleLineChartPointClick($event)\"\n [data]=\"lineChartData()\"\n [options]=\"lineChartOptions()\"\n></ax-line-chart>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
2231
2231
  }], ctorParameters: () => [] });
@@ -2626,13 +2626,13 @@ const AXPLineChartWidget = {
2626
2626
  class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
2627
2627
  constructor() {
2628
2628
  super(...arguments);
2629
- this.isEditing = signal(false);
2630
- this.wysiwyg = viewChild('wysiwyg');
2631
- this.value = computed(() => this.getValue());
2632
- this.typeValue = signal('');
2633
- this.date = computed(() => this.options()?.date ?? new Date());
2634
- this.bgColor = computed(() => this.options()?.backgroundColor ?? '#FFF8B8');
2635
- this.color = signal('#333333');
2629
+ this.isEditing = signal(false, ...(ngDevMode ? [{ debugName: "isEditing" }] : []));
2630
+ this.wysiwyg = viewChild('wysiwyg', ...(ngDevMode ? [{ debugName: "wysiwyg" }] : []));
2631
+ this.value = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "value" }] : []));
2632
+ this.typeValue = signal('', ...(ngDevMode ? [{ debugName: "typeValue" }] : []));
2633
+ this.date = computed(() => this.options()?.date ?? new Date(), ...(ngDevMode ? [{ debugName: "date" }] : []));
2634
+ this.bgColor = computed(() => this.options()?.backgroundColor ?? '#FFF8B8', ...(ngDevMode ? [{ debugName: "bgColor" }] : []));
2635
+ this.color = signal('#333333', ...(ngDevMode ? [{ debugName: "color" }] : []));
2636
2636
  this.el = inject(ElementRef);
2637
2637
  // Modern color palette with pastel and vibrant options
2638
2638
  this.colorPresets = [
@@ -2674,15 +2674,15 @@ class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
2674
2674
  this.typeValue.set(event.value);
2675
2675
  }
2676
2676
  }
2677
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2678
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPStickyNoteWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { listeners: { "document:click": "handleClickOutside($event)" } }, providers: [
2677
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2678
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPStickyNoteWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { listeners: { "document:click": "handleClickOutside($event)" } }, providers: [
2679
2679
  {
2680
2680
  provide: AXGridLayoutWidgetComponent,
2681
2681
  useExisting: AXPStickyNoteWidgetViewComponent,
2682
2682
  },
2683
- ], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format : 'datetime' : 'dd MMM, YY HH:mm' | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\"\n class=\"ax-h-full\"\n placeHolder=\"start writing with double click...\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-view{color:#2e2e2e!important}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1$1.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i1$1.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXColorBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2683
+ ], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format : 'datetime' : 'dd MMM, YY HH:mm' | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\"\n class=\"ax-h-full\"\n placeHolder=\"start writing with double click...\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-view{color:#2e2e2e!important}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1$1.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i1$1.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "pipe", type: i2.AXFormatPipe, name: "format" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2684
2684
  }
2685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{
2685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{
2686
2686
  type: Component,
2687
2687
  args: [{ standalone: true, imports: [
2688
2688
  AXWysiwygModule,
@@ -2760,19 +2760,19 @@ class AXPTaskListWidgetViewComponent extends AXPValueWidgetComponent {
2760
2760
  this.cdr = inject(ChangeDetectorRef);
2761
2761
  this.datePipe = inject(DatePipe);
2762
2762
  // Configuration options
2763
- this.maxItems = computed(() => this.options()?.maxItems ?? 10);
2764
- this.showDate = computed(() => this.options()?.showDate ?? true);
2765
- this.showAssignee = computed(() => this.options()?.showAssignee ?? true);
2766
- this.showPriority = computed(() => this.options()?.showPriority ?? true);
2767
- this.allowMarkComplete = computed(() => this.options()?.allowMarkComplete ?? true);
2768
- this.showCategories = computed(() => this.options()?.groupByCategory ?? true);
2763
+ this.maxItems = computed(() => this.options()?.maxItems ?? 10, ...(ngDevMode ? [{ debugName: "maxItems" }] : []));
2764
+ this.showDate = computed(() => this.options()?.showDate ?? true, ...(ngDevMode ? [{ debugName: "showDate" }] : []));
2765
+ this.showAssignee = computed(() => this.options()?.showAssignee ?? true, ...(ngDevMode ? [{ debugName: "showAssignee" }] : []));
2766
+ this.showPriority = computed(() => this.options()?.showPriority ?? true, ...(ngDevMode ? [{ debugName: "showPriority" }] : []));
2767
+ this.allowMarkComplete = computed(() => this.options()?.allowMarkComplete ?? true, ...(ngDevMode ? [{ debugName: "allowMarkComplete" }] : []));
2768
+ this.showCategories = computed(() => this.options()?.groupByCategory ?? true, ...(ngDevMode ? [{ debugName: "showCategories" }] : []));
2769
2769
  // Data computed properties
2770
2770
  this.taskItems = computed(() => {
2771
2771
  const value = this.getValue();
2772
2772
  if (!value?.data?.length)
2773
2773
  return [];
2774
2774
  return value.data.slice(0, this.maxItems());
2775
- });
2775
+ }, ...(ngDevMode ? [{ debugName: "taskItems" }] : []));
2776
2776
  }
2777
2777
  // Task counting methods
2778
2778
  getPendingTaskCount() {
@@ -2868,10 +2868,10 @@ class AXPTaskListWidgetViewComponent extends AXPValueWidgetComponent {
2868
2868
  const diffMs = targetDate.getTime() - now.getTime();
2869
2869
  return Math.floor(diffMs / (1000 * 60 * 60 * 24));
2870
2870
  }
2871
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPTaskListWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2872
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPTaskListWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { taskClick: "taskClick", taskCompleted: "taskCompleted" }, providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-size-full ax-p-4 ax-flex ax-flex-col\">\n <!-- Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <h3 class=\"ax-text-lg ax-font-semibold ax-flex ax-items-center ax-gap-2\">\n <ax-icon class=\"ax-text-primary-500\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n {{ 'tasklist.title' | translate: { scope: 'dashboard' } | async }}\n </h3>\n <div class=\"ax-flex ax-gap-2\">\n @if (getPendingTaskCount() > 0) {\n <ax-badge\n [text]=\"getPendingTaskCount() + ' ' + ('tasklist.pending' | translate: { scope: 'dashboard' } | async)\"\n [color]=\"'warning'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n @if (getCompletedTaskCount() > 0) {\n <ax-badge\n [text]=\"getCompletedTaskCount() + ' ' + ('tasklist.completed' | translate: { scope: 'dashboard' } | async)\"\n [color]=\"'success'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n </div>\n </div>\n\n <!-- Task List -->\n <div class=\"ax-space-y-4 ax-my-4 ax-px-1 ax-overflow-auto ax-grow\">\n @if (showCategories() && hasCategories()) {\n <!-- Categorized Tasks -->\n @for (category of getCategories(); track category) {\n <div class=\"ax-mb-5\">\n <!-- Category Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3 ax-h-5\">\n <h4 class=\"ax-font-medium category-header\">{{ category }}</h4>\n @if (getCategoryTaskCount(category)) {\n <ax-badge\n [text]=\"getCategoryTaskCount(category).toString()\"\n [color]=\"'primary'\"\n size=\"sm\"\n class=\"ax-rounded-full\"\n ></ax-badge>\n }\n </div>\n <!-- Tasks in Category -->\n <div class=\"ax-space-y-2\">\n @for (task of getTasksByCategory(category); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n }\n </div>\n </div>\n }\n } @else {\n <!-- Uncategorized Tasks -->\n <div class=\"ax-space-y-2\">\n @for (task of taskItems(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-14 ax-px-4 ax-text-gray-400 empty-state\"\n >\n <ax-icon class=\"ax-text-5xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n <p class=\"ax-text-center ax-font-medium\">\n {{ 'tasklist.noTasks' | translate: { scope: 'dashboard' } | async }}\n </p>\n <p class=\"ax-text-center ax-text-sm ax-mt-2\">\n {{ 'tasklist.addTask' | translate: { scope: 'dashboard' } | async }}\n </p>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div\n class=\"ax-flex ax-gap-3 ax-items-start ax-p-3 task-item\"\n [class.priority-high]=\"task.priority === 'high'\"\n [class.priority-medium]=\"task.priority === 'medium'\"\n [class.priority-low]=\"task.priority === 'low'\"\n >\n <!-- Checkbox -->\n <ax-check-box\n class=\"ax-flex-shrink-0 ax-mt-1 task-checkbox\"\n [value]=\"task.completed\"\n [disabled]=\"!allowMarkComplete()\"\n (valueChange)=\"onTaskCompletionChange(task, $event)\"\n >\n </ax-check-box>\n\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <h6 class=\"ax-font-medium ax-truncate ax-pb-1\" [title]=\"task.title\" [class.task-completed]=\"task.completed\">\n {{ task.title }}\n </h6>\n @if (showPriority() && task.priority) {\n <ax-badge\n [color]=\"getPriorityColor(task.priority)\"\n [text]=\"task.priority\"\n size=\"sm\"\n class=\"ax-ml-1 ax-rounded-full\"\n ></ax-badge>\n }\n </div>\n\n <!-- Metadata -->\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-mt-2 ax-text-xs ax-text-gray-500\">\n @if (showDate() && task.dueDate) {\n <span\n class=\"ax-flex ax-items-center ax-gap-1 due-date\"\n [class.ax-text-danger-500]=\"getDaysDifference(task.dueDate) < 0\"\n [class.overdue]=\"getDaysDifference(task.dueDate) < 0\"\n >\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n {{ formatDueDate(task.dueDate) }}\n </span>\n }\n @if (showAssignee() && task.assignedTo) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n @if (task.assignedTo.image) {\n <ax-icon class=\"ax-bg-primary-100 ax-text-primary-500 ax-rounded-full ax-p-1\">\n <i class=\"fa-light fa-user\"></i>\n </ax-icon>\n } @else {\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n }\n {{ task.assignedTo.name }}\n </span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;width:100%}.task-item{transition:all .2s ease-in-out;border-left:3px solid transparent}.task-item:hover{background-color:rgba(var(--ax-sys-color-on-surface),.1);transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,.05)}.task-item.priority-high{border-left-color:rgb(var(--ax-sys-color-danger-500))}.task-item.priority-medium{border-left-color:rgb(var(--ax-sys-color-warning-500))}.task-item.priority-low{border-left-color:rgb(var(--ax-sys-color-success-500))}.task-item:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,.05)}.task-completed{text-decoration:line-through;color:var(--ax-text-secondary);opacity:.7;transition:all .3s ease}.category-header{position:relative}.category-header:after{content:\"\";position:absolute;bottom:-8px;left:0;width:40px;height:3px;background-color:var(--ax-primary-500);border-radius:3px;transition:width .3s ease}.category-header:hover:after{width:60px}.empty-state{animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.task-checkbox ::ng-deep .ax-checkbox{transition:all .2s ease}.task-checkbox ::ng-deep .ax-checkbox:hover{transform:scale(1.1)}.due-date.overdue{animation:pulse 2s infinite}@keyframes pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.ax-space-y-2>*{animation:slideInRight .3s ease forwards;opacity:0}.ax-space-y-2>*:nth-child(1){animation-delay:.05s}.ax-space-y-2>*:nth-child(2){animation-delay:.1s}.ax-space-y-2>*:nth-child(3){animation-delay:.15s}.ax-space-y-2>*:nth-child(4){animation-delay:.2s}.ax-space-y-2>*:nth-child(5){animation-delay:.25s}.ax-space-y-2>*:nth-child(6){animation-delay:.3s}.ax-space-y-2>*:nth-child(7){animation-delay:.35s}.ax-space-y-2>*:nth-child(8){animation-delay:.4s}.ax-space-y-2>*:nth-child(9){animation-delay:.45s}.ax-space-y-2>*:nth-child(10){animation-delay:.5s}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2871
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPTaskListWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2872
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPTaskListWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { taskClick: "taskClick", taskCompleted: "taskCompleted" }, providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-size-full ax-p-4 ax-flex ax-flex-col\">\n <!-- Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <h3 class=\"ax-text-lg ax-font-semibold ax-flex ax-items-center ax-gap-2\">\n <ax-icon class=\"ax-text-primary-500\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n {{ 'tasklist.title' | translate: { scope: 'dashboard' } | async }}\n </h3>\n <div class=\"ax-flex ax-gap-2\">\n @if (getPendingTaskCount() > 0) {\n <ax-badge\n [text]=\"getPendingTaskCount() + ' ' + ('tasklist.pending' | translate: { scope: 'dashboard' } | async)\"\n [color]=\"'warning'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n @if (getCompletedTaskCount() > 0) {\n <ax-badge\n [text]=\"getCompletedTaskCount() + ' ' + ('tasklist.completed' | translate: { scope: 'dashboard' } | async)\"\n [color]=\"'success'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n </div>\n </div>\n\n <!-- Task List -->\n <div class=\"ax-space-y-4 ax-my-4 ax-px-1 ax-overflow-auto ax-grow\">\n @if (showCategories() && hasCategories()) {\n <!-- Categorized Tasks -->\n @for (category of getCategories(); track category) {\n <div class=\"ax-mb-5\">\n <!-- Category Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3 ax-h-5\">\n <h4 class=\"ax-font-medium category-header\">{{ category }}</h4>\n @if (getCategoryTaskCount(category)) {\n <ax-badge\n [text]=\"getCategoryTaskCount(category).toString()\"\n [color]=\"'primary'\"\n size=\"sm\"\n class=\"ax-rounded-full\"\n ></ax-badge>\n }\n </div>\n <!-- Tasks in Category -->\n <div class=\"ax-space-y-2\">\n @for (task of getTasksByCategory(category); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n }\n </div>\n </div>\n }\n } @else {\n <!-- Uncategorized Tasks -->\n <div class=\"ax-space-y-2\">\n @for (task of taskItems(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-14 ax-px-4 ax-text-gray-400 empty-state\"\n >\n <ax-icon class=\"ax-text-5xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n <p class=\"ax-text-center ax-font-medium\">\n {{ 'tasklist.noTasks' | translate: { scope: 'dashboard' } | async }}\n </p>\n <p class=\"ax-text-center ax-text-sm ax-mt-2\">\n {{ 'tasklist.addTask' | translate: { scope: 'dashboard' } | async }}\n </p>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div\n class=\"ax-flex ax-gap-3 ax-items-start ax-p-3 task-item\"\n [class.priority-high]=\"task.priority === 'high'\"\n [class.priority-medium]=\"task.priority === 'medium'\"\n [class.priority-low]=\"task.priority === 'low'\"\n >\n <!-- Checkbox -->\n <ax-check-box\n class=\"ax-flex-shrink-0 ax-mt-1 task-checkbox\"\n [value]=\"task.completed\"\n [disabled]=\"!allowMarkComplete()\"\n (valueChange)=\"onTaskCompletionChange(task, $event)\"\n >\n </ax-check-box>\n\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <h6 class=\"ax-font-medium ax-truncate ax-pb-1\" [title]=\"task.title\" [class.task-completed]=\"task.completed\">\n {{ task.title }}\n </h6>\n @if (showPriority() && task.priority) {\n <ax-badge\n [color]=\"getPriorityColor(task.priority)\"\n [text]=\"task.priority\"\n size=\"sm\"\n class=\"ax-ml-1 ax-rounded-full\"\n ></ax-badge>\n }\n </div>\n\n <!-- Metadata -->\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-mt-2 ax-text-xs ax-text-gray-500\">\n @if (showDate() && task.dueDate) {\n <span\n class=\"ax-flex ax-items-center ax-gap-1 due-date\"\n [class.ax-text-danger-500]=\"getDaysDifference(task.dueDate) < 0\"\n [class.overdue]=\"getDaysDifference(task.dueDate) < 0\"\n >\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n {{ formatDueDate(task.dueDate) }}\n </span>\n }\n @if (showAssignee() && task.assignedTo) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n @if (task.assignedTo.image) {\n <ax-icon class=\"ax-bg-primary-100 ax-text-primary-500 ax-rounded-full ax-p-1\">\n <i class=\"fa-light fa-user\"></i>\n </ax-icon>\n } @else {\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n }\n {{ task.assignedTo.name }}\n </span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;width:100%}.task-item{transition:all .2s ease-in-out;border-left:3px solid transparent}.task-item:hover{background-color:rgba(var(--ax-sys-color-on-surface),.1);transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,.05)}.task-item.priority-high{border-left-color:rgb(var(--ax-sys-color-danger-500))}.task-item.priority-medium{border-left-color:rgb(var(--ax-sys-color-warning-500))}.task-item.priority-low{border-left-color:rgb(var(--ax-sys-color-success-500))}.task-item:active{transform:translateY(0);box-shadow:0 1px 3px rgba(0,0,0,.05)}.task-completed{text-decoration:line-through;color:var(--ax-text-secondary);opacity:.7;transition:all .3s ease}.category-header{position:relative}.category-header:after{content:\"\";position:absolute;bottom:-8px;left:0;width:40px;height:3px;background-color:var(--ax-primary-500);border-radius:3px;transition:width .3s ease}.category-header:hover:after{width:60px}.empty-state{animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.task-checkbox ::ng-deep .ax-checkbox{transition:all .2s ease}.task-checkbox ::ng-deep .ax-checkbox:hover{transform:scale(1.1)}.due-date.overdue{animation:pulse 2s infinite}@keyframes pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.ax-space-y-2>*{animation:slideInRight .3s ease forwards;opacity:0}.ax-space-y-2>*:nth-child(1){animation-delay:.05s}.ax-space-y-2>*:nth-child(2){animation-delay:.1s}.ax-space-y-2>*:nth-child(3){animation-delay:.15s}.ax-space-y-2>*:nth-child(4){animation-delay:.2s}.ax-space-y-2>*:nth-child(5){animation-delay:.25s}.ax-space-y-2>*:nth-child(6){animation-delay:.3s}.ax-space-y-2>*:nth-child(7){animation-delay:.35s}.ax-space-y-2>*:nth-child(8){animation-delay:.4s}.ax-space-y-2>*:nth-child(9){animation-delay:.45s}.ax-space-y-2>*:nth-child(10){animation-delay:.5s}@keyframes slideInRight{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2873
2873
  }
2874
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPTaskListWidgetViewComponent, decorators: [{
2874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPTaskListWidgetViewComponent, decorators: [{
2875
2875
  type: Component,
2876
2876
  args: [{ standalone: true, imports: [
2877
2877
  CommonModule,
@@ -3216,10 +3216,10 @@ class AXPWeatherApiAbstract {
3216
3216
  getRandomInt(min, max) {
3217
3217
  return Math.floor(Math.random() * (max - min + 1)) + min;
3218
3218
  }
3219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiAbstract, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3220
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiAbstract }); }
3219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiAbstract, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3220
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiAbstract }); }
3221
3221
  }
3222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiAbstract, decorators: [{
3222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiAbstract, decorators: [{
3223
3223
  type: Injectable
3224
3224
  }] });
3225
3225
 
@@ -3413,10 +3413,10 @@ class AXPWeatherApiMockService extends AXPWeatherApiAbstract {
3413
3413
  // No-op for mock service
3414
3414
  console.log('API key setting is ignored in mock weather service');
3415
3415
  }
3416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiMockService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3417
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiMockService }); }
3416
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiMockService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3417
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiMockService }); }
3418
3418
  }
3419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiMockService, decorators: [{
3419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiMockService, decorators: [{
3420
3420
  type: Injectable
3421
3421
  }] });
3422
3422
 
@@ -3571,10 +3571,10 @@ class AXPWeatherApiService extends AXPWeatherApiAbstract {
3571
3571
  });
3572
3572
  return weatherData;
3573
3573
  }
3574
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3575
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiService }); }
3574
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
3575
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiService }); }
3576
3576
  }
3577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherApiService, decorators: [{
3577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherApiService, decorators: [{
3578
3578
  type: Injectable
3579
3579
  }] });
3580
3580
 
@@ -3582,14 +3582,14 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
3582
3582
  constructor() {
3583
3583
  super();
3584
3584
  this.weatherService = inject(AXPWeatherApiAbstract);
3585
- this.weatherData = signal(null);
3586
- this.isLoading = signal(true);
3587
- this.hasError = signal(false);
3588
- this.errorMessage = signal('');
3589
- this.city = computed(() => this.options()['city'] || 'New York');
3590
- this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C');
3591
- this.forecastDays = computed(() => (this.options()['forecastDays'] ?? 2) + 1);
3592
- this.forecastHours = computed(() => this.options()['forecastHours'] ?? 5);
3585
+ this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: "weatherData" }] : []));
3586
+ this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
3587
+ this.hasError = signal(false, ...(ngDevMode ? [{ debugName: "hasError" }] : []));
3588
+ this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
3589
+ this.city = computed(() => this.options()['city'] || 'New York', ...(ngDevMode ? [{ debugName: "city" }] : []));
3590
+ this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: "temperatureUnit" }] : []));
3591
+ this.forecastDays = computed(() => (this.options()['forecastDays'] ?? 2) + 1, ...(ngDevMode ? [{ debugName: "forecastDays" }] : []));
3592
+ this.forecastHours = computed(() => this.options()['forecastHours'] ?? 5, ...(ngDevMode ? [{ debugName: "forecastHours" }] : []));
3593
3593
  this.iconCache = new Map();
3594
3594
  this.displayedForecast = computed(() => {
3595
3595
  this.forecastDays();
@@ -3598,7 +3598,7 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
3598
3598
  return [];
3599
3599
  // Skip today's forecast for the bottom row display
3600
3600
  return weatherData.forecast.slice(1, this.forecastDays());
3601
- });
3601
+ }, ...(ngDevMode ? [{ debugName: "displayedForecast" }] : []));
3602
3602
  this.displayedHourlyForecast = computed(() => {
3603
3603
  this.forecastHours();
3604
3604
  const weatherData = this.weatherData();
@@ -3621,7 +3621,7 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
3621
3621
  }
3622
3622
  // Limit to requested number of hours
3623
3623
  return result.slice(0, this.forecastHours());
3624
- });
3624
+ }, ...(ngDevMode ? [{ debugName: "displayedHourlyForecast" }] : []));
3625
3625
  effect(() => {
3626
3626
  if (this.options()) {
3627
3627
  this.loadWeatherData();
@@ -3727,8 +3727,8 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
3727
3727
  getHourTemp(hour) {
3728
3728
  return this.temperatureUnit() === '°C' ? hour.tempC : hour.tempF;
3729
3729
  }
3730
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAdvancedWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3731
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMAdvancedWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
3730
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAdvancedWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3731
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMAdvancedWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
3732
3732
  {
3733
3733
  provide: AXPWeatherApiAbstract,
3734
3734
  useClass: AXPWeatherApiService,
@@ -3870,9 +3870,9 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
3870
3870
  </div>
3871
3871
  }
3872
3872
  </div>
3873
- `, isInline: true, styles: [":host{display:block;width:100%;height:100%}.ax-text-muted{color:gray}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}sup{font-weight:300;position:relative;top:-.3em;font-size:.6em;margin-left:.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2$3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$2.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3873
+ `, isInline: true, styles: [":host{display:block;width:100%;height:100%}.ax-text-muted{color:gray}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}sup{font-weight:300;position:relative;top:-.3em;font-size:.6em;margin-left:.1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1$2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$3.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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3874
3874
  }
3875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAdvancedWeatherViewComponent, decorators: [{
3875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAdvancedWeatherViewComponent, decorators: [{
3876
3876
  type: Component,
3877
3877
  args: [{ template: `
3878
3878
  <div class="ax-size-full ax-p-6">
@@ -4131,12 +4131,12 @@ class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {
4131
4131
  constructor() {
4132
4132
  super();
4133
4133
  this.weatherService = inject(AXPWeatherApiAbstract);
4134
- this.weatherData = signal(null);
4135
- this.isLoading = signal(true);
4136
- this.hasError = signal(false);
4137
- this.errorMessage = signal('');
4138
- this.city = computed(() => this.options()['city'] || 'New York');
4139
- this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C');
4134
+ this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: "weatherData" }] : []));
4135
+ this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
4136
+ this.hasError = signal(false, ...(ngDevMode ? [{ debugName: "hasError" }] : []));
4137
+ this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
4138
+ this.city = computed(() => this.options()['city'] || 'New York', ...(ngDevMode ? [{ debugName: "city" }] : []));
4139
+ this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: "temperatureUnit" }] : []));
4140
4140
  this.iconCache = new Map();
4141
4141
  effect(() => {
4142
4142
  if (this.options()) {
@@ -4203,8 +4203,8 @@ class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {
4203
4203
  ? this.weatherData().forecast[0].minTempC
4204
4204
  : this.weatherData().forecast[0].minTempF;
4205
4205
  }
4206
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMMinimalWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4207
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMMinimalWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
4206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMMinimalWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4207
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMMinimalWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
4208
4208
  {
4209
4209
  provide: AXPWeatherApiAbstract,
4210
4210
  useClass: AXPWeatherApiService,
@@ -4277,9 +4277,9 @@ class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {
4277
4277
  }
4278
4278
  </div>
4279
4279
  }
4280
- `, isInline: true, styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2$3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$2.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4280
+ `, isInline: true, styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1$2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$3.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: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4281
4281
  }
4282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMMinimalWeatherViewComponent, decorators: [{
4282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMMinimalWeatherViewComponent, decorators: [{
4283
4283
  type: Component,
4284
4284
  args: [{ template: `
4285
4285
  @if (weatherData() && !isLoading() && !hasError()) {
@@ -4443,46 +4443,46 @@ class AXPWeatherWidgetViewComponent extends AXPValueWidgetComponent {
4443
4443
  // Weather API service instance
4444
4444
  this.weatherService = inject(AXPWeatherApiAbstract);
4445
4445
  // State signals
4446
- this.weatherData = signal(null);
4447
- this.isLoading = signal(true);
4448
- this.hasError = signal(false);
4449
- this.errorMessage = signal('');
4450
- this.isForecastLoading = signal(false);
4446
+ this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: "weatherData" }] : []));
4447
+ this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
4448
+ this.hasError = signal(false, ...(ngDevMode ? [{ debugName: "hasError" }] : []));
4449
+ this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
4450
+ this.isForecastLoading = signal(false, ...(ngDevMode ? [{ debugName: "isForecastLoading" }] : []));
4451
4451
  // Auto-refresh subscription
4452
4452
  this.refreshSubscription = null;
4453
4453
  // Option-derived computed properties
4454
4454
  this.city = computed(() => {
4455
4455
  return this.options()['city'] || 'Newyork';
4456
- });
4457
- this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C');
4458
- this.windSpeedUnit = computed(() => this.options()['windSpeedUnit']?.id || 'km/h');
4456
+ }, ...(ngDevMode ? [{ debugName: "city" }] : []));
4457
+ this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: "temperatureUnit" }] : []));
4458
+ this.windSpeedUnit = computed(() => this.options()['windSpeedUnit']?.id || 'km/h', ...(ngDevMode ? [{ debugName: "windSpeedUnit" }] : []));
4459
4459
  // Display option flags
4460
- this.showCurrentCondition = computed(() => this.options()['showCurrentCondition'] !== false);
4461
- this.showTemperature = computed(() => this.options()['showTemperature'] !== false);
4462
- this.showHumidity = computed(() => this.options()['showHumidity'] !== false);
4463
- this.showWind = computed(() => this.options()['showWind'] !== false);
4464
- this.showForecast = computed(() => this.options()['showForecast'] !== false);
4465
- this.forecastDays = computed(() => this.options()['forecastDays'] ?? 5);
4460
+ this.showCurrentCondition = computed(() => this.options()['showCurrentCondition'] !== false, ...(ngDevMode ? [{ debugName: "showCurrentCondition" }] : []));
4461
+ this.showTemperature = computed(() => this.options()['showTemperature'] !== false, ...(ngDevMode ? [{ debugName: "showTemperature" }] : []));
4462
+ this.showHumidity = computed(() => this.options()['showHumidity'] !== false, ...(ngDevMode ? [{ debugName: "showHumidity" }] : []));
4463
+ this.showWind = computed(() => this.options()['showWind'] !== false, ...(ngDevMode ? [{ debugName: "showWind" }] : []));
4464
+ this.showForecast = computed(() => this.options()['showForecast'] !== false, ...(ngDevMode ? [{ debugName: "showForecast" }] : []));
4465
+ this.forecastDays = computed(() => this.options()['forecastDays'] ?? 5, ...(ngDevMode ? [{ debugName: "forecastDays" }] : []));
4466
4466
  // Refresh settings
4467
- this.autoRefresh = computed(() => this.options()['autoRefresh'] !== false);
4468
- this.refreshInterval = computed(() => this.options()['refreshInterval']?.id ?? 15);
4467
+ this.autoRefresh = computed(() => this.options()['autoRefresh'] !== false, ...(ngDevMode ? [{ debugName: "autoRefresh" }] : []));
4468
+ this.refreshInterval = computed(() => this.options()['refreshInterval']?.id ?? 15, ...(ngDevMode ? [{ debugName: "refreshInterval" }] : []));
4469
4469
  // Reactivity effects
4470
4470
  this.optionsEffect = effect(() => {
4471
4471
  const opts = this.options();
4472
4472
  this.loadWeatherData();
4473
4473
  this.setupRefreshTimer();
4474
- });
4474
+ }, ...(ngDevMode ? [{ debugName: "optionsEffect" }] : []));
4475
4475
  this.valueEffect = effect(() => {
4476
4476
  this.city();
4477
4477
  this.loadWeatherData();
4478
- });
4478
+ }, ...(ngDevMode ? [{ debugName: "valueEffect" }] : []));
4479
4479
  this.displayedForecast = computed(() => {
4480
4480
  const weatherData = this.weatherData();
4481
4481
  if (!weatherData?.forecast)
4482
4482
  return [];
4483
4483
  const forecastDays = this.forecastDays();
4484
4484
  return weatherData.forecast.slice(0, forecastDays);
4485
- });
4485
+ }, ...(ngDevMode ? [{ debugName: "displayedForecast" }] : []));
4486
4486
  // Inject the abstract service which will resolve to either the mock or real implementation
4487
4487
  this.weatherService = inject(AXPWeatherApiAbstract);
4488
4488
  setTimeout(() => {
@@ -4713,15 +4713,15 @@ class AXPWeatherWidgetViewComponent extends AXPValueWidgetComponent {
4713
4713
  parseDate(dateStr) {
4714
4714
  return new Date(dateStr);
4715
4715
  }
4716
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherWidgetViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4717
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPWeatherWidgetViewComponent, isStandalone: true, selector: "ng-component", providers: [
4716
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherWidgetViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4717
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPWeatherWidgetViewComponent, isStandalone: true, selector: "ng-component", providers: [
4718
4718
  {
4719
4719
  provide: AXPWeatherApiAbstract,
4720
4720
  useClass: AXPWeatherApiService,
4721
4721
  },
4722
- ], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerElement"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Weather Widget Component Template -->\n<div class=\"axp-weather-container\" #containerElement>\n <!-- Loading indicator -->\n @if (isLoading()) {\n <div class=\"axp-weather-loading-overlay\">\n <div class=\"axp-weather-loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>{{ 'weather.loading' | translate: { scope: 'dashboard' } | async }}</span>\n </div>\n </div>\n }\n\n <!-- Error message -->\n @if (hasError()) {\n <div class=\"axp-weather-error-overlay\">\n <div class=\"axp-weather-error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>{{ errorMessage() | translate: { scope: 'dashboard' } | async }}</span>\n <button class=\"axp-weather-retry-button\" (click)=\"refreshWeather()\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.retry' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n </div>\n }\n\n <!-- Weather content - only show when we have data -->\n @if (weatherData()) {\n <!-- Background decorations based on weather condition -->\n <div class=\"axp-weather-background-decorations\">\n <div class=\"axp-weather-decoration\" [ngClass]=\"weatherData()?.current?.condition?.toLowerCase()\"></div>\n <div class=\"axp-weather-gradient-overlay\"></div>\n </div>\n\n <div class=\"axp-weather-inner\">\n <!-- Location information section -->\n <div class=\"axp-weather-location-info\">\n <div class=\"axp-weather-location-icon\">\n <i class=\"fa-solid fa-location-dot\"></i>\n </div>\n <div class=\"axp-weather-location-text\">\n <h2 class=\"axp-weather-location-name\">{{ city() }}</h2>\n </div>\n </div>\n\n <!-- Current weather conditions section -->\n <div class=\"axp-weather-current-weather\">\n <!-- Weather icon and condition name -->\n @if (showCurrentCondition()) {\n <div class=\"axp-weather-condition\">\n <div class=\"axp-weather-icon-wrapper\">\n <div class=\"axp-weather-icon\">\n <img [src]=\"getConditionIcon(weatherData()?.current?.condition || '')\" />\n </div>\n <div\n class=\"axp-weather-icon-glow\"\n [style.background-color]=\"getConditionColor(weatherData()?.current?.condition || '')\"\n ></div>\n </div>\n <div class=\"axp-weather-condition-name\">\n {{ getCurrentCondition() | translate: { scope: 'dashboard' } | async }}\n </div>\n </div>\n }\n\n <!-- Temperature display -->\n @if (showTemperature()) {\n <div class=\"axp-weather-temperature\">\n <span class=\"axp-weather-temperature-value\">{{ getCurrentTemperature() }}</span>\n <span class=\"axp-weather-temperature-unit\">{{\n getTemperatureUnit() | translate: { scope: 'dashboard' } | async\n }}</span>\n </div>\n }\n </div>\n\n <!-- Weather details section (humidity and wind) -->\n @if (showHumidity() || showWind()) {\n <div class=\"axp-weather-details\">\n <!-- Humidity information -->\n @if (showHumidity()) {\n <div class=\"axp-weather-detail-item\">\n <div class=\"axp-weather-detail-icon\">\n <i class=\"fa-solid fa-droplet\"></i>\n </div>\n <div class=\"axp-weather-detail-info\">\n <div class=\"axp-weather-detail-label\">\n {{ 'weather.humidity' | translate: { scope: 'dashboard' } | async }}\n </div>\n <div class=\"axp-weather-detail-value\">{{ getHumidity() }}%</div>\n </div>\n </div>\n }\n\n <!-- Wind speed information -->\n @if (showWind()) {\n <div class=\"axp-weather-detail-item\">\n <div class=\"axp-weather-detail-icon\">\n <i class=\"fa-solid fa-wind\"></i>\n </div>\n <div class=\"axp-weather-detail-info\">\n <div class=\"axp-weather-detail-label\">\n {{ 'weather.wind' | translate: { scope: 'dashboard' } | async }}\n </div>\n <div class=\"axp-weather-detail-value\">\n {{ getWindSpeed() }} {{ getWindSpeedUnit() | translate: { scope: 'dashboard' } | async }}\n </div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Weather forecast section -->\n @if (showForecast() && weatherData()?.forecast) {\n <div class=\"axp-weather-forecast\">\n <div class=\"axp-weather-forecast-header\">\n <h3 class=\"axp-weather-forecast-title\">\n <i class=\"fa-solid fa-calendar-days\"></i>\n <span class=\"ax-px-1\">{{ 'weather.forecast' | translate: { scope: 'dashboard' } | async }}</span>\n </h3>\n </div>\n <!-- Loading indicator for forecast -->\n <!-- @if (isForecastLoading()) {\n <div class=\"axp-weather-forecast-loading\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>{{ 'weather.loading-forecast' | translate: { scope: 'dashboard' } | async }}</span>\n </div>\n } -->\n <!-- Scrollable forecast days display -->\n <div class=\"axp-weather-forecast-items\">\n @for (day of displayedForecast(); track day.day) {\n <div class=\"axp-weather-forecast-day\">\n <div class=\"axp-weather-forecast-day-name\">\n {{ getDayName(parseDate(day.date)) | translate: { scope: 'dashboard' } | async }}\n </div>\n <div\n class=\"axp-weather-forecast-icon\"\n [title]=\"getConditionName(day.condition) | translate: { scope: 'dashboard' } | async\"\n >\n <img [src]=\"getConditionIcon(day.condition || '')\" />\n </div>\n <div class=\"axp-weather-forecast-temps\">\n <span class=\"axp-weather-forecast-low\">\n {{ temperatureUnit() === '\u00B0C' ? day.minTempC : day.minTempF\n }}{{ getTemperatureUnit() | translate: { scope: 'dashboard' } | async }}\n </span>\n <span class=\"axp-weather-forecast-high\">\n {{ temperatureUnit() === '\u00B0C' ? day.maxTempC : day.maxTempF\n }}{{ getTemperatureUnit() | translate: { scope: 'dashboard' } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Last updated timestamp -->\n <div class=\"axp-weather-last-updated\">\n <span>{{ 'weather.last-updated' | translate: { scope: 'dashboard' } | async }}: {{ getLastUpdated() }}</span>\n </div>\n\n <!-- Manual refresh button -->\n <div class=\"axp-weather-refresh-action\">\n <button\n class=\"axp-weather-refresh-button\"\n (click)=\"refreshWeather()\"\n [attr.aria-label]=\"'weather.refresh' | translate: { scope: 'dashboard' } | async\"\n [title]=\"'weather.refresh' | translate: { scope: 'dashboard' } | async\"\n >\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.refresh' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n </div>\n } @else if (!isLoading() && !hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"axp-weather-no-data-state\">\n <i class=\"fa-solid fa-cloud-sun\"></i>\n <p>{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <button class=\"axp-weather-refresh-button\" (click)=\"refreshWeather()\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.load-data' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%;--primary-gradient-start: #2196f3;--primary-gradient-end: #1976d2;--shadow-color: rgba(0, 0, 0, .2);--glass-bg: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--transition-speed: .3s}.axp-weather-container{width:100%;height:100%;overflow:hidden;position:relative;box-shadow:0 4px 8px rgba(0,0,0,.1);min-height:300px}.axp-weather-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(44,62,80,.85);display:flex;justify-content:center;align-items:center;z-index:100}.axp-weather-loading-spinner{text-align:center}.axp-weather-loading-spinner i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-loading-spinner span{display:block;color:#fff;font-size:1rem}.axp-weather-error-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(189,54,47,.85);display:flex;justify-content:center;align-items:center}.axp-weather-error-message{text-align:center;padding:1rem}.axp-weather-error-message i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-error-message span{display:block;color:#fff;font-size:1.1rem;margin-bottom:1rem}.axp-weather-error-message .axp-weather-retry-button{color:#bd362f;border:none;border-radius:4px;padding:.5rem 1rem;font-size:1rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-error-message .axp-weather-retry-button:hover{transform:translateY(-1px)}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem;color:rgba(255,255,255,.8)}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}.axp-weather-no-data-state .axp-weather-refresh-button{background-color:rgba(255,255,255,.2);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:1rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-no-data-state .axp-weather-refresh-button:hover{background-color:rgba(255,255,255,.3);transform:translateY(-1px)}.axp-weather-background-decorations{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.axp-weather-decoration{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center}.axp-weather-gradient-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.axp-weather-inner{position:relative;z-index:2;height:100%;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between}.axp-weather-location-info{display:flex;align-items:center;margin-bottom:1.5rem}.axp-weather-location-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:rgba(255,255,255,.2);border-radius:50%;margin-right:.75rem}.axp-weather-location-icon i{color:#fff}.axp-weather-location-name{margin:0;font-size:1.5rem;font-weight:500;text-shadow:1px 1px 3px rgba(0,0,0,.2);text-transform:capitalize}.axp-weather-current-weather{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap}.axp-weather-condition{display:flex;flex-direction:column;align-items:center}.axp-weather-icon-wrapper{position:relative;margin-bottom:.5rem}.axp-weather-icon{position:relative;z-index:2;scale:2}.axp-weather-icon i{font-size:2.75rem;filter:drop-shadow(0 0 8px rgba(0,0,0,.3))}.axp-weather-icon-glow{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);width:45px;height:45px;border-radius:50%;filter:blur(15px);opacity:.4}.axp-weather-condition-name{font-size:1.1rem;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.axp-weather-temperature{display:flex;align-items:flex-start;text-shadow:1px 1px 3px rgba(0,0,0,.3)}.axp-weather-temperature-value{font-size:3.5rem;font-weight:500;line-height:1}.axp-weather-temperature-unit{font-size:1.5rem;margin-top:.25rem}.axp-weather-details{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem;padding:1rem;border-radius:8px}.axp-weather-detail-item{display:flex;align-items:center;flex:1;min-width:120px}.axp-weather-detail-icon{width:40px;height:40px;border-radius:50%;background-color:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin-right:.75rem}.axp-weather-detail-icon i{font-size:1.25rem}.axp-weather-detail-info{display:flex;padding-inline:.25rem;flex-direction:column}.axp-weather-detail-label{font-size:.875rem;margin-bottom:.25rem}.axp-weather-detail-value{font-size:1.125rem;font-weight:500}.axp-weather-forecast{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));margin-bottom:.5rem;border-radius:8px;padding:1rem}.axp-weather-forecast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.axp-weather-forecast-title{margin:0;font-size:1.125rem;font-weight:500;display:flex;align-items:center}.axp-weather-forecast-title i{margin-right:.5rem;opacity:.8}.axp-weather-scroll-indicator{color:rgba(255,255,255,.6)}.axp-weather-forecast-items{display:flex;overflow-x:auto;gap:.75rem;padding-bottom:.5rem}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.3);border-radius:4px}.axp-weather-forecast-items::-webkit-scrollbar-track{background-color:rgba(0,0,0,.1);border-radius:4px}.axp-weather-forecast-day{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));min-width:90px;display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-radius:6px;transition:all .3s ease}.axp-weather-forecast-day:hover{transform:translateY(-2px)}.axp-weather-forecast-day-name{font-size:.875rem;margin-bottom:.5rem;font-weight:500}.axp-weather-forecast-icon{font-size:1.5rem;margin-bottom:.5rem}.axp-weather-forecast-icon i{filter:drop-shadow(0 0 5px rgba(0,0,0,.2))}.axp-weather-forecast-temps{display:flex;flex-direction:row;gap:.75rem;align-items:center;font-size:.775rem}.axp-weather-last-updated{text-align:center;font-size:.75rem;opacity:.7;margin-bottom:.5rem}.axp-weather-refresh-action{text-align:center}.axp-weather-refresh-button{background-color:rgba(255,255,255,.2);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-refresh-button:hover{background-color:rgba(255,255,255,.3);transform:translateY(-1px)}.axp-weather-refresh-button i{font-size:.875rem}@media (max-width: 576px){.axp-weather-inner{padding:.8rem;gap:.4rem}.axp-weather-location-name{font-size:1.1rem;padding-inline:.25rem}.axp-weather-temperature{font-size:2.5rem}.axp-weather-temperature-unit{font-size:1.1rem}.axp-weather-weather-details{flex-direction:column;gap:.5rem}.axp-weather-forecast-items{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem;margin:0 -.4rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;mask-image:linear-gradient(to right,#000 95%,rgba(0,0,0,0));-webkit-mask-image:linear-gradient(to right,rgb(0,0,0) 95%,rgba(0,0,0,0))}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.2);border-radius:4px}.axp-weather-forecast-day{min-width:60px;flex:0 0 auto;padding:.4rem .6rem}.axp-weather-forecast-day-name{font-size:.7rem}.axp-weather-forecast-icon{padding:.3rem;height:1.6rem}.axp-weather-forecast-temps{font-size:.7rem}.axp-weather-scroll-indicator{display:block}}:host-context(.theme-dark){--glass-bg: rgba(0, 0, 0, .3);--glass-border: rgba(255, 255, 255, .1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: HttpClientModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4722
+ ], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["containerElement"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Weather Widget Component Template -->\n<div class=\"axp-weather-container\" #containerElement>\n <!-- Loading indicator -->\n @if (isLoading()) {\n <div class=\"axp-weather-loading-overlay\">\n <div class=\"axp-weather-loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>{{ 'weather.loading' | translate: { scope: 'dashboard' } | async }}</span>\n </div>\n </div>\n }\n\n <!-- Error message -->\n @if (hasError()) {\n <div class=\"axp-weather-error-overlay\">\n <div class=\"axp-weather-error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>{{ errorMessage() | translate: { scope: 'dashboard' } | async }}</span>\n <button class=\"axp-weather-retry-button\" (click)=\"refreshWeather()\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.retry' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n </div>\n }\n\n <!-- Weather content - only show when we have data -->\n @if (weatherData()) {\n <!-- Background decorations based on weather condition -->\n <div class=\"axp-weather-background-decorations\">\n <div class=\"axp-weather-decoration\" [ngClass]=\"weatherData()?.current?.condition?.toLowerCase()\"></div>\n <div class=\"axp-weather-gradient-overlay\"></div>\n </div>\n\n <div class=\"axp-weather-inner\">\n <!-- Location information section -->\n <div class=\"axp-weather-location-info\">\n <div class=\"axp-weather-location-icon\">\n <i class=\"fa-solid fa-location-dot\"></i>\n </div>\n <div class=\"axp-weather-location-text\">\n <h2 class=\"axp-weather-location-name\">{{ city() }}</h2>\n </div>\n </div>\n\n <!-- Current weather conditions section -->\n <div class=\"axp-weather-current-weather\">\n <!-- Weather icon and condition name -->\n @if (showCurrentCondition()) {\n <div class=\"axp-weather-condition\">\n <div class=\"axp-weather-icon-wrapper\">\n <div class=\"axp-weather-icon\">\n <img [src]=\"getConditionIcon(weatherData()?.current?.condition || '')\" />\n </div>\n <div\n class=\"axp-weather-icon-glow\"\n [style.background-color]=\"getConditionColor(weatherData()?.current?.condition || '')\"\n ></div>\n </div>\n <div class=\"axp-weather-condition-name\">\n {{ getCurrentCondition() | translate: { scope: 'dashboard' } | async }}\n </div>\n </div>\n }\n\n <!-- Temperature display -->\n @if (showTemperature()) {\n <div class=\"axp-weather-temperature\">\n <span class=\"axp-weather-temperature-value\">{{ getCurrentTemperature() }}</span>\n <span class=\"axp-weather-temperature-unit\">{{\n getTemperatureUnit() | translate: { scope: 'dashboard' } | async\n }}</span>\n </div>\n }\n </div>\n\n <!-- Weather details section (humidity and wind) -->\n @if (showHumidity() || showWind()) {\n <div class=\"axp-weather-details\">\n <!-- Humidity information -->\n @if (showHumidity()) {\n <div class=\"axp-weather-detail-item\">\n <div class=\"axp-weather-detail-icon\">\n <i class=\"fa-solid fa-droplet\"></i>\n </div>\n <div class=\"axp-weather-detail-info\">\n <div class=\"axp-weather-detail-label\">\n {{ 'weather.humidity' | translate: { scope: 'dashboard' } | async }}\n </div>\n <div class=\"axp-weather-detail-value\">{{ getHumidity() }}%</div>\n </div>\n </div>\n }\n\n <!-- Wind speed information -->\n @if (showWind()) {\n <div class=\"axp-weather-detail-item\">\n <div class=\"axp-weather-detail-icon\">\n <i class=\"fa-solid fa-wind\"></i>\n </div>\n <div class=\"axp-weather-detail-info\">\n <div class=\"axp-weather-detail-label\">\n {{ 'weather.wind' | translate: { scope: 'dashboard' } | async }}\n </div>\n <div class=\"axp-weather-detail-value\">\n {{ getWindSpeed() }} {{ getWindSpeedUnit() | translate: { scope: 'dashboard' } | async }}\n </div>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Weather forecast section -->\n @if (showForecast() && weatherData()?.forecast) {\n <div class=\"axp-weather-forecast\">\n <div class=\"axp-weather-forecast-header\">\n <h3 class=\"axp-weather-forecast-title\">\n <i class=\"fa-solid fa-calendar-days\"></i>\n <span class=\"ax-px-1\">{{ 'weather.forecast' | translate: { scope: 'dashboard' } | async }}</span>\n </h3>\n </div>\n <!-- Loading indicator for forecast -->\n <!-- @if (isForecastLoading()) {\n <div class=\"axp-weather-forecast-loading\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>{{ 'weather.loading-forecast' | translate: { scope: 'dashboard' } | async }}</span>\n </div>\n } -->\n <!-- Scrollable forecast days display -->\n <div class=\"axp-weather-forecast-items\">\n @for (day of displayedForecast(); track day.day) {\n <div class=\"axp-weather-forecast-day\">\n <div class=\"axp-weather-forecast-day-name\">\n {{ getDayName(parseDate(day.date)) | translate: { scope: 'dashboard' } | async }}\n </div>\n <div\n class=\"axp-weather-forecast-icon\"\n [title]=\"getConditionName(day.condition) | translate: { scope: 'dashboard' } | async\"\n >\n <img [src]=\"getConditionIcon(day.condition || '')\" />\n </div>\n <div class=\"axp-weather-forecast-temps\">\n <span class=\"axp-weather-forecast-low\">\n {{ temperatureUnit() === '\u00B0C' ? day.minTempC : day.minTempF\n }}{{ getTemperatureUnit() | translate: { scope: 'dashboard' } | async }}\n </span>\n <span class=\"axp-weather-forecast-high\">\n {{ temperatureUnit() === '\u00B0C' ? day.maxTempC : day.maxTempF\n }}{{ getTemperatureUnit() | translate: { scope: 'dashboard' } | async }}\n </span>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Last updated timestamp -->\n <div class=\"axp-weather-last-updated\">\n <span>{{ 'weather.last-updated' | translate: { scope: 'dashboard' } | async }}: {{ getLastUpdated() }}</span>\n </div>\n\n <!-- Manual refresh button -->\n <div class=\"axp-weather-refresh-action\">\n <button\n class=\"axp-weather-refresh-button\"\n (click)=\"refreshWeather()\"\n [attr.aria-label]=\"'weather.refresh' | translate: { scope: 'dashboard' } | async\"\n [title]=\"'weather.refresh' | translate: { scope: 'dashboard' } | async\"\n >\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.refresh' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n </div>\n } @else if (!isLoading() && !hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"axp-weather-no-data-state\">\n <i class=\"fa-solid fa-cloud-sun\"></i>\n <p>{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <button class=\"axp-weather-refresh-button\" (click)=\"refreshWeather()\">\n <i class=\"fa-solid fa-sync-alt\"></i>\n <span>{{ 'weather.load-data' | translate: { scope: 'dashboard' } | async }}</span>\n </button>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%;--primary-gradient-start: #2196f3;--primary-gradient-end: #1976d2;--shadow-color: rgba(0, 0, 0, .2);--glass-bg: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--transition-speed: .3s}.axp-weather-container{width:100%;height:100%;overflow:hidden;position:relative;box-shadow:0 4px 8px rgba(0,0,0,.1);min-height:300px}.axp-weather-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(44,62,80,.85);display:flex;justify-content:center;align-items:center;z-index:100}.axp-weather-loading-spinner{text-align:center}.axp-weather-loading-spinner i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-loading-spinner span{display:block;color:#fff;font-size:1rem}.axp-weather-error-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(189,54,47,.85);display:flex;justify-content:center;align-items:center}.axp-weather-error-message{text-align:center;padding:1rem}.axp-weather-error-message i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-error-message span{display:block;color:#fff;font-size:1.1rem;margin-bottom:1rem}.axp-weather-error-message .axp-weather-retry-button{color:#bd362f;border:none;border-radius:4px;padding:.5rem 1rem;font-size:1rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-error-message .axp-weather-retry-button:hover{transform:translateY(-1px)}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem;color:rgba(255,255,255,.8)}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}.axp-weather-no-data-state .axp-weather-refresh-button{background-color:rgba(255,255,255,.2);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:1rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-no-data-state .axp-weather-refresh-button:hover{background-color:rgba(255,255,255,.3);transform:translateY(-1px)}.axp-weather-background-decorations{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.axp-weather-decoration{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center}.axp-weather-gradient-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.axp-weather-inner{position:relative;z-index:2;height:100%;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between}.axp-weather-location-info{display:flex;align-items:center;margin-bottom:1.5rem}.axp-weather-location-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:rgba(255,255,255,.2);border-radius:50%;margin-right:.75rem}.axp-weather-location-icon i{color:#fff}.axp-weather-location-name{margin:0;font-size:1.5rem;font-weight:500;text-shadow:1px 1px 3px rgba(0,0,0,.2);text-transform:capitalize}.axp-weather-current-weather{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap}.axp-weather-condition{display:flex;flex-direction:column;align-items:center}.axp-weather-icon-wrapper{position:relative;margin-bottom:.5rem}.axp-weather-icon{position:relative;z-index:2;scale:2}.axp-weather-icon i{font-size:2.75rem;filter:drop-shadow(0 0 8px rgba(0,0,0,.3))}.axp-weather-icon-glow{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);width:45px;height:45px;border-radius:50%;filter:blur(15px);opacity:.4}.axp-weather-condition-name{font-size:1.1rem;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.axp-weather-temperature{display:flex;align-items:flex-start;text-shadow:1px 1px 3px rgba(0,0,0,.3)}.axp-weather-temperature-value{font-size:3.5rem;font-weight:500;line-height:1}.axp-weather-temperature-unit{font-size:1.5rem;margin-top:.25rem}.axp-weather-details{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem;padding:1rem;border-radius:8px}.axp-weather-detail-item{display:flex;align-items:center;flex:1;min-width:120px}.axp-weather-detail-icon{width:40px;height:40px;border-radius:50%;background-color:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin-right:.75rem}.axp-weather-detail-icon i{font-size:1.25rem}.axp-weather-detail-info{display:flex;padding-inline:.25rem;flex-direction:column}.axp-weather-detail-label{font-size:.875rem;margin-bottom:.25rem}.axp-weather-detail-value{font-size:1.125rem;font-weight:500}.axp-weather-forecast{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));margin-bottom:.5rem;border-radius:8px;padding:1rem}.axp-weather-forecast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.axp-weather-forecast-title{margin:0;font-size:1.125rem;font-weight:500;display:flex;align-items:center}.axp-weather-forecast-title i{margin-right:.5rem;opacity:.8}.axp-weather-scroll-indicator{color:rgba(255,255,255,.6)}.axp-weather-forecast-items{display:flex;overflow-x:auto;gap:.75rem;padding-bottom:.5rem}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.3);border-radius:4px}.axp-weather-forecast-items::-webkit-scrollbar-track{background-color:rgba(0,0,0,.1);border-radius:4px}.axp-weather-forecast-day{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));min-width:90px;display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-radius:6px;transition:all .3s ease}.axp-weather-forecast-day:hover{transform:translateY(-2px)}.axp-weather-forecast-day-name{font-size:.875rem;margin-bottom:.5rem;font-weight:500}.axp-weather-forecast-icon{font-size:1.5rem;margin-bottom:.5rem}.axp-weather-forecast-icon i{filter:drop-shadow(0 0 5px rgba(0,0,0,.2))}.axp-weather-forecast-temps{display:flex;flex-direction:row;gap:.75rem;align-items:center;font-size:.775rem}.axp-weather-last-updated{text-align:center;font-size:.75rem;opacity:.7;margin-bottom:.5rem}.axp-weather-refresh-action{text-align:center}.axp-weather-refresh-button{background-color:rgba(255,255,255,.2);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-refresh-button:hover{background-color:rgba(255,255,255,.3);transform:translateY(-1px)}.axp-weather-refresh-button i{font-size:.875rem}@media (max-width: 576px){.axp-weather-inner{padding:.8rem;gap:.4rem}.axp-weather-location-name{font-size:1.1rem;padding-inline:.25rem}.axp-weather-temperature{font-size:2.5rem}.axp-weather-temperature-unit{font-size:1.1rem}.axp-weather-weather-details{flex-direction:column;gap:.5rem}.axp-weather-forecast-items{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem;margin:0 -.4rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;mask-image:linear-gradient(to right,#000 95%,rgba(0,0,0,0));-webkit-mask-image:linear-gradient(to right,rgb(0,0,0) 95%,rgba(0,0,0,0))}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,.2);border-radius:4px}.axp-weather-forecast-day{min-width:60px;flex:0 0 auto;padding:.4rem .6rem}.axp-weather-forecast-day-name{font-size:.7rem}.axp-weather-forecast-icon{padding:.3rem;height:1.6rem}.axp-weather-forecast-temps{font-size:.7rem}.axp-weather-scroll-indicator{display:block}}:host-context(.theme-dark){--glass-bg: rgba(0, 0, 0, .3);--glass-border: rgba(255, 255, 255, .1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: HttpClientModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4723
4723
  }
4724
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPWeatherWidgetViewComponent, decorators: [{
4724
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPWeatherWidgetViewComponent, decorators: [{
4725
4725
  type: Component,
4726
4726
  args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, HttpClientModule, AXTranslationModule], providers: [
4727
4727
  {
@@ -4985,8 +4985,8 @@ class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutWidgetComponent {
4985
4985
  this.popupService = inject(AXPopupService);
4986
4986
  this.workflow = inject(AXPWorkflowService);
4987
4987
  this.searchConfig = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);
4988
- this.item = computed(() => this.options()['item']);
4989
- this.color = computed(() => this.options()['color']);
4988
+ this.item = computed(() => this.options()['item'], ...(ngDevMode ? [{ debugName: "item" }] : []));
4989
+ this.color = computed(() => this.options()['color'], ...(ngDevMode ? [{ debugName: "color" }] : []));
4990
4990
  }
4991
4991
  ngOnInit() {
4992
4992
  super.ngOnInit();
@@ -5043,8 +5043,8 @@ class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutWidgetComponent {
5043
5043
  cls[`ax-text-white`] = true;
5044
5044
  return cls;
5045
5045
  }
5046
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5047
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXPDashboardShortcutWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { properties: { "style": "this.__style", "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
5046
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5047
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXPDashboardShortcutWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { properties: { "style": "this.__style", "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
5048
5048
  @if (item()) {
5049
5049
  <div
5050
5050
  class="ax-group ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-3 ax-w-full ax-h-full ax-relative ax-overflow-hidden "
@@ -5071,9 +5071,9 @@ class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutWidgetComponent {
5071
5071
  }}</span>
5072
5072
  </div>
5073
5073
  }
5074
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5074
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5075
5075
  }
5076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, decorators: [{
5076
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, decorators: [{
5077
5077
  type: Component,
5078
5078
  args: [{
5079
5079
  template: `
@@ -5226,9 +5226,9 @@ function createAppRoute() {
5226
5226
  };
5227
5227
  }
5228
5228
  class AXMDashboardManagementModule {
5229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5230
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardManagementModule, imports: [i3$2.AXPLayoutBuilderModule] }); }
5231
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardManagementModule, providers: [
5229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5230
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardManagementModule, imports: [i2$3.AXPLayoutBuilderModule] }); }
5231
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardManagementModule, providers: [
5232
5232
  {
5233
5233
  provide: AXMDashboardService,
5234
5234
  useClass: AXMDashboardServiceImpl,
@@ -5278,7 +5278,7 @@ class AXMDashboardManagementModule {
5278
5278
  ],
5279
5279
  })] }); }
5280
5280
  }
5281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardManagementModule, decorators: [{
5281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardManagementModule, decorators: [{
5282
5282
  type: NgModule,
5283
5283
  args: [{
5284
5284
  imports: [
@@ -5338,12 +5338,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5338
5338
 
5339
5339
  class AXMDashboardWidgetWrapperComponent {
5340
5340
  constructor() {
5341
- this.title = input(null);
5341
+ this.title = input(null, ...(ngDevMode ? [{ debugName: "title" }] : []));
5342
5342
  this.onDelete = output();
5343
5343
  this.onConfiguration = output();
5344
5344
  this.onValueChanged = output();
5345
5345
  this.onOptionsChanged = output();
5346
- this.widget = contentChild(AXPWidgetRendererDirective);
5346
+ this.widget = contentChild(AXPWidgetRendererDirective, ...(ngDevMode ? [{ debugName: "widget" }] : []));
5347
5347
  this.#init = afterNextRender(() => {
5348
5348
  this.widget()?.onOptionsChanged.subscribe((c) => {
5349
5349
  this.onOptionsChanged.emit(c.widget.options());
@@ -5352,9 +5352,9 @@ class AXMDashboardWidgetWrapperComponent {
5352
5352
  this.onValueChanged.emit(c.widget.getValue());
5353
5353
  });
5354
5354
  });
5355
- this.hasConfiguration = input(true);
5356
- this.isLocked = input(false);
5357
- this.isDropdownOpen = signal(false);
5355
+ this.hasConfiguration = input(true, ...(ngDevMode ? [{ debugName: "hasConfiguration" }] : []));
5356
+ this.isLocked = input(false, ...(ngDevMode ? [{ debugName: "isLocked" }] : []));
5357
+ this.isDropdownOpen = signal(false, ...(ngDevMode ? [{ debugName: "isDropdownOpen" }] : []));
5358
5358
  }
5359
5359
  #init;
5360
5360
  handleOnItemClick(event) {
@@ -5373,10 +5373,10 @@ class AXMDashboardWidgetWrapperComponent {
5373
5373
  log(event) {
5374
5374
  console.log('Dropdown event:', event);
5375
5375
  }
5376
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMDashboardWidgetWrapperComponent, isStandalone: true, selector: "axm-dashboard-widget-wrapper", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasConfiguration: { classPropertyName: "hasConfiguration", publicName: "hasConfiguration", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: "isLocked", publicName: "isLocked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete", onConfiguration: "onConfiguration", onValueChanged: "onValueChanged", onOptionsChanged: "onOptionsChanged" }, queries: [{ propertyName: "widget", first: true, predicate: AXPWidgetRendererDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\">\n <!-- Action button - stays absolute -->\n @if(!isLocked()) {\n <div\n class=\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[99] ax-invisible group-hover:ax-visible md:group-hover:ax-visible\"\n [class.!ax-visible]=\"isDropdownOpen()\"\n (touchstart)=\"isDropdownOpen.set(true)\"\n >\n <ax-button class=\"ax-sm ax-main-button\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-vertical\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel (onOpened)=\"isDropdownOpen.set(true)\" (onClosed)=\"isDropdownOpen.set(false)\">\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n @if(hasConfiguration()){\n <ax-button-item\n [data]=\"'configuration'\"\n [text]=\"(t('configuration', { scope: 'dashboard' }) | async) || 'configuration'\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n }\n <ax-button-item [data]=\"'delete'\" [text]=\"(t('delete') | async) || 'delete'\" color=\"danger\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <!-- Title section -->\n @if(title()) {\n <div class=\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\">\n <h3 class=\"ax-text-start ax-text-lg ax-font-medium ax-truncate\">{{title()}}</h3>\n </div>\n }\n\n <!-- Content section -->\n <div class=\"ax-overflow-auto ax-h-full\">\n <ng-content></ng-content>\n </div>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$2.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: i1$2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i3$3.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMDashboardWidgetWrapperComponent, isStandalone: true, selector: "axm-dashboard-widget-wrapper", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasConfiguration: { classPropertyName: "hasConfiguration", publicName: "hasConfiguration", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: "isLocked", publicName: "isLocked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete", onConfiguration: "onConfiguration", onValueChanged: "onValueChanged", onOptionsChanged: "onOptionsChanged" }, queries: [{ propertyName: "widget", first: true, predicate: AXPWidgetRendererDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\">\n <!-- Action button - stays absolute -->\n @if(!isLocked()) {\n <div\n class=\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[99] ax-invisible group-hover:ax-visible md:group-hover:ax-visible\"\n [class.!ax-visible]=\"isDropdownOpen()\"\n (touchstart)=\"isDropdownOpen.set(true)\"\n >\n <ax-button class=\"ax-sm ax-main-button\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-vertical\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel (onOpened)=\"isDropdownOpen.set(true)\" (onClosed)=\"isDropdownOpen.set(false)\">\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n @if(hasConfiguration()){\n <ax-button-item\n [data]=\"'configuration'\"\n [text]=\"(t('configuration', { scope: 'dashboard' }) | async) || 'configuration'\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n }\n <ax-button-item [data]=\"'delete'\" [text]=\"(t('delete') | async) || 'delete'\" color=\"danger\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <!-- Title section -->\n @if(title()) {\n <div class=\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\">\n <h3 class=\"ax-text-start ax-text-lg ax-font-medium ax-truncate\">{{title()}}</h3>\n </div>\n }\n\n <!-- Content section -->\n <div class=\"ax-overflow-auto ax-h-full\">\n <ng-content></ng-content>\n </div>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$3.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: i1$3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i3$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5378
5378
  }
5379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, decorators: [{
5379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, decorators: [{
5380
5380
  type: Component,
5381
5381
  args: [{ selector: 'axm-dashboard-widget-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule, CommonModule], standalone: true, template: "<section class=\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\">\n <!-- Action button - stays absolute -->\n @if(!isLocked()) {\n <div\n class=\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[99] ax-invisible group-hover:ax-visible md:group-hover:ax-visible\"\n [class.!ax-visible]=\"isDropdownOpen()\"\n (touchstart)=\"isDropdownOpen.set(true)\"\n >\n <ax-button class=\"ax-sm ax-main-button\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-vertical\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel (onOpened)=\"isDropdownOpen.set(true)\" (onClosed)=\"isDropdownOpen.set(false)\">\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n @if(hasConfiguration()){\n <ax-button-item\n [data]=\"'configuration'\"\n [text]=\"(t('configuration', { scope: 'dashboard' }) | async) || 'configuration'\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n }\n <ax-button-item [data]=\"'delete'\" [text]=\"(t('delete') | async) || 'delete'\" color=\"danger\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <!-- Title section -->\n @if(title()) {\n <div class=\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\">\n <h3 class=\"ax-text-start ax-text-lg ax-font-medium ax-truncate\">{{title()}}</h3>\n </div>\n }\n\n <!-- Content section -->\n <div class=\"ax-overflow-auto ax-h-full\">\n <ng-content></ng-content>\n </div>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
5382
5382
  }] });
@@ -5393,12 +5393,12 @@ class AXMAddDashboardPopup extends AXBasePageComponent {
5393
5393
  this.scope = RootConfig.config.i18n;
5394
5394
  this.roleService = inject(AXMOrganizationManagementRoleEntityService);
5395
5395
  this.sessionService = inject(AXPSessionService);
5396
- this.title = model('');
5397
- this.description = model('');
5398
- this.selectedRoleIds = model([]);
5399
- this.isDisabled = model(false);
5400
- this.isLocked = model(false);
5401
- this.isAdmin = model(false);
5396
+ this.title = model('', ...(ngDevMode ? [{ debugName: "title" }] : []));
5397
+ this.description = model('', ...(ngDevMode ? [{ debugName: "description" }] : []));
5398
+ this.selectedRoleIds = model([], ...(ngDevMode ? [{ debugName: "selectedRoleIds" }] : []));
5399
+ this.isDisabled = model(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
5400
+ this.isLocked = model(false, ...(ngDevMode ? [{ debugName: "isLocked" }] : []));
5401
+ this.isAdmin = model(false, ...(ngDevMode ? [{ debugName: "isAdmin" }] : []));
5402
5402
  this.roles = [];
5403
5403
  }
5404
5404
  get isValid() {
@@ -5444,8 +5444,8 @@ class AXMAddDashboardPopup extends AXBasePageComponent {
5444
5444
  isCanceled,
5445
5445
  });
5446
5446
  }
5447
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5448
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMAddDashboardPopup, isStandalone: true, selector: "ng-component", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, selectedRoleIds: { classPropertyName: "selectedRoleIds", publicName: "selectedRoleIds", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: "isLocked", publicName: "isLocked", isSignal: true, isRequired: false, transformFunction: null }, isAdmin: { classPropertyName: "isAdmin", publicName: "isAdmin", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", description: "descriptionChange", selectedRoleIds: "selectedRoleIdsChange", isDisabled: "isDisabledChange", isLocked: "isLockedChange", isAdmin: "isAdminChange" }, usesInheritance: true, ngImport: i0, template: `
5447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5448
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMAddDashboardPopup, isStandalone: true, selector: "ng-component", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, selectedRoleIds: { classPropertyName: "selectedRoleIds", publicName: "selectedRoleIds", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: "isLocked", publicName: "isLocked", isSignal: true, isRequired: false, transformFunction: null }, isAdmin: { classPropertyName: "isAdmin", publicName: "isAdmin", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", description: "descriptionChange", selectedRoleIds: "selectedRoleIdsChange", isDisabled: "isDisabledChange", isLocked: "isLockedChange", isAdmin: "isAdminChange" }, usesInheritance: true, ngImport: i0, template: `
5449
5449
  <div class="ax-card-body ax-p-4">
5450
5450
  <div class="ax-flex ax-flex-col ax-gap-2 ax-pb-4">
5451
5451
  <p class="ax-font-semibold">{{ 'title' | translate | async }}</p>
@@ -5501,9 +5501,9 @@ class AXMAddDashboardPopup extends AXBasePageComponent {
5501
5501
  </ax-button>
5502
5502
  </ax-suffix>
5503
5503
  </ax-footer>
5504
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$2.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: AXTextBoxModule }, { kind: "component", type: i3$4.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i7.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "component", type: i8.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }] }); }
5504
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$3.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: AXTextBoxModule }, { kind: "component", type: i3$2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i5.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "component", type: i6.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }] }); }
5505
5505
  }
5506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMAddDashboardPopup, decorators: [{
5506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMAddDashboardPopup, decorators: [{
5507
5507
  type: Component,
5508
5508
  args: [{
5509
5509
  template: `
@@ -5581,7 +5581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
5581
5581
  class AXMConfigurationPopup extends AXBasePageComponent {
5582
5582
  constructor() {
5583
5583
  super(...arguments);
5584
- this.widgetData = signal(null);
5584
+ this.widgetData = signal(null, ...(ngDevMode ? [{ debugName: "widgetData" }] : []));
5585
5585
  }
5586
5586
  ngOnInit() {
5587
5587
  this.widgetData.set(this.widget);
@@ -5595,8 +5595,8 @@ class AXMConfigurationPopup extends AXBasePageComponent {
5595
5595
  handlePropertyChange(event) {
5596
5596
  this.widgetData.set(event.values);
5597
5597
  }
5598
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMConfigurationPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5599
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMConfigurationPopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
5598
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMConfigurationPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5599
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMConfigurationPopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
5600
5600
  @if(widget) {
5601
5601
  <div class="ax-px-1">
5602
5602
  <axp-widget-property-viewer (onChanged)="handlePropertyChange($event)" [widget]="widget">
@@ -5612,9 +5612,9 @@ class AXMConfigurationPopup extends AXBasePageComponent {
5612
5612
  </ax-button>
5613
5613
  </ax-suffix>
5614
5614
  </ax-footer>
5615
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }] }); }
5615
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }] }); }
5616
5616
  }
5617
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMConfigurationPopup, decorators: [{
5617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMConfigurationPopup, decorators: [{
5618
5618
  type: Component,
5619
5619
  args: [{
5620
5620
  template: `
@@ -5681,10 +5681,10 @@ class AXMDashboardPopupService {
5681
5681
  }
5682
5682
  return rest.widget;
5683
5683
  }
5684
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5685
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardPopupService, providedIn: 'root' }); }
5684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5685
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardPopupService, providedIn: 'root' }); }
5686
5686
  }
5687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardPopupService, decorators: [{
5687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardPopupService, decorators: [{
5688
5688
  type: Injectable,
5689
5689
  args: [{ providedIn: 'root' }]
5690
5690
  }] });
@@ -6210,8 +6210,8 @@ class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
6210
6210
  this.store = inject(AXMDashboardStore);
6211
6211
  this.themeService = inject(AXPLayoutThemeService);
6212
6212
  // Component State
6213
- this.context = signal({});
6214
- this.dashboardsLoaded = signal(false);
6213
+ this.context = signal({}, ...(ngDevMode ? [{ debugName: "context" }] : []));
6214
+ this.dashboardsLoaded = signal(false, ...(ngDevMode ? [{ debugName: "dashboardsLoaded" }] : []));
6215
6215
  // Effects
6216
6216
  this.#initEffect = effect(() => {
6217
6217
  const allDashboards = this.store.availableDashboards();
@@ -6220,7 +6220,7 @@ class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
6220
6220
  this.applyDashboardFiltering();
6221
6221
  this.recompute();
6222
6222
  }
6223
- });
6223
+ }, ...(ngDevMode ? [{ debugName: "#initEffect" }] : []));
6224
6224
  }
6225
6225
  // Lifecycle Hooks
6226
6226
  async ngOnInit() {
@@ -6346,17 +6346,17 @@ class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
6346
6346
  break;
6347
6347
  }
6348
6348
  }
6349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardHomeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6350
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: AXMDashboardHomeComponent, isStandalone: true, selector: "axm-dashboard-home", providers: [
6349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardHomeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6350
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXMDashboardHomeComponent, isStandalone: true, selector: "axm-dashboard-home", providers: [
6351
6351
  AXPDesignerService,
6352
6352
  AXMDashboardStore,
6353
6353
  {
6354
6354
  provide: AXPPageLayoutBase,
6355
6355
  useExisting: AXMDashboardHomeComponent,
6356
6356
  },
6357
- ], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n\n <axp-page-content class=\"ax-relative\">\n <!-- Loading State -->\n @if(store.isLoading()) {\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\"\n >\n <ax-loading></ax-loading>\n <p class=\"ax-mt-3 ax-text-gray-600\">{{ t('loading', { scope: 'dashboard' }) | async }}</p>\n </div>\n } @else {\n <axp-widgets-container [context]=\"context()\">\n <ax-grid-layout-container [options]=\"store.currentLayoutOptions()\" (onChange)=\"store.onGridChange($event)\">\n <!-- No Dashboards State -->\n @if(!store.dashboards() || store.dashboards().length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">{{ t('no-dashboards', { scope: 'dashboard' }) | async }}</h2>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <p class=\"ax-text-center\">{{ t('no-dashboards', { scope: 'dashboard' }) | async }},</p>\n <button (click)=\"execute({ name: 'new-dashboard' })\" class=\"ax-underline\">\n {{ t('add-first-dashboard', { scope: 'dashboard' }) | async }}\n </button>\n </div>\n </div>\n }\n <!-- No Selected Dashboard State -->\n <!-- @else if (!store.selectedDashboard()) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">\n {{ t('no-current-dashboard', { scope: 'dashboard' }) | async }}\n </h2>\n <p class=\"ax-text-center ax-mb-6\">{{ t('select-dashboard', { scope: 'dashboard' }) | async }}</p>\n </div>\n } -->\n <!-- No Widgets State -->\n @else if (!store.selectedDashboard()?.widgets || store.selectedDashboard()?.widgets?.length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">{{ t('no-widgets', { scope: 'dashboard' }) | async }}</h2>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <p class=\"ax-text-center\">{{ t('no-widgets', { scope: 'dashboard' }) | async }},</p>\n <button (click)=\"execute({ name: 'new-widget' })\" class=\"ax-underline\">\n {{ t('add-widget', { scope: 'dashboard' }) | async }}\n </button>\n </div>\n </div>\n }\n <!-- Widgets Grid -->\n @else { @for(widget of store.selectedDashboard()?.widgets; track widget.config.id) {\n <ax-grid-layout-widget\n [options]=\"widget.config\"\n class=\"dark:[--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lighter-surface)] [--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lightest-surface)]\"\n >\n <axm-dashboard-widget-wrapper\n [title]=\"widget.node?.options?.['title']\"\n [hasConfiguration]=\"store.canConfigureWidget()(widget)\"\n [isLocked]=\"store.isWidgetLocked()(widget)\"\n (onDelete)=\"confirmWidgetDelete(store.selectedDashboard()?.id!, widget.config.id!)\"\n (onConfiguration)=\"store.handlePopupConfiguration(widget.node!)\"\n (onValueChanged)=\"store.handleValueChanged(widget?.node!,$event)\"\n (onOptionsChanged)=\"store.handleOptionsChanged(widget?.node!,$event)\"\n >\n @if(widget.node) {\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'view'\"></ng-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } }\n </ax-grid-layout-container>\n </axp-widgets-container>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3$2.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3$2.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i4$1.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "onRender", "isEmptyChange"] }, { kind: "component", type: i4$1.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i3$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: AXMDashboardWidgetWrapperComponent, selector: "axm-dashboard-widget-wrapper", inputs: ["title", "hasConfiguration", "isLocked"], outputs: ["onDelete", "onConfiguration", "onValueChanged", "onOptionsChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6357
+ ], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n\n <axp-page-content class=\"ax-relative\">\n <!-- Loading State -->\n @if(store.isLoading()) {\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\"\n >\n <ax-loading></ax-loading>\n <p class=\"ax-mt-3 ax-text-gray-600\">{{ t('loading', { scope: 'dashboard' }) | async }}</p>\n </div>\n } @else {\n <axp-widgets-container [context]=\"context()\">\n <ax-grid-layout-container [options]=\"store.currentLayoutOptions()\" (onChange)=\"store.onGridChange($event)\">\n <!-- No Dashboards State -->\n @if(!store.dashboards() || store.dashboards().length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">{{ t('no-dashboards', { scope: 'dashboard' }) | async }}</h2>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <p class=\"ax-text-center\">{{ t('no-dashboards', { scope: 'dashboard' }) | async }},</p>\n <button (click)=\"execute({ name: 'new-dashboard' })\" class=\"ax-underline\">\n {{ t('add-first-dashboard', { scope: 'dashboard' }) | async }}\n </button>\n </div>\n </div>\n }\n <!-- No Selected Dashboard State -->\n <!-- @else if (!store.selectedDashboard()) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">\n {{ t('no-current-dashboard', { scope: 'dashboard' }) | async }}\n </h2>\n <p class=\"ax-text-center ax-mb-6\">{{ t('select-dashboard', { scope: 'dashboard' }) | async }}</p>\n </div>\n } -->\n <!-- No Widgets State -->\n @else if (!store.selectedDashboard()?.widgets || store.selectedDashboard()?.widgets?.length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-mb-2\">{{ t('no-widgets', { scope: 'dashboard' }) | async }}</h2>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <p class=\"ax-text-center\">{{ t('no-widgets', { scope: 'dashboard' }) | async }},</p>\n <button (click)=\"execute({ name: 'new-widget' })\" class=\"ax-underline\">\n {{ t('add-widget', { scope: 'dashboard' }) | async }}\n </button>\n </div>\n </div>\n }\n <!-- Widgets Grid -->\n @else { @for(widget of store.selectedDashboard()?.widgets; track widget.config.id) {\n <ax-grid-layout-widget\n [options]=\"widget.config\"\n class=\"dark:[--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lighter-surface)] [--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lightest-surface)]\"\n >\n <axm-dashboard-widget-wrapper\n [title]=\"widget.node?.options?.['title']\"\n [hasConfiguration]=\"store.canConfigureWidget()(widget)\"\n [isLocked]=\"store.isWidgetLocked()(widget)\"\n (onDelete)=\"confirmWidgetDelete(store.selectedDashboard()?.id!, widget.config.id!)\"\n (onConfiguration)=\"store.handlePopupConfiguration(widget.node!)\"\n (onValueChanged)=\"store.handleValueChanged(widget?.node!,$event)\"\n (onOptionsChanged)=\"store.handleOptionsChanged(widget?.node!,$event)\"\n >\n @if(widget.node) {\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'view'\"></ng-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } }\n </ax-grid-layout-container>\n </axp-widgets-container>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i1$4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i2$3.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i2$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i3$3.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "onRender", "isEmptyChange"] }, { kind: "component", type: i3$3.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: AXMDashboardWidgetWrapperComponent, selector: "axm-dashboard-widget-wrapper", inputs: ["title", "hasConfiguration", "isLocked"], outputs: ["onDelete", "onConfiguration", "onValueChanged", "onOptionsChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6358
6358
  }
6359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AXMDashboardHomeComponent, decorators: [{
6359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXMDashboardHomeComponent, decorators: [{
6360
6360
  type: Component,
6361
6361
  args: [{ selector: 'axm-dashboard-home', standalone: true, imports: [
6362
6362
  CommonModule,