@acorex/modules 20.2.0-next.3 → 20.2.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/contact-management/index.d.ts +21 -163
- package/content-management/index.d.ts +59 -2
- package/conversation/index.d.ts +77 -68
- package/dashboard-management/index.d.ts +7 -4
- package/data-management/index.d.ts +66 -10
- package/document-management/index.d.ts +51 -2
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs → acorex-modules-application-management-module-designer.component-BitSGI0F.mjs} +7 -7
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs.map → acorex-modules-application-management-module-designer.component-BitSGI0F.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +41 -41
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs → acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs} +47 -47
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs.map → acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs → acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs.map → acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-blank.layout-ZjroQcdq.mjs → acorex-modules-auth-blank.layout-D0KDl_qd.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-blank.layout-ZjroQcdq.mjs.map → acorex-modules-auth-blank.layout-D0KDl_qd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-D1aa1F6G.mjs → acorex-modules-auth-login.module-BHRC357P.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-D1aa1F6G.mjs.map → acorex-modules-auth-login.module-BHRC357P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-CGQmSlGQ.mjs → acorex-modules-auth-master.layout-DAYMmpBW.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-master.layout-CGQmSlGQ.mjs.map → acorex-modules-auth-master.layout-DAYMmpBW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs → acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs.map → acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-Cb3FJ1DZ.mjs → acorex-modules-auth-password.component-BJpxtJYh.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-Cb3FJ1DZ.mjs.map → acorex-modules-auth-password.component-BJpxtJYh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-CiWdX7f_.mjs → acorex-modules-auth-password.component-NAY46d_2.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-CiWdX7f_.mjs.map → acorex-modules-auth-password.component-NAY46d_2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-pae8qpX9.mjs → acorex-modules-auth-routes-hvqL2dCH.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-pae8qpX9.mjs.map → acorex-modules-auth-routes-hvqL2dCH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs → acorex-modules-auth-tenant-chooser.component-Cy94co3S.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs.map → acorex-modules-auth-tenant-chooser.component-Cy94co3S.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs → acorex-modules-auth-two-factor-code.component-CAbntIoR.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs.map → acorex-modules-auth-two-factor-code.component-CAbntIoR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-DtcoHPH4.mjs → acorex-modules-auth-two-factor.module-kPuT8yUw.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-DtcoHPH4.mjs.map → acorex-modules-auth-two-factor.module-kPuT8yUw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-sI6P2joA.mjs → acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-user-sessions.component-sI6P2joA.mjs.map → acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +22 -22
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs → acorex-modules-common-search-popup.component-39U0-TIj.mjs} +4 -4
- package/fesm2022/{acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs.map → acorex-modules-common-search-popup.component-39U0-TIj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs → acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs} +4 -4
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs.map → acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs.map} +1 -1
- package/fesm2022/acorex-modules-common.mjs +72 -49
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs +863 -0
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs → acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs} +2 -35
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs → acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs} +2 -2
- package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs.map → acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs → acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs} +2 -2
- package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs.map → acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs.map} +1 -1
- package/fesm2022/acorex-modules-contact-management.mjs +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +823 -14
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +161 -99
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +246 -142
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +516 -50
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs → acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs} +1132 -191
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs → acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs.map → acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs → acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs.map → acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-CMI2Eokj.mjs → acorex-modules-document-management-details-view.component-v1VroVv-.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-details-view.component-CMI2Eokj.mjs.map → acorex-modules-document-management-details-view.component-v1VroVv-.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs +123 -0
- package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs +105 -0
- package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs → acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs.map → acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-DoGdTL3n.mjs → acorex-modules-document-management-drive.component-D5OwpnAP.mjs} +40 -17
- package/fesm2022/acorex-modules-document-management-drive.component-D5OwpnAP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs → acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs.map → acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs → acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs.map → acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs → acorex-modules-document-management-link-dialog.component-DKOod11R.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs.map → acorex-modules-document-management-link-dialog.component-DKOod11R.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-C4VFnACA.mjs → acorex-modules-document-management-list-view.component-RaW67V7O.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-list-view.component-C4VFnACA.mjs.map → acorex-modules-document-management-list-view.component-RaW67V7O.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs → acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs} +5 -5
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs → acorex-modules-document-management-meta-selector-widget-column.component-CBAE1KZM.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs.map → acorex-modules-document-management-meta-selector-widget-column.component-CBAE1KZM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs → acorex-modules-document-management-meta-selector-widget-designer.component-B9Eqa6j0.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs.map → acorex-modules-document-management-meta-selector-widget-designer.component-B9Eqa6j0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs → acorex-modules-document-management-meta-selector-widget-view.component-BPBqDMwP.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs.map → acorex-modules-document-management-meta-selector-widget-view.component-BPBqDMwP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs → acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs.map → acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs → acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs.map → acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs → acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs.map → acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs → acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs.map → acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs → acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs.map → acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs → acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs.map → acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.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-DxSYInAR.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs} +56 -56
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-DxSYInAR.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs → acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs.map → acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs → acorex-modules-form-template-management-designer.page-CarisHH5.mjs} +4 -4
- package/fesm2022/{acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs.map → acorex-modules-form-template-management-designer.page-CarisHH5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs → acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs.map → acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs → acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs.map → acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs → acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs.map → acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs → acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CQm29n5v.mjs → acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CQm29n5v.mjs.map → acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs → acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/acorex-modules-identifier-management.mjs +512 -0
- package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -0
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs → acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs} +36 -36
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs.map → acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs → acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs} +5 -5
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs.map → acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/{acorex-modules-locale-management-settings.provider-PKnqTses.mjs → acorex-modules-locale-management-settings.provider-ClVIqYIL.mjs} +2 -2
- package/fesm2022/{acorex-modules-locale-management-settings.provider-PKnqTses.mjs.map → acorex-modules-locale-management-settings.provider-ClVIqYIL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-locale-management.mjs +1974 -1
- package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +56 -43
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +198 -10
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +158 -100
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs → acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs.map → acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs → acorex-modules-organization-management-org-chart-configuration.page-kVFv0xZ0.mjs} +5 -5
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-kVFv0xZ0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs → acorex-modules-organization-management-org-chart-configuration.service-7I15ZQGa.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-7I15ZQGa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs → acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs} +12 -12
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs.map → acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +265 -122
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs +714 -0
- package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs → acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs} +238 -136
- package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs +470 -0
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs → acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs} +174 -218
- package/fesm2022/acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs → acorex-modules-party-management-party-role.entity-C5BeakjX.mjs} +157 -162
- package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs +538 -0
- package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management-permission-definition.provider-DwMPgZkB.mjs +59 -0
- package/fesm2022/acorex-modules-party-management-permission-definition.provider-DwMPgZkB.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management.mjs +2 -0
- package/fesm2022/acorex-modules-party-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs +93 -0
- package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs → acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs} +4 -4
- package/fesm2022/{acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs.map → acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +483 -2129
- 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-CFNtnshF.mjs → acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs} +4 -4
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-CFNtnshF.mjs.map → acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs → acorex-modules-report-management-report-runner-root-page.component-BIUto_c9.mjs} +8 -9
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BIUto_c9.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +279 -35
- 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 +60 -60
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs → acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs.map → acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs → acorex-modules-settings-management-setting-view.component-D5pKY0Ag.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs.map → acorex-modules-settings-management-setting-view.component-D5pKY0Ag.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +6 -6
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-task-management.mjs +196 -153
- package/fesm2022/acorex-modules-task-management.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 +44 -44
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs → acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs} +13 -13
- package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs.map → acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs → acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs} +20 -20
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs.map → acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map} +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +1 -1
- package/identifier-management/README.md +269 -0
- package/identifier-management/index.d.ts +271 -0
- package/locale-management/index.d.ts +22 -1
- package/location-management/index.d.ts +4 -1
- package/notification-management/index.d.ts +9 -5
- package/package.json +9 -1
- package/party-management/README.md +177 -0
- package/party-management/index.d.ts +86 -0
- package/platform-management/index.d.ts +2 -140
- package/report-management/index.d.ts +481 -35
- package/task-management/index.d.ts +4 -4
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs +0 -2600
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs +0 -781
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-DoGdTL3n.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs.map +0 -1
- package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs +0 -1975
- package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs.map +0 -1
|
@@ -99,10 +99,10 @@ class AXMDashboardServiceImpl extends AXMDashboardService {
|
|
|
99
99
|
constructor() {
|
|
100
100
|
super(`${RootConfig.module.name}.${RootConfig.entities.dashboard.name}`);
|
|
101
101
|
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
103
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
103
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardServiceImpl }); }
|
|
104
104
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardServiceImpl, decorators: [{
|
|
106
106
|
type: Injectable
|
|
107
107
|
}], ctorParameters: () => [] });
|
|
108
108
|
|
|
@@ -446,10 +446,10 @@ class AXMEntityProvider {
|
|
|
446
446
|
}
|
|
447
447
|
return null;
|
|
448
448
|
}
|
|
449
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
450
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
449
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
450
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityProvider }); }
|
|
451
451
|
}
|
|
452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityProvider, decorators: [{
|
|
453
453
|
type: Injectable
|
|
454
454
|
}] });
|
|
455
455
|
|
|
@@ -551,8 +551,8 @@ class AXMAnalogClockComponent {
|
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
}
|
|
554
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
555
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
554
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAnalogClockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
555
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", 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: `
|
|
556
556
|
<div class="axm-analog-clock-container">
|
|
557
557
|
<div class="axm-analog-clock-face" [class]="classes()">
|
|
558
558
|
<div class="axm-analog-clock-marks-container">
|
|
@@ -593,7 +593,7 @@ class AXMAnalogClockComponent {
|
|
|
593
593
|
</div>
|
|
594
594
|
`, 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 }); }
|
|
595
595
|
}
|
|
596
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAnalogClockComponent, decorators: [{
|
|
597
597
|
type: Component,
|
|
598
598
|
args: [{ selector: 'axm-analog-clock', standalone: true, imports: [], template: `
|
|
599
599
|
<div class="axm-analog-clock-container">
|
|
@@ -700,8 +700,8 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
700
700
|
console.error('Failed to load user timezone', error);
|
|
701
701
|
}
|
|
702
702
|
}
|
|
703
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
704
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
703
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMClockWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
704
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMClockWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
705
705
|
<div class="ax-p-2 ax-h-full ax-overflow-hidden" [class.ax-bg-light]="others().length > 0">
|
|
706
706
|
<!-- Main Clock Section -->
|
|
707
707
|
<div class="ax-flex ax-flex-col ax-items-center ax-justify-around ax-gap-2 ax-flex-1 ax-h-full">
|
|
@@ -785,7 +785,7 @@ class AXMClockWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
785
785
|
</div>
|
|
786
786
|
`, 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 }); }
|
|
787
787
|
}
|
|
788
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
788
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMClockWidgetViewComponent, decorators: [{
|
|
789
789
|
type: Component,
|
|
790
790
|
args: [{ template: `
|
|
791
791
|
<div class="ax-p-2 ax-h-full ax-overflow-hidden" [class.ax-bg-light]="others().length > 0">
|
|
@@ -970,10 +970,10 @@ class AXPBarChartWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
970
970
|
handleBarClick(event) {
|
|
971
971
|
//console.log(event);
|
|
972
972
|
}
|
|
973
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
974
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
|
973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPBarChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
974
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", 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 }); }
|
|
975
975
|
}
|
|
976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPBarChartWidgetViewComponent, decorators: [{
|
|
977
977
|
type: Component,
|
|
978
978
|
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"] }]
|
|
979
979
|
}], ctorParameters: () => [] });
|
|
@@ -1407,10 +1407,10 @@ class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
1407
1407
|
const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
1408
1408
|
return days[this.currentDate.getDay()];
|
|
1409
1409
|
}
|
|
1410
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1411
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
1410
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1411
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", 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 }); }
|
|
1412
1412
|
}
|
|
1413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1413
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, decorators: [{
|
|
1414
1414
|
type: Component,
|
|
1415
1415
|
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"] }]
|
|
1416
1416
|
}] });
|
|
@@ -1657,10 +1657,10 @@ class AXPDonutChartWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
1657
1657
|
handleDonutChartSegmentClick(event) {
|
|
1658
1658
|
//console.log(event);
|
|
1659
1659
|
}
|
|
1660
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1661
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
|
1660
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDonutChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1661
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", 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 }); }
|
|
1662
1662
|
}
|
|
1663
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1663
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDonutChartWidgetViewComponent, decorators: [{
|
|
1664
1664
|
type: Component,
|
|
1665
1665
|
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"] }]
|
|
1666
1666
|
}], ctorParameters: () => [] });
|
|
@@ -1937,10 +1937,10 @@ class AXPGaugeChartWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
1937
1937
|
animationDuration: 800,
|
|
1938
1938
|
});
|
|
1939
1939
|
}
|
|
1940
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1941
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
|
1940
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1941
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", 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 }); }
|
|
1942
1942
|
}
|
|
1943
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1943
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, decorators: [{
|
|
1944
1944
|
type: Component,
|
|
1945
1945
|
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"] }]
|
|
1946
1946
|
}], ctorParameters: () => [] });
|
|
@@ -2223,10 +2223,10 @@ class AXPLineChartWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2223
2223
|
handleLineChartPointClick(event) {
|
|
2224
2224
|
//console.log(event);
|
|
2225
2225
|
}
|
|
2226
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
2227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
|
2226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLineChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", 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 }); }
|
|
2228
2228
|
}
|
|
2229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
2229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLineChartWidgetViewComponent, decorators: [{
|
|
2230
2230
|
type: Component,
|
|
2231
2231
|
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"] }]
|
|
2232
2232
|
}], ctorParameters: () => [] });
|
|
@@ -2675,15 +2675,15 @@ class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2675
2675
|
this.typeValue.set(event.value);
|
|
2676
2676
|
}
|
|
2677
2677
|
}
|
|
2678
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
2679
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
2678
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2679
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXPStickyNoteWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { listeners: { "document:click": "handleClickOutside($event)" } }, providers: [
|
|
2680
2680
|
{
|
|
2681
2681
|
provide: AXGridLayoutWidgetComponent,
|
|
2682
2682
|
useExisting: AXPStickyNoteWidgetViewComponent,
|
|
2683
2683
|
},
|
|
2684
2684
|
], 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 }); }
|
|
2685
2685
|
}
|
|
2686
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
2686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{
|
|
2687
2687
|
type: Component,
|
|
2688
2688
|
args: [{ standalone: true, imports: [
|
|
2689
2689
|
AXWysiwygModule,
|
|
@@ -2869,10 +2869,10 @@ class AXPTaskListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2869
2869
|
const diffMs = targetDate.getTime() - now.getTime();
|
|
2870
2870
|
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
2871
2871
|
}
|
|
2872
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
2873
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
2872
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskListWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2873
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", 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 }); }
|
|
2874
2874
|
}
|
|
2875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
2875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPTaskListWidgetViewComponent, decorators: [{
|
|
2876
2876
|
type: Component,
|
|
2877
2877
|
args: [{ standalone: true, imports: [
|
|
2878
2878
|
CommonModule,
|
|
@@ -3217,10 +3217,10 @@ class AXPWeatherApiAbstract {
|
|
|
3217
3217
|
getRandomInt(min, max) {
|
|
3218
3218
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
3219
3219
|
}
|
|
3220
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
3221
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
3220
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiAbstract, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3221
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiAbstract }); }
|
|
3222
3222
|
}
|
|
3223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
3223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiAbstract, decorators: [{
|
|
3224
3224
|
type: Injectable
|
|
3225
3225
|
}] });
|
|
3226
3226
|
|
|
@@ -3414,10 +3414,10 @@ class AXPWeatherApiMockService extends AXPWeatherApiAbstract {
|
|
|
3414
3414
|
// No-op for mock service
|
|
3415
3415
|
console.log('API key setting is ignored in mock weather service');
|
|
3416
3416
|
}
|
|
3417
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
3418
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
3417
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiMockService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3418
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiMockService }); }
|
|
3419
3419
|
}
|
|
3420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
3420
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiMockService, decorators: [{
|
|
3421
3421
|
type: Injectable
|
|
3422
3422
|
}] });
|
|
3423
3423
|
|
|
@@ -3572,10 +3572,10 @@ class AXPWeatherApiService extends AXPWeatherApiAbstract {
|
|
|
3572
3572
|
});
|
|
3573
3573
|
return weatherData;
|
|
3574
3574
|
}
|
|
3575
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
3576
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
3575
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3576
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiService }); }
|
|
3577
3577
|
}
|
|
3578
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
3578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherApiService, decorators: [{
|
|
3579
3579
|
type: Injectable
|
|
3580
3580
|
}] });
|
|
3581
3581
|
|
|
@@ -3728,8 +3728,8 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
|
|
|
3728
3728
|
getHourTemp(hour) {
|
|
3729
3729
|
return this.temperatureUnit() === '°C' ? hour.tempC : hour.tempF;
|
|
3730
3730
|
}
|
|
3731
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
3732
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
3731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdvancedWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdvancedWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
|
|
3733
3733
|
{
|
|
3734
3734
|
provide: AXPWeatherApiAbstract,
|
|
3735
3735
|
useClass: AXPWeatherApiService,
|
|
@@ -3873,7 +3873,7 @@ class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {
|
|
|
3873
3873
|
</div>
|
|
3874
3874
|
`, 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 }); }
|
|
3875
3875
|
}
|
|
3876
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
3876
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdvancedWeatherViewComponent, decorators: [{
|
|
3877
3877
|
type: Component,
|
|
3878
3878
|
args: [{ template: `
|
|
3879
3879
|
<div class="ax-size-full ax-p-6">
|
|
@@ -4204,8 +4204,8 @@ class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {
|
|
|
4204
4204
|
? this.weatherData().forecast[0].minTempC
|
|
4205
4205
|
: this.weatherData().forecast[0].minTempF;
|
|
4206
4206
|
}
|
|
4207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
4208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
4207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMMinimalWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMMinimalWeatherViewComponent, isStandalone: true, selector: "ng-component", providers: [
|
|
4209
4209
|
{
|
|
4210
4210
|
provide: AXPWeatherApiAbstract,
|
|
4211
4211
|
useClass: AXPWeatherApiService,
|
|
@@ -4280,7 +4280,7 @@ class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {
|
|
|
4280
4280
|
}
|
|
4281
4281
|
`, 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 }); }
|
|
4282
4282
|
}
|
|
4283
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
4283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMMinimalWeatherViewComponent, decorators: [{
|
|
4284
4284
|
type: Component,
|
|
4285
4285
|
args: [{ template: `
|
|
4286
4286
|
@if (weatherData() && !isLoading() && !hasError()) {
|
|
@@ -4714,15 +4714,15 @@ class AXPWeatherWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
4714
4714
|
parseDate(dateStr) {
|
|
4715
4715
|
return new Date(dateStr);
|
|
4716
4716
|
}
|
|
4717
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
4718
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
4717
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherWidgetViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4718
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXPWeatherWidgetViewComponent, isStandalone: true, selector: "ng-component", providers: [
|
|
4719
4719
|
{
|
|
4720
4720
|
provide: AXPWeatherApiAbstract,
|
|
4721
4721
|
useClass: AXPWeatherApiService,
|
|
4722
4722
|
},
|
|
4723
4723
|
], 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 }); }
|
|
4724
4724
|
}
|
|
4725
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
4725
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWeatherWidgetViewComponent, decorators: [{
|
|
4726
4726
|
type: Component,
|
|
4727
4727
|
args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, HttpClientModule, AXTranslationModule], providers: [
|
|
4728
4728
|
{
|
|
@@ -5044,8 +5044,8 @@ class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
5044
5044
|
cls[`ax-text-white`] = true;
|
|
5045
5045
|
return cls;
|
|
5046
5046
|
}
|
|
5047
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5048
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
5047
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5048
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXPDashboardShortcutWidgetViewComponent, isStandalone: true, selector: "ng-component", host: { properties: { "style": "this.__style", "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
5049
5049
|
@if (item()) {
|
|
5050
5050
|
<div
|
|
5051
5051
|
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 "
|
|
@@ -5074,7 +5074,7 @@ class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
5074
5074
|
}
|
|
5075
5075
|
`, 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 }); }
|
|
5076
5076
|
}
|
|
5077
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, decorators: [{
|
|
5078
5078
|
type: Component,
|
|
5079
5079
|
args: [{
|
|
5080
5080
|
template: `
|
|
@@ -5227,9 +5227,9 @@ function createAppRoute() {
|
|
|
5227
5227
|
};
|
|
5228
5228
|
}
|
|
5229
5229
|
class AXMDashboardManagementModule {
|
|
5230
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5231
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.
|
|
5232
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.
|
|
5230
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5231
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardManagementModule, imports: [i2$3.AXPLayoutBuilderModule] }); }
|
|
5232
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardManagementModule, providers: [
|
|
5233
5233
|
{
|
|
5234
5234
|
provide: AXMDashboardService,
|
|
5235
5235
|
useClass: AXMDashboardServiceImpl,
|
|
@@ -5279,7 +5279,7 @@ class AXMDashboardManagementModule {
|
|
|
5279
5279
|
],
|
|
5280
5280
|
})] }); }
|
|
5281
5281
|
}
|
|
5282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardManagementModule, decorators: [{
|
|
5283
5283
|
type: NgModule,
|
|
5284
5284
|
args: [{
|
|
5285
5285
|
imports: [
|
|
@@ -5374,10 +5374,10 @@ class AXMDashboardWidgetWrapperComponent {
|
|
|
5374
5374
|
log(event) {
|
|
5375
5375
|
console.log('Dropdown event:', event);
|
|
5376
5376
|
}
|
|
5377
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5378
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
5377
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5378
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", 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 }); }
|
|
5379
5379
|
}
|
|
5380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5380
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, decorators: [{
|
|
5381
5381
|
type: Component,
|
|
5382
5382
|
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"] }]
|
|
5383
5383
|
}] });
|
|
@@ -5445,8 +5445,8 @@ class AXMAddDashboardPopup extends AXBasePageComponent {
|
|
|
5445
5445
|
isCanceled,
|
|
5446
5446
|
});
|
|
5447
5447
|
}
|
|
5448
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5449
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
5448
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5449
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", 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: `
|
|
5450
5450
|
<div class="ax-card-body ax-p-4">
|
|
5451
5451
|
<div class="ax-flex ax-flex-col ax-gap-2 ax-pb-4">
|
|
5452
5452
|
<p class="ax-font-semibold">{{ 'title' | translate | async }}</p>
|
|
@@ -5504,7 +5504,7 @@ class AXMAddDashboardPopup extends AXBasePageComponent {
|
|
|
5504
5504
|
</ax-footer>
|
|
5505
5505
|
`, 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", "isItemTruncated", "showItemTooltip", "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" }] }); }
|
|
5506
5506
|
}
|
|
5507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAddDashboardPopup, decorators: [{
|
|
5508
5508
|
type: Component,
|
|
5509
5509
|
args: [{
|
|
5510
5510
|
template: `
|
|
@@ -5596,8 +5596,8 @@ class AXMConfigurationPopup extends AXBasePageComponent {
|
|
|
5596
5596
|
handlePropertyChange(event) {
|
|
5597
5597
|
this.widgetData.set(event.values);
|
|
5598
5598
|
}
|
|
5599
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5600
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
5599
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMConfigurationPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5600
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMConfigurationPopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
5601
5601
|
@if(widget) {
|
|
5602
5602
|
<div class="ax-px-1">
|
|
5603
5603
|
<axp-widget-property-viewer (onChanged)="handlePropertyChange($event)" [widget]="widget">
|
|
@@ -5615,7 +5615,7 @@ class AXMConfigurationPopup extends AXBasePageComponent {
|
|
|
5615
5615
|
</ax-footer>
|
|
5616
5616
|
`, 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"] }] }); }
|
|
5617
5617
|
}
|
|
5618
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMConfigurationPopup, decorators: [{
|
|
5619
5619
|
type: Component,
|
|
5620
5620
|
args: [{
|
|
5621
5621
|
template: `
|
|
@@ -5682,15 +5682,20 @@ class AXMDashboardPopupService {
|
|
|
5682
5682
|
}
|
|
5683
5683
|
return rest.widget;
|
|
5684
5684
|
}
|
|
5685
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
5686
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
5685
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5686
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardPopupService, providedIn: 'root' }); }
|
|
5687
5687
|
}
|
|
5688
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
5688
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardPopupService, decorators: [{
|
|
5689
5689
|
type: Injectable,
|
|
5690
5690
|
args: [{ providedIn: 'root' }]
|
|
5691
5691
|
}] });
|
|
5692
5692
|
|
|
5693
|
-
|
|
5693
|
+
//#region ---- Imports ----
|
|
5694
|
+
//#endregion
|
|
5695
|
+
//#region ---- Utility Functions ----
|
|
5696
|
+
/**
|
|
5697
|
+
* Creates the initial state for the dashboard store.
|
|
5698
|
+
*/
|
|
5694
5699
|
const createInitialState = () => ({
|
|
5695
5700
|
dashboards: [],
|
|
5696
5701
|
allDashboards: [],
|
|
@@ -5709,6 +5714,9 @@ const createInitialState = () => ({
|
|
|
5709
5714
|
},
|
|
5710
5715
|
isLoading: false,
|
|
5711
5716
|
});
|
|
5717
|
+
/**
|
|
5718
|
+
* Maps an entity model to a dashboard layout model.
|
|
5719
|
+
*/
|
|
5712
5720
|
const modelToDashboardLayout = (model) => ({
|
|
5713
5721
|
id: model.id || '',
|
|
5714
5722
|
title: model.title,
|
|
@@ -5723,6 +5731,9 @@ const modelToDashboardLayout = (model) => ({
|
|
|
5723
5731
|
updatedBy: model.updatedBy,
|
|
5724
5732
|
scope: model.scope,
|
|
5725
5733
|
});
|
|
5734
|
+
/**
|
|
5735
|
+
* Maps a dashboard layout to an entity model for persistence.
|
|
5736
|
+
*/
|
|
5726
5737
|
const dashboardLayoutToModel = (layout) => ({
|
|
5727
5738
|
id: layout.id,
|
|
5728
5739
|
name: layout.title,
|
|
@@ -5738,11 +5749,101 @@ const dashboardLayoutToModel = (layout) => ({
|
|
|
5738
5749
|
updatedBy: layout.updatedBy,
|
|
5739
5750
|
scope: layout.scope,
|
|
5740
5751
|
});
|
|
5741
|
-
|
|
5752
|
+
/**
|
|
5753
|
+
* Safely reads the current user id from the session service.
|
|
5754
|
+
*/
|
|
5755
|
+
const readUserId = (sessionService) => {
|
|
5756
|
+
const candidate = sessionService.user;
|
|
5757
|
+
return candidate?.id;
|
|
5758
|
+
};
|
|
5759
|
+
/**
|
|
5760
|
+
* Safely reads the current user role from the session service.
|
|
5761
|
+
*/
|
|
5762
|
+
const readUserRole = (sessionService) => {
|
|
5763
|
+
const candidate = sessionService.user;
|
|
5764
|
+
return candidate?.role;
|
|
5765
|
+
};
|
|
5766
|
+
/**
|
|
5767
|
+
* Determines whether the given dashboard contains the provided user role.
|
|
5768
|
+
*/
|
|
5769
|
+
const hasMatchingRole = (dashboard, userRole) => {
|
|
5770
|
+
if (!userRole)
|
|
5771
|
+
return false;
|
|
5772
|
+
const roleIds = dashboard.roleIds;
|
|
5773
|
+
return Array.isArray(roleIds) && roleIds.length > 0 && roleIds.includes(userRole);
|
|
5774
|
+
};
|
|
5775
|
+
/**
|
|
5776
|
+
* Computes effective layout options based on device, lock, admin and role restrictions.
|
|
5777
|
+
*/
|
|
5778
|
+
const deriveLayoutOptions = (baseOptions, dashboard, isAdmin, isDesktop, userRole) => {
|
|
5779
|
+
if (!dashboard)
|
|
5780
|
+
return baseOptions;
|
|
5781
|
+
if (!isDesktop)
|
|
5782
|
+
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5783
|
+
if (baseOptions.disableDrag !== undefined && baseOptions.disableResize !== undefined)
|
|
5784
|
+
return baseOptions;
|
|
5785
|
+
if (dashboard.locked === true)
|
|
5786
|
+
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5787
|
+
if (isAdmin)
|
|
5788
|
+
return baseOptions;
|
|
5789
|
+
const roleMatched = hasMatchingRole(dashboard, userRole);
|
|
5790
|
+
if (!isAdmin && roleMatched && dashboard.scope === 'T') {
|
|
5791
|
+
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5792
|
+
}
|
|
5793
|
+
return baseOptions;
|
|
5794
|
+
};
|
|
5795
|
+
/**
|
|
5796
|
+
* Checks if a widget is locked for the current user based on dashboard and role context.
|
|
5797
|
+
*/
|
|
5798
|
+
const isWidgetLockedForUser = (dashboard, isAdmin, userRole) => {
|
|
5799
|
+
if (!dashboard)
|
|
5800
|
+
return false;
|
|
5801
|
+
if (dashboard.locked === true)
|
|
5802
|
+
return true;
|
|
5803
|
+
if (isAdmin)
|
|
5804
|
+
return false;
|
|
5805
|
+
return hasMatchingRole(dashboard, userRole) && dashboard.scope === 'T';
|
|
5806
|
+
};
|
|
5807
|
+
/**
|
|
5808
|
+
* Determines if a widget can be configured by the current user.
|
|
5809
|
+
*/
|
|
5810
|
+
const canConfigureWidgetForUser = (dashboard, isAdmin, userRole, widgetHasConfiguration) => {
|
|
5811
|
+
if (!dashboard)
|
|
5812
|
+
return true;
|
|
5813
|
+
if (isAdmin)
|
|
5814
|
+
return widgetHasConfiguration;
|
|
5815
|
+
if (dashboard.locked === true)
|
|
5816
|
+
return false;
|
|
5817
|
+
if (hasMatchingRole(dashboard, userRole) && dashboard.scope === 'T')
|
|
5818
|
+
return false;
|
|
5819
|
+
return widgetHasConfiguration;
|
|
5820
|
+
};
|
|
5821
|
+
/**
|
|
5822
|
+
* Filters dashboards for current user scope and permissions.
|
|
5823
|
+
*/
|
|
5824
|
+
const filterDashboardsForUser = (dashboards, isAdmin, userId, userRole) => {
|
|
5825
|
+
if (!userId)
|
|
5826
|
+
return dashboards;
|
|
5827
|
+
if (isAdmin) {
|
|
5828
|
+
return dashboards.filter((d) => d.scope === 'T');
|
|
5829
|
+
}
|
|
5830
|
+
return dashboards.filter((d) => {
|
|
5831
|
+
const isUserDashboard = d.scope === 'U' && d.createdBy === userId;
|
|
5832
|
+
const roleMatched = hasMatchingRole(d, userRole);
|
|
5833
|
+
const isTenantDashboardWithRole = d.scope === 'T' && roleMatched && d.isDeleted !== true;
|
|
5834
|
+
return isUserDashboard || isTenantDashboardWithRole;
|
|
5835
|
+
});
|
|
5836
|
+
};
|
|
5837
|
+
//#endregion
|
|
5838
|
+
//#region ---- Signal Store ----
|
|
5839
|
+
/**
|
|
5840
|
+
* Dashboard Signal Store: manages dashboards, widgets and permissions.
|
|
5841
|
+
*/
|
|
5742
5842
|
const AXMDashboardStore = signalStore({ providedIn: 'root' },
|
|
5743
|
-
|
|
5843
|
+
//#region ---- Initial State ----
|
|
5744
5844
|
withState(() => createInitialState()),
|
|
5745
|
-
|
|
5845
|
+
//#endregion
|
|
5846
|
+
//#region ---- Computed Properties ----
|
|
5746
5847
|
withComputed((state, sessionService = inject(AXPSessionService), layoutThemeService = inject(AXPLayoutThemeService)) => ({
|
|
5747
5848
|
selectedDashboard: computed(() => state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null),
|
|
5748
5849
|
isUserAdmin: computed(() => state.isAdmin()),
|
|
@@ -5750,63 +5851,32 @@ withComputed((state, sessionService = inject(AXPSessionService), layoutThemeServ
|
|
|
5750
5851
|
currentLayoutOptions: computed(() => {
|
|
5751
5852
|
const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());
|
|
5752
5853
|
const baseOptions = state.dashboardsOption();
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5757
|
-
}
|
|
5758
|
-
if (baseOptions.disableDrag !== undefined && baseOptions.disableResize !== undefined) {
|
|
5759
|
-
return baseOptions;
|
|
5760
|
-
}
|
|
5761
|
-
if (currentDashboard.locked === true) {
|
|
5762
|
-
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5763
|
-
}
|
|
5764
|
-
if (state.isAdmin())
|
|
5765
|
-
return baseOptions;
|
|
5766
|
-
const userRole = sessionService.user ? sessionService.user['role'] : undefined;
|
|
5767
|
-
const hasRoleIds = currentDashboard.roleIds && Array.isArray(currentDashboard.roleIds) && currentDashboard.roleIds.length > 0;
|
|
5768
|
-
const hasUserRole = userRole && hasRoleIds && currentDashboard.roleIds?.includes(userRole);
|
|
5769
|
-
if (!state.isAdmin() && hasUserRole && currentDashboard.scope === 'T') {
|
|
5770
|
-
return { ...baseOptions, disableDrag: true, disableResize: true };
|
|
5771
|
-
}
|
|
5772
|
-
return baseOptions;
|
|
5854
|
+
const isDesktop = layoutThemeService.isDesktopDevice();
|
|
5855
|
+
const userRole = readUserRole(sessionService);
|
|
5856
|
+
return deriveLayoutOptions(baseOptions, currentDashboard || undefined, state.isAdmin(), isDesktop, userRole);
|
|
5773
5857
|
}),
|
|
5774
5858
|
canConfigureWidget: computed(() => (widget) => {
|
|
5775
5859
|
const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
return widget.node?.options?.['hasConfiguration'] ?? true;
|
|
5780
|
-
if (currentDashboard.locked === true)
|
|
5781
|
-
return false;
|
|
5782
|
-
const userRole = sessionService.user ? sessionService.user['role'] : undefined;
|
|
5783
|
-
const hasRoleIds = currentDashboard.roleIds && Array.isArray(currentDashboard.roleIds) && currentDashboard.roleIds.length > 0;
|
|
5784
|
-
const hasUserRole = userRole && hasRoleIds && currentDashboard.roleIds?.includes(userRole);
|
|
5785
|
-
if (hasUserRole && currentDashboard.scope === 'T')
|
|
5786
|
-
return false;
|
|
5787
|
-
return widget.node?.options?.['hasConfiguration'] ?? true;
|
|
5860
|
+
const userRole = readUserRole(sessionService);
|
|
5861
|
+
const widgetHasConfiguration = widget.node?.options?.['hasConfiguration'] ?? true;
|
|
5862
|
+
return canConfigureWidgetForUser(currentDashboard || undefined, state.isAdmin(), userRole, widgetHasConfiguration);
|
|
5788
5863
|
}),
|
|
5789
5864
|
isWidgetLocked: computed(() => (widget) => {
|
|
5790
5865
|
const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
if (currentDashboard.locked === true)
|
|
5794
|
-
return true;
|
|
5795
|
-
if (state.isAdmin())
|
|
5796
|
-
return false;
|
|
5797
|
-
const userRole = sessionService.user ? sessionService.user['role'] : undefined;
|
|
5798
|
-
const hasRoleIds = currentDashboard.roleIds && Array.isArray(currentDashboard.roleIds) && currentDashboard.roleIds.length > 0;
|
|
5799
|
-
const hasUserRole = userRole && hasRoleIds && currentDashboard.roleIds?.includes(userRole);
|
|
5800
|
-
return hasUserRole && currentDashboard.scope === 'T';
|
|
5866
|
+
const userRole = readUserRole(sessionService);
|
|
5867
|
+
return isWidgetLockedForUser(currentDashboard || undefined, state.isAdmin(), userRole);
|
|
5801
5868
|
}),
|
|
5802
5869
|
})),
|
|
5803
|
-
|
|
5870
|
+
//#endregion
|
|
5871
|
+
//#region ---- Methods ----
|
|
5804
5872
|
withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogService = inject(AXDialogService), translationService = inject(AXTranslationService), widgetPickerService = inject(AXPWidgetPickerService), dashboardService = inject(AXMDashboardService), settingService = inject(AXPSettingService), sessionService = inject(AXPSessionService), layoutThemeService = inject(AXPLayoutThemeService)) => {
|
|
5805
5873
|
// Load dashboards from service - runs on init via effect
|
|
5806
5874
|
effect(() => {
|
|
5807
5875
|
loadDashboards();
|
|
5808
5876
|
});
|
|
5809
|
-
|
|
5877
|
+
/**
|
|
5878
|
+
* Loads dashboards and sets current dashboard based on user settings.
|
|
5879
|
+
*/
|
|
5810
5880
|
async function loadDashboards() {
|
|
5811
5881
|
try {
|
|
5812
5882
|
patchState(store, { isLoading: true });
|
|
@@ -5839,16 +5909,22 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5839
5909
|
}
|
|
5840
5910
|
}
|
|
5841
5911
|
return {
|
|
5912
|
+
/**
|
|
5913
|
+
* Sets the selected dashboard and persists the choice for the user.
|
|
5914
|
+
*/
|
|
5842
5915
|
setCurrentDashboard(dashboardId) {
|
|
5843
5916
|
patchState(store, { currentDashboardId: dashboardId });
|
|
5844
5917
|
settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting$1.CurrentDashboard, dashboardId);
|
|
5845
5918
|
},
|
|
5919
|
+
/**
|
|
5920
|
+
* Creates a new dashboard and selects it as current.
|
|
5921
|
+
*/
|
|
5846
5922
|
async addDashboard() {
|
|
5847
5923
|
try {
|
|
5848
5924
|
const newDashboard = await dashboardPopup.generateDashboardLayout({}, store.isUserAdmin());
|
|
5849
5925
|
if (!newDashboard)
|
|
5850
5926
|
return;
|
|
5851
|
-
const userId = sessionService
|
|
5927
|
+
const userId = readUserId(sessionService);
|
|
5852
5928
|
const now = new Date();
|
|
5853
5929
|
const dashboardWithMetadata = {
|
|
5854
5930
|
...newDashboard,
|
|
@@ -5877,6 +5953,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5877
5953
|
console.error('Error adding dashboard:', error);
|
|
5878
5954
|
}
|
|
5879
5955
|
},
|
|
5956
|
+
/**
|
|
5957
|
+
* Edits the current dashboard metadata and persists changes.
|
|
5958
|
+
*/
|
|
5880
5959
|
async editDashboard() {
|
|
5881
5960
|
const currentDashboard = store.selectedDashboard();
|
|
5882
5961
|
if (!currentDashboard)
|
|
@@ -5892,7 +5971,7 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5892
5971
|
}, store.isUserAdmin());
|
|
5893
5972
|
if (!editedDashboard)
|
|
5894
5973
|
return;
|
|
5895
|
-
const userId = sessionService
|
|
5974
|
+
const userId = readUserId(sessionService);
|
|
5896
5975
|
const now = new Date();
|
|
5897
5976
|
const updatedDashboard = {
|
|
5898
5977
|
...currentDashboard,
|
|
@@ -5916,6 +5995,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5916
5995
|
console.error('Error editing dashboard:', error);
|
|
5917
5996
|
}
|
|
5918
5997
|
},
|
|
5998
|
+
/**
|
|
5999
|
+
* Adds selected widgets to the current dashboard and saves layout.
|
|
6000
|
+
*/
|
|
5919
6001
|
async addWidget() {
|
|
5920
6002
|
if (!store.selectedDashboard()) {
|
|
5921
6003
|
console.warn('No current dashboard selected');
|
|
@@ -5965,6 +6047,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5965
6047
|
console.error('Error adding widget:', error);
|
|
5966
6048
|
}
|
|
5967
6049
|
},
|
|
6050
|
+
/**
|
|
6051
|
+
* Removes a dashboard after user confirmation and updates selection.
|
|
6052
|
+
*/
|
|
5968
6053
|
async removeDashboard(id) {
|
|
5969
6054
|
if (!id) {
|
|
5970
6055
|
console.warn('No dashboard ID provided for removal');
|
|
@@ -5997,6 +6082,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
5997
6082
|
console.error('Error removing dashboard:', error);
|
|
5998
6083
|
}
|
|
5999
6084
|
},
|
|
6085
|
+
/**
|
|
6086
|
+
* Removes a widget from the specified dashboard and persists the change.
|
|
6087
|
+
*/
|
|
6000
6088
|
async removeWidget(dashboardId, widgetId) {
|
|
6001
6089
|
const currentDashboard = store.dashboards().find((d) => d.id === dashboardId);
|
|
6002
6090
|
if (!currentDashboard)
|
|
@@ -6014,6 +6102,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6014
6102
|
.map((dashboard) => (dashboard.id === dashboardId ? updatedDashboard : dashboard));
|
|
6015
6103
|
patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });
|
|
6016
6104
|
},
|
|
6105
|
+
/**
|
|
6106
|
+
* Persists dashboard configuration changes and updates selection.
|
|
6107
|
+
*/
|
|
6017
6108
|
async handleConfigChange(dashboard) {
|
|
6018
6109
|
await dashboardService.updateOne(dashboard.id, dashboardLayoutToModel(dashboard));
|
|
6019
6110
|
const updatedDashboards = store.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));
|
|
@@ -6023,6 +6114,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6023
6114
|
});
|
|
6024
6115
|
settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting$1.CurrentDashboard, dashboard.id);
|
|
6025
6116
|
},
|
|
6117
|
+
/**
|
|
6118
|
+
* Handles grid layout changes (drag/resize) on desktop and saves positions.
|
|
6119
|
+
*/
|
|
6026
6120
|
async onGridChange(event) {
|
|
6027
6121
|
if (!layoutThemeService.isDesktopDevice() || !store.selectedDashboard())
|
|
6028
6122
|
return;
|
|
@@ -6045,6 +6139,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6045
6139
|
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
|
6046
6140
|
patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });
|
|
6047
6141
|
},
|
|
6142
|
+
/**
|
|
6143
|
+
* Applies widget configuration changes returned from popup.
|
|
6144
|
+
*/
|
|
6048
6145
|
async handlePopupConfiguration(widgetNode) {
|
|
6049
6146
|
if (!store.selectedDashboard())
|
|
6050
6147
|
return;
|
|
@@ -6073,9 +6170,15 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6073
6170
|
console.error('Error handling widget configuration:', error);
|
|
6074
6171
|
}
|
|
6075
6172
|
},
|
|
6173
|
+
/**
|
|
6174
|
+
* Updates widget value (defaultValue) and persists changes.
|
|
6175
|
+
*/
|
|
6076
6176
|
async handleValueChanged(widgetNode, data) {
|
|
6077
6177
|
if (!store.selectedDashboard())
|
|
6078
6178
|
return;
|
|
6179
|
+
if (!layoutThemeService.isDesktopDevice()) {
|
|
6180
|
+
return;
|
|
6181
|
+
}
|
|
6079
6182
|
try {
|
|
6080
6183
|
const currentDashboard = store.selectedDashboard();
|
|
6081
6184
|
const updatedWidgets = currentDashboard.widgets.map((widget) => widget.node && widget.node.name === widgetNode.name && widget.node.path === widgetNode.path
|
|
@@ -6098,6 +6201,9 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6098
6201
|
console.error('Error handling widget value change:', error);
|
|
6099
6202
|
}
|
|
6100
6203
|
},
|
|
6204
|
+
/**
|
|
6205
|
+
* Merges widget options with provided data and persists changes.
|
|
6206
|
+
*/
|
|
6101
6207
|
async handleOptionsChanged(widgetNode, data) {
|
|
6102
6208
|
if (!store.selectedDashboard())
|
|
6103
6209
|
return;
|
|
@@ -6129,41 +6235,35 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6129
6235
|
console.error('Error handling widget options change:', error);
|
|
6130
6236
|
}
|
|
6131
6237
|
},
|
|
6238
|
+
/**
|
|
6239
|
+
* Updates the admin flag in store state.
|
|
6240
|
+
*/
|
|
6132
6241
|
setIsAdmin(isAdmin) {
|
|
6133
6242
|
patchState(store, { isAdmin });
|
|
6134
6243
|
},
|
|
6135
|
-
|
|
6244
|
+
/**
|
|
6245
|
+
* Filters dashboards by user scope and role permissions.
|
|
6246
|
+
*/
|
|
6136
6247
|
filterDashboardsByScope(isAdmin) {
|
|
6137
6248
|
const allDashboards = store.availableDashboards();
|
|
6138
|
-
const userId = sessionService
|
|
6139
|
-
const userRole = sessionService
|
|
6140
|
-
|
|
6141
|
-
patchState(store, { dashboards: allDashboards });
|
|
6142
|
-
return;
|
|
6143
|
-
}
|
|
6144
|
-
const filteredDashboards = isAdmin
|
|
6145
|
-
? allDashboards.filter((dashboard) => dashboard.scope === 'T')
|
|
6146
|
-
: allDashboards.filter((dashboard) => {
|
|
6147
|
-
const isUserDashboard = dashboard.scope === 'U' && dashboard.createdBy === userId;
|
|
6148
|
-
const hasRoleIds = dashboard.roleIds && Array.isArray(dashboard.roleIds) && dashboard.roleIds.length > 0;
|
|
6149
|
-
const isTenantDashboard = dashboard.scope === 'T';
|
|
6150
|
-
const hasUserRole = userRole && hasRoleIds && dashboard.roleIds?.includes(userRole);
|
|
6151
|
-
const isNotDeleted = dashboard.isDeleted !== true;
|
|
6152
|
-
const isTenantDashboardWithRole = isTenantDashboard && hasUserRole && isNotDeleted;
|
|
6153
|
-
return isUserDashboard || isTenantDashboardWithRole;
|
|
6154
|
-
});
|
|
6249
|
+
const userId = readUserId(sessionService);
|
|
6250
|
+
const userRole = readUserRole(sessionService);
|
|
6251
|
+
const filteredDashboards = filterDashboardsForUser(allDashboards, isAdmin, userId, userRole);
|
|
6155
6252
|
patchState(store, { dashboards: filteredDashboards });
|
|
6156
6253
|
if (filteredDashboards.length > 0 && !filteredDashboards.some((d) => d.id === store.currentDashboardId())) {
|
|
6157
6254
|
this.setCurrentDashboard(filteredDashboards[0].id);
|
|
6158
6255
|
}
|
|
6159
6256
|
},
|
|
6257
|
+
/**
|
|
6258
|
+
* Toggles lock state for current dashboard based on permission rules.
|
|
6259
|
+
*/
|
|
6160
6260
|
async toggleLockDashboard() {
|
|
6161
6261
|
const currentDashboard = store.selectedDashboard();
|
|
6162
6262
|
if (!currentDashboard)
|
|
6163
6263
|
return;
|
|
6164
6264
|
try {
|
|
6165
6265
|
const isAdmin = store.isUserAdmin();
|
|
6166
|
-
const userId = sessionService
|
|
6266
|
+
const userId = readUserId(sessionService);
|
|
6167
6267
|
const canToggle = (!isAdmin && currentDashboard.scope === 'U' && currentDashboard.createdBy === userId) ||
|
|
6168
6268
|
(isAdmin && currentDashboard.scope === 'T');
|
|
6169
6269
|
if (!canToggle) {
|
|
@@ -6192,12 +6292,16 @@ withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogSer
|
|
|
6192
6292
|
console.error('Error toggling dashboard lock state:', error);
|
|
6193
6293
|
}
|
|
6194
6294
|
},
|
|
6295
|
+
/**
|
|
6296
|
+
* Returns the lock state of the current dashboard.
|
|
6297
|
+
*/
|
|
6195
6298
|
isDashboardLocked() {
|
|
6196
6299
|
const currentDashboard = store.selectedDashboard();
|
|
6197
6300
|
return currentDashboard?.locked === true;
|
|
6198
6301
|
},
|
|
6199
6302
|
};
|
|
6200
6303
|
}));
|
|
6304
|
+
//#endregion
|
|
6201
6305
|
|
|
6202
6306
|
class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
|
|
6203
6307
|
constructor() {
|
|
@@ -6347,8 +6451,8 @@ class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
|
|
|
6347
6451
|
break;
|
|
6348
6452
|
}
|
|
6349
6453
|
}
|
|
6350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
6351
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
6454
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardHomeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6455
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMDashboardHomeComponent, isStandalone: true, selector: "axm-dashboard-home", providers: [
|
|
6352
6456
|
AXPDesignerService,
|
|
6353
6457
|
AXMDashboardStore,
|
|
6354
6458
|
{
|
|
@@ -6357,7 +6461,7 @@ class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {
|
|
|
6357
6461
|
},
|
|
6358
6462
|
], 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 }); }
|
|
6359
6463
|
}
|
|
6360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
6464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMDashboardHomeComponent, decorators: [{
|
|
6361
6465
|
type: Component,
|
|
6362
6466
|
args: [{ selector: 'axm-dashboard-home', standalone: true, imports: [
|
|
6363
6467
|
CommonModule,
|