@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.
- package/common/index.d.ts +8 -1
- package/conversation/index.d.ts +69 -9
- package/dashboard-management/index.d.ts +2 -0
- package/data-management/index.d.ts +401 -3
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs → acorex-modules-application-management-module-designer.component-udoks-Ef.mjs} +17 -17
- package/fesm2022/acorex-modules-application-management-module-designer.component-udoks-Ef.mjs.map +1 -0
- package/fesm2022/acorex-modules-application-management.mjs +53 -53
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs → acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs} +67 -125
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-y6rICHrT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs → acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-app-chooser.component-D0pKNUts.mjs.map → acorex-modules-auth-app-chooser.component-Cpy0VN6n.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs → acorex-modules-auth-blank.layout-C8NsXB9K.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-blank.layout-BwVSMaFI.mjs.map → acorex-modules-auth-blank.layout-C8NsXB9K.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs → acorex-modules-auth-login.module-ZEX4NMuJ.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-Dky49ylL.mjs.map → acorex-modules-auth-login.module-ZEX4NMuJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs → acorex-modules-auth-master.layout-D-lIn4Pl.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-master.layout-DXfRjCLL.mjs.map → acorex-modules-auth-master.layout-D-lIn4Pl.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs → acorex-modules-auth-password.component-CafZfqKe.mjs} +12 -12
- package/fesm2022/{acorex-modules-auth-password.component-oH5OFHqQ.mjs.map → acorex-modules-auth-password.component-CafZfqKe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BbsQWpEh.mjs → acorex-modules-auth-password.component-DLCb0_6e.mjs} +16 -16
- package/fesm2022/acorex-modules-auth-password.component-DLCb0_6e.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs → acorex-modules-auth-routes-D9-qfC3V.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-DAiaTm4Y.mjs.map → acorex-modules-auth-routes-D9-qfC3V.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-settings.provider-CM-T8nbI.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs → acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs} +10 -10
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-3-FFY4tI.mjs.map → acorex-modules-auth-tenant-chooser.component-B1aE-TOD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs → acorex-modules-auth-two-factor-code.component-BglerlU-.mjs} +10 -10
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-UUmdX7IM.mjs.map → acorex-modules-auth-two-factor-code.component-BglerlU-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs → acorex-modules-auth-two-factor.module-D3N2XyOH.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-Coe4NNUW.mjs.map → acorex-modules-auth-two-factor.module-D3N2XyOH.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +19 -19
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs +1667 -0
- package/fesm2022/acorex-modules-common-acorex-modules-common-DQESb8jf.mjs.map +1 -0
- package/fesm2022/{acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs → acorex-modules-common-search-popup.component-CpFvcrxw.mjs} +13 -13
- package/fesm2022/acorex-modules-common-search-popup.component-CpFvcrxw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-settings.provider-intHn3XI.mjs → acorex-modules-common-settings.provider-ha75F6g5.mjs} +2 -3
- package/fesm2022/acorex-modules-common-settings.provider-ha75F6g5.mjs.map +1 -0
- 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
- package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D_6STmWm.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +1 -1199
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs → acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs} +47 -222
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-CM72FkGM.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs} +2 -2
- package/fesm2022/{acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map → acorex-modules-contact-management-address-type.entity-CW0fx3v8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs} +2 -2
- package/fesm2022/{acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map → acorex-modules-contact-management-contact-address.entity-D5OGWsSx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs → acorex-modules-contact-management-contact-method.entity-Cpdd-Xwb.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs → acorex-modules-contact-management-contact-relationship.entity-B_gQ7mEo.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs} +2 -2
- package/fesm2022/{acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map → acorex-modules-contact-management-contact-source.entity-BwYBaS8B.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs → acorex-modules-contact-management-emergency-contact-category.entity-CDbm4Rq3.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs → acorex-modules-contact-management-emergency-contact.entity-BpNDJPVs.mjs} +2 -2
- 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
- package/fesm2022/acorex-modules-contact-management.mjs +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +14 -14
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +608 -178
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +191 -191
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +2215 -265
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- 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
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-B4Jd-KGV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Cc0anIMV.mjs.map → acorex-modules-document-management-attachment-widget.component-Bp4kKjC4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs → acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs} +22 -22
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-12aUAucS.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-details-view.component-BeN0NPcy.mjs.map → acorex-modules-document-management-details-view.component-bzA7fJZW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs → acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs} +18 -18
- package/fesm2022/acorex-modules-document-management-drive-choose.component-DLJdJzp1.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-drive.component-CUej0GjY.mjs → acorex-modules-document-management-drive.component-DrkSd6Rv.mjs} +28 -28
- package/fesm2022/acorex-modules-document-management-drive.component-DrkSd6Rv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BuwrkLhe.mjs → acorex-modules-document-management-large-icons-view.component-DV8oWdDh.mjs} +5 -5
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-OTa8ttto.mjs.map → acorex-modules-document-management-link-dialog.component-CSEIhT4P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-list-view.component-1M2rIOGv.mjs.map → acorex-modules-document-management-list-view.component-Dz6ymqrq.mjs.map} +1 -1
- 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
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DYJN-4Pe.mjs.map +1 -0
- 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
- 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
- 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
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-By_NgUX6.mjs.map +1 -0
- 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
- 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
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-BEq3ySY3.mjs.map → acorex-modules-document-management-permission-definition.provider-CN7HVQLu.mjs.map} +1 -1
- 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
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-C_dsLLMb.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs} +6 -6
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DiyR6CiE.mjs.map → acorex-modules-document-management-share-dialog.component-CBrf7hjZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-CKlG3YwB.mjs → acorex-modules-document-management-share-email-dialog.component-D3WcHAOf.mjs} +5 -5
- 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
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- 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
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-zz8KU2BM.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-CC0qe4pv.mjs.map → acorex-modules-form-template-management-category.entity-g5YGQjj3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-B14QVCAw.mjs → acorex-modules-form-template-management-designer.page-DQorNK3f.mjs} +6 -6
- package/fesm2022/acorex-modules-form-template-management-designer.page-DQorNK3f.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-BMd6DvoR.mjs → acorex-modules-form-template-management-permission-definition.provider-BFPqDVO3.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-BYS5t4c_.mjs.map → acorex-modules-form-template-management-settings.provider-DYbrgJI7.mjs.map} +1 -1
- 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
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-DgH_DUIB.mjs.map +1 -0
- 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
- package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CCL7xNSm.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-DTx9CejD.mjs.map → acorex-modules-form-template-management-template.entity-XNBsmQZY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs → acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs} +12 -12
- package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-Bw9VbGx7.mjs.map +1 -0
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs} +7 -7
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CucnKDr1.mjs.map → acorex-modules-issue-management-capture-screen.component-D1vapaJC.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +427 -479
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +169 -63
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs} +16 -16
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Br70YGJS.mjs.map → acorex-modules-organization-management-add-item.component-DsDk5cyO.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs → acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs} +80 -6
- package/fesm2022/acorex-modules-organization-management-branch.entity-CHp5WtIF.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +1 -1
- package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-department.entity-BMojk26d.mjs → acorex-modules-organization-management-department.entity-BxCyXNtv.mjs} +68 -7
- package/fesm2022/acorex-modules-organization-management-department.entity-BxCyXNtv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-division.entity-BnWpX4US.mjs → acorex-modules-organization-management-division.entity-DzQT2jpz.mjs} +68 -6
- package/fesm2022/acorex-modules-organization-management-division.entity-DzQT2jpz.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs → acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs} +152 -28
- package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs → acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs} +21 -8
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-h9Hua7Xe.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs → acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs} +6 -6
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-a2JPiCy9.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs → acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs} +5 -5
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-BkfSow3s.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs → acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs} +20 -20
- package/fesm2022/acorex-modules-organization-management-org-chart.page-DWQ-5NF_.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs → acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs} +20 -35
- package/fesm2022/acorex-modules-organization-management-position-category.entity-CIir9UMg.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs +526 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-BpkjUsoZ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs → acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs} +12 -25
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-tJFpEylO.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs → acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs} +70 -25
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmKSoxpL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs → acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs} +22 -14
- package/fesm2022/acorex-modules-organization-management-role-category.entity-CAljzQcH.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-CY4TugWR.mjs → acorex-modules-organization-management-role.entity-CruQeObl.mjs} +77 -79
- package/fesm2022/acorex-modules-organization-management-role.entity-CruQeObl.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-settings.provider-hlbUXugb.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs → acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs} +18 -33
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-iIbc-pjJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-skill.entity-D9XojzUV.mjs → acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs} +61 -22
- package/fesm2022/acorex-modules-organization-management-skill.entity-DoAsCzm9.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team.entity-mYPhrc2l.mjs → acorex-modules-organization-management-team.entity-DMCfAZsr.mjs} +58 -10
- package/fesm2022/acorex-modules-organization-management-team.entity-DMCfAZsr.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +221 -136
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs → acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs} +9 -9
- package/fesm2022/acorex-modules-platform-management-list-version.component-BOfUQDwo.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +3479 -1
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +43 -43
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs → acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs} +10 -10
- package/fesm2022/acorex-modules-report-management-report-create-root.component-DgouOz2M.mjs.map +1 -0
- 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
- 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
- package/fesm2022/acorex-modules-report-management.mjs +465 -232
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +432 -900
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs → acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs} +17 -17
- package/fesm2022/acorex-modules-settings-management-setting-page.component-cG4ykm2g.mjs.map +1 -0
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs → acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs} +11 -11
- package/fesm2022/acorex-modules-settings-management-setting-view.component-CrEK2N1U.mjs.map +1 -0
- package/fesm2022/acorex-modules-settings-management.mjs +6 -6
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management-settings.provider-fX0dhWUL.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +43 -43
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-zaSchG-u.mjs → acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs} +123 -133
- package/fesm2022/acorex-modules-workflow-management-task-board.page-BoG_tFGn.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +12 -12
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/log-management/index.d.ts +46 -19
- package/notification-management/index.d.ts +125 -29
- package/organization-management/index.d.ts +41 -13
- package/package.json +5 -5
- package/platform-management/index.d.ts +8 -277
- package/report-management/index.d.ts +182 -126
- package/security-management/index.d.ts +5 -58
- package/fesm2022/acorex-modules-application-management-module-designer.component-BvuZJdwg.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DqsEqXec.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-BbsQWpEh.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs +0 -135
- package/fesm2022/acorex-modules-auth-user-sessions.component-CtTrstZT.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-timeline-version-history-popup.component-D48aDOVu.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Bte3VGKC.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-BNcu8bzT.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive-choose.component-B66wODCQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-CUej0GjY.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DsSo15AL.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-selector-widget-designer.component-B-fYrGs1.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-DWzD41AV.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-designer.page-B14QVCAw.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-C0mLCsFT.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CffnsEo2.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-viewer-popup.component-BwVSDsN3.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-branch.entity-Bsgj4Pow.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-department.entity-BMojk26d.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-division.entity-BnWpX4US.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employee.entity-DBuCVYZP.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DHu4UuxD.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-CcZMGyCz.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CSMTnTDi.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs +0 -324
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team.entity-mYPhrc2l.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs +0 -5524
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-BbnEqXKu.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-view.component-DP8mxDK9.mjs.map +0 -1
- 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
|
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
|
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$
|
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
|
41
|
+
import * as i4$1 from '@acorex/core/translation';
|
42
42
|
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
43
|
-
import * as
|
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$
|
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
|
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
|
66
|
+
import * as i5 from '@acorex/components/select-box';
|
67
67
|
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
68
|
-
import * as
|
68
|
+
import * as i6 from '@acorex/components/switch';
|
69
69
|
import { AXSwitchModule } from '@acorex/components/switch';
|
70
|
-
import * as i3$
|
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.
|
102
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
449
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
554
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
703
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
973
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
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.
|
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.
|
1410
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
1660
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
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.
|
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.
|
1940
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
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.
|
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.
|
2226
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
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.
|
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.
|
2678
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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: "
|
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.
|
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.
|
2872
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
3220
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
3417
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
3575
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
3731
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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: "
|
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.
|
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.
|
4207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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: "
|
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.
|
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.
|
4717
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
5047
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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: "
|
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.
|
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.
|
5230
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
5231
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
5377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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.
|
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.
|
5448
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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$
|
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.
|
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.
|
5599
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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$
|
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.
|
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.
|
5685
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.
|
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.
|
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.
|
6350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
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: "
|
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.
|
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,
|