@acorex/platform 18.2.4 → 19.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/app/app-startup.service.d.ts +1 -2
- package/common/lib/app/application.types.d.ts +3 -3
- package/common/lib/schema/entity/entity.class.d.ts +1 -1
- package/core/index.d.ts +1 -0
- package/core/utils/highlighter.d.ts +43 -0
- package/fesm2022/acorex-platform-auth.mjs +27 -29
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs → acorex-platform-common-avatar-widget-edit.component-syRKKn21.mjs} +6 -26
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-syRKKn21.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs → acorex-platform-common-avatar-widget-view.component-DSju_bgg.mjs} +6 -28
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-DSju_bgg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs → acorex-platform-common-boolean-widget-filter.component-aaKT0FyC.mjs} +6 -26
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-aaKT0FyC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-change-password.component-g_GEw3IZ.mjs → acorex-platform-common-change-password.component-DFoC5nP2.mjs} +7 -8
- package/fesm2022/acorex-platform-common-change-password.component-DFoC5nP2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs → acorex-platform-common-checkbox-widget-column.component-DZxykkVr.mjs} +6 -28
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-DZxykkVr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs → acorex-platform-common-checkbox-widget-edit.component-CNmYVpMu.mjs} +6 -29
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-CNmYVpMu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs → acorex-platform-common-checkbox-widget-view.component-3XLnJx9A.mjs} +6 -28
- package/fesm2022/acorex-platform-common-checkbox-widget-view.component-3XLnJx9A.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs → acorex-platform-common-dateTime-widget-column.component-CKaMC189.mjs} +6 -27
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-CKaMC189.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs → acorex-platform-common-dateTime-widget-edit.component-B50J-bwp.mjs} +6 -26
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-B50J-bwp.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs → acorex-platform-common-dateTime-widget-filter.component-CTV2a3c0.mjs} +6 -24
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-CTV2a3c0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs → acorex-platform-common-dateTime-widget-view.component-C7hmUXLz.mjs} +6 -27
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-C7hmUXLz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs → acorex-platform-common-email-widget-column.component-BPoSZTqM.mjs} +6 -29
- package/fesm2022/acorex-platform-common-email-widget-column.component-BPoSZTqM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs → acorex-platform-common-email-widget-edit.component-aLPGOG3r.mjs} +6 -27
- package/fesm2022/acorex-platform-common-email-widget-edit.component-aLPGOG3r.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs → acorex-platform-common-email-widget-view.component-dMByK5bc.mjs} +5 -27
- package/fesm2022/acorex-platform-common-email-widget-view.component-dMByK5bc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs → acorex-platform-common-file-widget-column.component-Dafc2zLc.mjs} +6 -27
- package/fesm2022/acorex-platform-common-file-widget-column.component-Dafc2zLc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs → acorex-platform-common-file-widget-edit.component-C31kfJSw.mjs} +6 -27
- package/fesm2022/acorex-platform-common-file-widget-edit.component-C31kfJSw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs → acorex-platform-common-file-widget-filter.component-BNCcBun4.mjs} +6 -29
- package/fesm2022/acorex-platform-common-file-widget-filter.component-BNCcBun4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs → acorex-platform-common-file-widget-view.component-T3r6musY.mjs} +6 -27
- package/fesm2022/acorex-platform-common-file-widget-view.component-T3r6musY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs → acorex-platform-common-gallery-widget-edit.component-zBsaBkzu.mjs} +6 -26
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-zBsaBkzu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs → acorex-platform-common-gallery-widget-filter.component-BhLYuB6p.mjs} +6 -28
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-BhLYuB6p.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs → acorex-platform-common-gallery-widget-view.component-Dxf4Oj1E.mjs} +6 -26
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-Dxf4Oj1E.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs → acorex-platform-common-largetext-widget-edit.component-BYMIaLCI.mjs} +5 -27
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BYMIaLCI.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs → acorex-platform-common-lookup-widget-column.component-BB0Mdx2u.mjs} +6 -28
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-BB0Mdx2u.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs → acorex-platform-common-lookup-widget-edit.component-DUPsS_ZW.mjs} +6 -28
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-DUPsS_ZW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs → acorex-platform-common-lookup-widget-filter.component-CLyl94AJ.mjs} +6 -26
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-CLyl94AJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs → acorex-platform-common-lookup-widget-view.component-CJijszjn.mjs} +6 -28
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-CJijszjn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs → acorex-platform-common-map-widget-edit.component-BTHORlG5.mjs} +6 -27
- package/fesm2022/acorex-platform-common-map-widget-edit.component-BTHORlG5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs → acorex-platform-common-map-widget-view.component-CQzW1ZeD.mjs} +6 -27
- package/fesm2022/acorex-platform-common-map-widget-view.component-CQzW1ZeD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs → acorex-platform-common-messenger-widget-column.component-Brm4vLGA.mjs} +6 -29
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-Brm4vLGA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs → acorex-platform-common-messenger-widget-edit.component-CJHvut2C.mjs} +6 -27
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-CJHvut2C.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs → acorex-platform-common-messenger-widget-view.component-DVylp_2t.mjs} +6 -28
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-DVylp_2t.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs → acorex-platform-common-number-widget-edit.component-DZf-n-yr.mjs} +6 -27
- package/fesm2022/acorex-platform-common-number-widget-edit.component-DZf-n-yr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs → acorex-platform-common-number-widget-filter.component-womVAhSr.mjs} +6 -28
- package/fesm2022/acorex-platform-common-number-widget-filter.component-womVAhSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs → acorex-platform-common-number-widget-view.component-L2pxAqqz.mjs} +5 -27
- package/fesm2022/acorex-platform-common-number-widget-view.component-L2pxAqqz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs → acorex-platform-common-password-widget-column.component-3ubqJk-d.mjs} +6 -28
- package/fesm2022/acorex-platform-common-password-widget-column.component-3ubqJk-d.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs → acorex-platform-common-password-widget-edit.component-BokyEDfK.mjs} +6 -28
- package/fesm2022/acorex-platform-common-password-widget-edit.component-BokyEDfK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs → acorex-platform-common-password-widget-view.component-BuFoE2fz.mjs} +7 -28
- package/fesm2022/acorex-platform-common-password-widget-view.component-BuFoE2fz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs → acorex-platform-common-phone-widget-column.component-79Me_VNP.mjs} +6 -29
- package/fesm2022/acorex-platform-common-phone-widget-column.component-79Me_VNP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs → acorex-platform-common-phone-widget-edit.component-CIayMoT1.mjs} +6 -26
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-CIayMoT1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs → acorex-platform-common-phone-widget-view.component-B1Xu_rxC.mjs} +6 -28
- package/fesm2022/acorex-platform-common-phone-widget-view.component-B1Xu_rxC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs → acorex-platform-common-rich-text-widget-column.component-Dbn3JMOu.mjs} +6 -29
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-Dbn3JMOu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs → acorex-platform-common-rich-text-widget-edit.component-CHT12edE.mjs} +6 -27
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CHT12edE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs → acorex-platform-common-rich-text-widget-view.component-qvUpx39D.mjs} +5 -27
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-qvUpx39D.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs → acorex-platform-common-selection-list-widget-column.component-E7yRTViz.mjs} +6 -29
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-E7yRTViz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs → acorex-platform-common-selection-list-widget-edit.component-B8dmJ_jJ.mjs} +6 -28
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-B8dmJ_jJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs → acorex-platform-common-selection-list-widget-filter.component-i4syx0Bj.mjs} +6 -27
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-i4syx0Bj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs → acorex-platform-common-selection-list-widget-view.component-B7disiIF.mjs} +6 -29
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-B7disiIF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs → acorex-platform-common-signature-pad-widget-edit.component-CMoiIhgJ.mjs} +6 -26
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-CMoiIhgJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs → acorex-platform-common-signature-pad-widget-view.component-HfArY6VQ.mjs} +6 -27
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-HfArY6VQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs → acorex-platform-common-string-widget-filter.component-CDssxMLR.mjs} +6 -28
- package/fesm2022/acorex-platform-common-string-widget-filter.component-CDssxMLR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-column.component-DVczwvKA.mjs → acorex-platform-common-text-widget-column.component-7yp4qqIb.mjs} +5 -27
- package/fesm2022/acorex-platform-common-text-widget-column.component-7yp4qqIb.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs → acorex-platform-common-text-widget-edit.component-5koh5Aws.mjs} +6 -27
- package/fesm2022/acorex-platform-common-text-widget-edit.component-5koh5Aws.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs → acorex-platform-common-text-widget-view.component-BH0LTD80.mjs} +5 -27
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs.map → acorex-platform-common-text-widget-view.component-BH0LTD80.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs → acorex-platform-common-toggle-widget-column.component-C5dMjerm.mjs} +6 -28
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-C5dMjerm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs → acorex-platform-common-toggle-widget-edit.component-JOnGMn-9.mjs} +6 -27
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-JOnGMn-9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs → acorex-platform-common-toggle-widget-view.component-DguoIz_c.mjs} +6 -28
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-DguoIz_c.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +184 -181
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +114 -7
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +55 -55
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +350 -205
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +126 -116
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-setting.mjs +68 -8
- package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs → acorex-platform-layouts-entity-create-view.component-1Yw4H3CW.mjs} +6 -6
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-1Yw4H3CW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs → acorex-platform-layouts-entity-import-view.component-BIHTWoXR.mjs} +7 -9
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-BIHTWoXR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs → acorex-platform-layouts-entity-modify-view.component-Cb2Yvtav.mjs} +7 -9
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Cb2Yvtav.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +99 -88
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs +108 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs +305 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs} +16 -17
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs +130 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs → acorex-platform-themes-default-error-401.component-CRMYVnTw.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-error-401.component-CRMYVnTw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs → acorex-platform-themes-default-error-404.component-Dc_IGKXu.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-error-404.component-Dc_IGKXu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs → acorex-platform-themes-default-error-offline.component-C6raiMLq.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-error-offline.component-C6raiMLq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +56 -56
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +8 -9
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs → acorex-platform-widgets-button-widget-designer.component-BQe1zP7P.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BQe1zP7P.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs → acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs → acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs → acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs → acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs → acorex-platform-widgets-contact-widget-filter.component-B1HiCGC6.mjs} +5 -6
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-B1HiCGC6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs → acorex-platform-widgets-page-widget-designer.component-DGNcuRbs.mjs} +21 -11
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DGNcuRbs.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs → acorex-platform-widgets-rich-text-popup.component-D7LZqQIO.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-D7LZqQIO.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs → acorex-platform-widgets-text-block-widget-designer.component-BToPbMjj.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-BToPbMjj.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +574 -875
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +23 -23
- package/layout/builder/lib/builder/widget.types.d.ts +21 -5
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +3 -1
- package/layout/designer/lib/designer/components/board/board.component.d.ts +4 -3
- package/layout/designer/lib/designer/designer.component.d.ts +1 -1
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +2 -2
- package/layout/designer/lib/designer/shared/designer.service.d.ts +10 -4
- package/layout/designer/lib/designer/shared/designer.types.d.ts +11 -0
- package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +1 -0
- package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +7 -5
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +1 -1
- package/layout/entity/lib/entity-master-create.viewmodel.d.ts +10 -5
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +6 -3
- package/layout/entity/lib/workflows/create-entity.workflow.d.ts +2 -0
- package/layout/setting/lib/convert-setting-data.d.ts +1 -0
- package/layout/setting/lib/setting.viewmodel.d.ts +6 -3
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +12 -0
- package/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.d.ts +2 -0
- package/package.json +7 -35
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -4
- package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +1 -1
- package/widgets/lib/properties/editors.props.d.ts +1 -0
- package/widgets/lib/widgets/advance/file/file-box-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
- package/widgets/lib/widgets/index.d.ts +0 -1
- package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +4 -6
- package/esm2022/acorex-platform.mjs +0 -5
- package/esm2022/auth/acorex-platform-auth.mjs +0 -5
- package/esm2022/auth/index.mjs +0 -14
- package/esm2022/auth/lib/application/application.loader.mjs +0 -23
- package/esm2022/auth/lib/application/application.types.mjs +0 -2
- package/esm2022/auth/lib/auth-registry.service.mjs +0 -29
- package/esm2022/auth/lib/auth.guard.mjs +0 -16
- package/esm2022/auth/lib/auth.module.mjs +0 -90
- package/esm2022/auth/lib/auth.strategy.mjs +0 -2
- package/esm2022/auth/lib/errors.types.mjs +0 -15
- package/esm2022/auth/lib/feature/feature.directive.mjs +0 -55
- package/esm2022/auth/lib/feature/feature.guard.mjs +0 -19
- package/esm2022/auth/lib/feature/feature.loader.mjs +0 -14
- package/esm2022/auth/lib/feature/feature.types.mjs +0 -2
- package/esm2022/auth/lib/feature/index.mjs +0 -5
- package/esm2022/auth/lib/permission/index.mjs +0 -5
- package/esm2022/auth/lib/permission/permission.directive.mjs +0 -54
- package/esm2022/auth/lib/permission/permission.guard.mjs +0 -19
- package/esm2022/auth/lib/permission/permission.loader.mjs +0 -14
- package/esm2022/auth/lib/permission/permission.types.mjs +0 -2
- package/esm2022/auth/lib/session.service.mjs +0 -265
- package/esm2022/auth/lib/session.types.mjs +0 -29
- package/esm2022/auth/lib/tenant/tenant.loader.mjs +0 -20
- package/esm2022/auth/lib/tenant/tenant.types.mjs +0 -2
- package/esm2022/auth/lib/user/user.types.mjs +0 -2
- package/esm2022/common/acorex-platform-common.mjs +0 -5
- package/esm2022/common/index.mjs +0 -13
- package/esm2022/common/lib/app/app-startup.service.mjs +0 -40
- package/esm2022/common/lib/app/application.types.mjs +0 -55
- package/esm2022/common/lib/app/index.mjs +0 -4
- package/esm2022/common/lib/app/operators.mjs +0 -65
- package/esm2022/common/lib/common.module.mjs +0 -155
- package/esm2022/common/lib/configs/app.config.mjs +0 -27
- package/esm2022/common/lib/configs/config.types.mjs +0 -3
- package/esm2022/common/lib/data/data-provider.types.mjs +0 -3
- package/esm2022/common/lib/data/data.types.mjs +0 -2
- package/esm2022/common/lib/data/dexie-storage.service.mjs +0 -130
- package/esm2022/common/lib/data/entity-data-seeder.mjs +0 -25
- package/esm2022/common/lib/data/entity-storage-service.mjs +0 -63
- package/esm2022/common/lib/data/filter-middleware.service.mjs +0 -53
- package/esm2022/common/lib/data/index.mjs +0 -8
- package/esm2022/common/lib/data/operators.service.mjs +0 -15
- package/esm2022/common/lib/errors/error-handler-registry.service.mjs +0 -29
- package/esm2022/common/lib/errors/error-handler.types.mjs +0 -2
- package/esm2022/common/lib/errors/global-error-handler.mjs +0 -36
- package/esm2022/common/lib/errors/index.mjs +0 -4
- package/esm2022/common/lib/layout/beardcrumb.type.mjs +0 -2
- package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +0 -57
- package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +0 -28
- package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +0 -24
- package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +0 -72
- package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +0 -2
- package/esm2022/common/lib/layout/component-slot/index.mjs +0 -6
- package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +0 -61
- package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +0 -2
- package/esm2022/common/lib/layout/grid-layout/index.mjs +0 -3
- package/esm2022/common/lib/layout/index.mjs +0 -8
- package/esm2022/common/lib/layout/logo/index.mjs +0 -3
- package/esm2022/common/lib/layout/logo/logo.component.mjs +0 -38
- package/esm2022/common/lib/layout/logo/logo.types.mjs +0 -21
- package/esm2022/common/lib/layout/menu/index.mjs +0 -4
- package/esm2022/common/lib/layout/menu/menu.provider.mjs +0 -137
- package/esm2022/common/lib/layout/menu/menu.service.mjs +0 -105
- package/esm2022/common/lib/layout/menu/menu.types.mjs +0 -2
- package/esm2022/common/lib/layout/sticky.directive.mjs +0 -82
- package/esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.mjs +0 -20
- package/esm2022/common/lib/layout/theme/components/slots/index.mjs +0 -3
- package/esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.mjs +0 -36
- package/esm2022/common/lib/schema/component-loader.mjs +0 -2
- package/esm2022/common/lib/schema/entity/entity-registery.service.mjs +0 -70
- package/esm2022/common/lib/schema/entity/entity.class.mjs +0 -32
- package/esm2022/common/lib/schema/entity/entity.loader.mjs +0 -13
- package/esm2022/common/lib/schema/entity/index.mjs +0 -4
- package/esm2022/common/lib/schema/formats.mjs +0 -2
- package/esm2022/common/lib/schema/index.mjs +0 -9
- package/esm2022/common/lib/schema/schema-registery.service.mjs +0 -33
- package/esm2022/common/lib/schema/schema.module.mjs +0 -23
- package/esm2022/common/lib/schema/schema.types.mjs +0 -2
- package/esm2022/common/lib/schema/widget/index.mjs +0 -6
- package/esm2022/common/lib/schema/widget/widget-base.mjs +0 -113
- package/esm2022/common/lib/schema/widget/widget-column-renderer.mjs +0 -118
- package/esm2022/common/lib/schema/widget/widget-filter-renderer.mjs +0 -133
- package/esm2022/common/lib/schema/widget/widget-renderer.mjs +0 -148
- package/esm2022/common/lib/schema/widget/widget-token.mjs +0 -3
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +0 -166
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +0 -63
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-column.component.mjs +0 -53
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +0 -22
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-view.component.mjs +0 -47
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +0 -153
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +0 -135
- package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +0 -125
- package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +0 -505
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-column.component.mjs +0 -44
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +0 -177
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +0 -284
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-view.component.mjs +0 -71
- package/esm2022/common/lib/schema/widgets/email/email-widget-column.component.mjs +0 -73
- package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +0 -248
- package/esm2022/common/lib/schema/widgets/email/email-widget-view.component.mjs +0 -108
- package/esm2022/common/lib/schema/widgets/file/file-widget-column.component.mjs +0 -27
- package/esm2022/common/lib/schema/widgets/file/file-widget-edit.component.mjs +0 -200
- package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +0 -27
- package/esm2022/common/lib/schema/widgets/file/file-widget-view.component.mjs +0 -153
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-edit.component.mjs +0 -189
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +0 -27
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-types.mjs +0 -2
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-view.component.mjs +0 -173
- package/esm2022/common/lib/schema/widgets/index.mjs +0 -2
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +0 -43
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +0 -95
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +0 -160
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +0 -54
- package/esm2022/common/lib/schema/widgets/map/map-widget-edit.component.mjs +0 -91
- package/esm2022/common/lib/schema/widgets/map/map-widget-view.component.mjs +0 -63
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-column.component.mjs +0 -71
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +0 -136
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-view.component.mjs +0 -132
- package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +0 -46
- package/esm2022/common/lib/schema/widgets/number/number-widget-view.component.mjs +0 -30
- package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +0 -174
- package/esm2022/common/lib/schema/widgets/password/password-widget-column.component.mjs +0 -67
- package/esm2022/common/lib/schema/widgets/password/password-widget-edit.component.mjs +0 -41
- package/esm2022/common/lib/schema/widgets/password/password-widget-view.component.mjs +0 -109
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-column.component.mjs +0 -91
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +0 -248
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-view.component.mjs +0 -123
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-column.component.mjs +0 -61
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +0 -66
- package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-view.component.mjs +0 -34
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-column.component.mjs +0 -45
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +0 -53
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +0 -45
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-view.component.mjs +0 -45
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-edit.component.mjs +0 -128
- package/esm2022/common/lib/schema/widgets/signature-pad/signature-pad-widget-view.component.mjs +0 -41
- package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +0 -36
- package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +0 -46
- package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +0 -161
- package/esm2022/common/lib/schema/widgets/text/text-widget-view.component.mjs +0 -66
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-column.component.mjs +0 -57
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-edit.component.mjs +0 -25
- package/esm2022/common/lib/schema/widgets/toggle/toggle-widget-view.component.mjs +0 -49
- package/esm2022/common/lib/settings/index.mjs +0 -5
- package/esm2022/common/lib/settings/setting-definition.provider.mjs +0 -183
- package/esm2022/common/lib/settings/settings.provider.mjs +0 -35
- package/esm2022/common/lib/settings/settings.service.mjs +0 -53
- package/esm2022/common/lib/settings/settings.types.mjs +0 -2
- package/esm2022/common/lib/store/common.actions.mjs +0 -5
- package/esm2022/common/lib/store/common.effects.mjs +0 -34
- package/esm2022/common/lib/store/index.mjs +0 -3
- package/esm2022/common/lib/utils/clipboard-service.mjs +0 -26
- package/esm2022/common/lib/utils/data-generator.mjs +0 -133
- package/esm2022/common/lib/utils/index.mjs +0 -4
- package/esm2022/common/lib/utils/pdf.service.mjs +0 -85
- package/esm2022/common/lib/workflows/common.workflow.mjs +0 -73
- package/esm2022/common/lib/workflows/error-handler.mjs +0 -24
- package/esm2022/common/lib/workflows/index.mjs +0 -3
- package/esm2022/core/acorex-platform-core.mjs +0 -5
- package/esm2022/core/index.mjs +0 -5
- package/esm2022/core/lib/types.mjs +0 -13
- package/esm2022/core/utils/countdown-timer.mjs +0 -49
- package/esm2022/core/utils/data-conditioner.mjs +0 -138
- package/esm2022/core/utils/html-utils.mjs +0 -27
- package/esm2022/index.mjs +0 -2
- package/esm2022/layout/builder/acorex-platform-layout-builder.mjs +0 -5
- package/esm2022/layout/builder/index.mjs +0 -2
- package/esm2022/layout/builder/lib/builder/builder.module.mjs +0 -68
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +0 -105
- package/esm2022/layout/builder/lib/builder/datasource-provider.service.mjs +0 -27
- package/esm2022/layout/builder/lib/builder/index.mjs +0 -12
- package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +0 -39
- package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +0 -128
- package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +0 -46
- package/esm2022/layout/builder/lib/builder/widget-groups.mjs +0 -27
- package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +0 -36
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.directive.mjs +0 -313
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +0 -320
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +0 -264
- package/esm2022/layout/designer/acorex-platform-layout-designer.mjs +0 -5
- package/esm2022/layout/designer/index.mjs +0 -5
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.mjs +0 -37
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.mjs +0 -49
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.mjs +0 -53
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/index.mjs +0 -4
- package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +0 -139
- package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +0 -59
- package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +0 -33
- package/esm2022/layout/designer/lib/designer/components/drawers/history/history.component.mjs +0 -30
- package/esm2022/layout/designer/lib/designer/components/drawers/outline/outline.component.mjs +0 -61
- package/esm2022/layout/designer/lib/designer/components/drawers/pages/pages.component.mjs +0 -28
- package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +0 -82
- package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +0 -105
- package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +0 -49
- package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +0 -121
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +0 -81
- package/esm2022/layout/designer/lib/designer/index.mjs +0 -10
- package/esm2022/layout/designer/lib/designer/shared/command.mjs +0 -185
- package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +0 -10
- package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +0 -603
- package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +0 -6
- package/esm2022/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.mjs +0 -16
- package/esm2022/layout/designer/lib/designer/shared/generic-commands.types.mjs +0 -52
- package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +0 -220
- package/esm2022/layout/designer/lib/preview/preview-frame.component.mjs +0 -75
- package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +0 -67
- package/esm2022/layout/designer/lib/preview/preview.component.mjs +0 -79
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +0 -119
- package/esm2022/layout/entity/acorex-platform-layout-entity.mjs +0 -5
- package/esm2022/layout/entity/index.mjs +0 -2
- package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +0 -182
- package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +0 -143
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +0 -350
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +0 -227
- package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +0 -103
- package/esm2022/layout/entity/lib/entity-registery.service.mjs +0 -69
- package/esm2022/layout/entity/lib/entity.config.mjs +0 -30
- package/esm2022/layout/entity/lib/entity.module.mjs +0 -138
- package/esm2022/layout/entity/lib/entity.service.mjs +0 -18
- package/esm2022/layout/entity/lib/entity.viewmodel.mjs +0 -34
- package/esm2022/layout/entity/lib/index.mjs +0 -11
- package/esm2022/layout/entity/lib/widgets/lookup-widget/index.mjs +0 -7
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +0 -25
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +0 -267
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.mjs +0 -20
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.mjs +0 -19
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +0 -208
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +0 -109
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +0 -110
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +0 -62
- package/esm2022/layout/entity/lib/widgets/widget-selector/index.mjs +0 -4
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.mjs +0 -130
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.mjs +0 -18
- package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +0 -20
- package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +0 -92
- package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +0 -130
- package/esm2022/layout/entity/lib/workflows/modify-section.workflow.mjs +0 -94
- package/esm2022/layout/entity/lib/workflows/show-details.workflow.mjs +0 -35
- package/esm2022/layout/entity/lib/workflows/show-list.workflow.mjs +0 -35
- package/esm2022/layout/setting/acorex-platform-layout-setting.mjs +0 -5
- package/esm2022/layout/setting/index.mjs +0 -2
- package/esm2022/layout/setting/lib/convert-setting-data.mjs +0 -59
- package/esm2022/layout/setting/lib/setting.viewmodel.mjs +0 -132
- package/esm2022/layouts/acorex-platform-layouts.mjs +0 -5
- package/esm2022/layouts/index.mjs +0 -3
- package/esm2022/layouts/lib/admin/admin.module.mjs +0 -94
- package/esm2022/layouts/lib/admin/admin.routes.mjs +0 -48
- package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +0 -20
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +0 -119
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +0 -138
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +0 -126
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +0 -164
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +0 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-import-view/entity-import-view.component.mjs +0 -91
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +0 -201
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +0 -6
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +0 -53
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +0 -105
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +0 -76
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +0 -56
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +0 -295
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +0 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +0 -341
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +0 -163
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +0 -95
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +0 -67
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +0 -77
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/index.mjs +0 -2
- package/esm2022/layouts/lib/admin/entity-layout/index.mjs +0 -5
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +0 -93
- package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +0 -139
- package/esm2022/layouts/lib/admin/entity-layout/workflows/import-entity.workflow.mjs +0 -77
- package/esm2022/layouts/lib/admin/entity-layout/workflows/index.mjs +0 -7
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +0 -100
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-section.workflow.mjs +0 -85
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-details.workflow.mjs +0 -36
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-list.workflow.mjs +0 -35
- package/esm2022/layouts/lib/admin/entity-layout/workflows/show-quick-view.workflow.mjs +0 -50
- package/esm2022/layouts/lib/admin/entity.resolver.mjs +0 -17
- package/esm2022/layouts/lib/admin/index.mjs +0 -6
- package/esm2022/layouts/lib/layout.module.mjs +0 -43
- package/esm2022/native/acorex-platform-native.mjs +0 -5
- package/esm2022/native/index.mjs +0 -3
- package/esm2022/native/lib/native.module.mjs +0 -16
- package/esm2022/native/lib/native.service.mjs +0 -133
- package/esm2022/themes/default/acorex-platform-themes-default.mjs +0 -5
- package/esm2022/themes/default/index.mjs +0 -5
- package/esm2022/themes/default/lib/default.module.mjs +0 -122
- package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +0 -19
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +0 -160
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +0 -106
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +0 -190
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +0 -74
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +0 -72
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +0 -85
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +0 -84
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +0 -70
- package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +0 -2
- package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +0 -14
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +0 -27
- package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +0 -40
- package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +0 -6
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +0 -36
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +0 -99
- package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +0 -3
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.mjs +0 -28
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.mjs +0 -42
- package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +0 -28
- package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +0 -22
- package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +0 -16
- package/esm2022/themes/shared/acorex-platform-themes-shared.mjs +0 -5
- package/esm2022/themes/shared/index.mjs +0 -4
- package/esm2022/themes/shared/lib/components/theme-slot.component.mjs +0 -116
- package/esm2022/themes/shared/lib/services/theme.service.mjs +0 -250
- package/esm2022/themes/shared/lib/shared.module.mjs +0 -39
- package/esm2022/widgets/acorex-platform-widgets.mjs +0 -5
- package/esm2022/widgets/index.mjs +0 -4
- package/esm2022/widgets/lib/properties/data-source.props.mjs +0 -21
- package/esm2022/widgets/lib/properties/editors.props.mjs +0 -252
- package/esm2022/widgets/lib/properties/general.props.mjs +0 -115
- package/esm2022/widgets/lib/properties/groups.mjs +0 -21
- package/esm2022/widgets/lib/properties/index.mjs +0 -7
- package/esm2022/widgets/lib/properties/layout.props.mjs +0 -270
- package/esm2022/widgets/lib/properties/table-column.props.mjs +0 -33
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +0 -69
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +0 -68
- package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +0 -31
- package/esm2022/widgets/lib/widgets/actions/button/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.mjs +0 -18
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +0 -24
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.mjs +0 -22
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +0 -32
- package/esm2022/widgets/lib/widgets/advance/cron-job/index.mjs +0 -8
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-edit.component.mjs +0 -131
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-view.component.mjs +0 -215
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.config.mjs +0 -53
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.service.mjs +0 -3
- package/esm2022/widgets/lib/widgets/advance/file/index.mjs +0 -8
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.mjs +0 -182
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-types.mjs +0 -2
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.mjs +0 -160
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget.config.mjs +0 -30
- package/esm2022/widgets/lib/widgets/advance/gallery/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/advance/map/index.mjs +0 -4
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +0 -77
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +0 -52
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget.config.mjs +0 -120
- package/esm2022/widgets/lib/widgets/advance/qrcode/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +0 -60
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.mjs +0 -64
- package/esm2022/widgets/lib/widgets/advance/signature/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.mjs +0 -151
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.mjs +0 -43
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget.config.mjs +0 -30
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.mjs +0 -51
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +0 -54
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +0 -72
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +0 -70
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/checkbox/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-column.component.mjs +0 -40
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-designer.component.mjs +0 -54
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-edit.component.mjs +0 -61
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-view.component.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget.config.mjs +0 -40
- package/esm2022/widgets/lib/widgets/editors/color/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-column.component.mjs +0 -50
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +0 -322
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-view.component.mjs +0 -122
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +0 -59
- package/esm2022/widgets/lib/widgets/editors/contact/contact.type.mjs +0 -2
- package/esm2022/widgets/lib/widgets/editors/contact/index.mjs +0 -6
- package/esm2022/widgets/lib/widgets/editors/contact/popup-component.mjs +0 -78
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +0 -64
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.mjs +0 -172
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.mjs +0 -63
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +0 -43
- package/esm2022/widgets/lib/widgets/editors/date-time/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-column.component.mjs +0 -66
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-edit.component.mjs +0 -258
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-view.component.mjs +0 -115
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget.config.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/email/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/large-text/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-column.component.mjs +0 -23
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +0 -79
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.mjs +0 -31
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget.config.mjs +0 -42
- package/esm2022/widgets/lib/widgets/editors/link/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +0 -399
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-view.component.mjs +0 -120
- package/esm2022/widgets/lib/widgets/editors/link/link-widget.config.mjs +0 -30
- package/esm2022/widgets/lib/widgets/editors/number/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-column.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +0 -159
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-view.component.mjs +0 -50
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget.config.mjs +0 -42
- package/esm2022/widgets/lib/widgets/editors/password/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-column.component.mjs +0 -56
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-edit.component.mjs +0 -56
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-view.component.mjs +0 -82
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget.config.mjs +0 -40
- package/esm2022/widgets/lib/widgets/editors/phone/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.mjs +0 -66
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.mjs +0 -230
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-view.component.mjs +0 -115
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget.config.mjs +0 -33
- package/esm2022/widgets/lib/widgets/editors/rich-text/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-popup.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.mjs +0 -46
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +0 -92
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.mjs +0 -47
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/select/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-column.component.mjs +0 -49
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +0 -108
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-filter.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +0 -60
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/selection-list/index.mjs +0 -8
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.mjs +0 -56
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +0 -88
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +0 -99
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +0 -52
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.mjs +0 -44
- package/esm2022/widgets/lib/widgets/editors/text/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-column.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-edit.component.mjs +0 -130
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-view.component.mjs +0 -47
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget.config.mjs +0 -43
- package/esm2022/widgets/lib/widgets/editors/toggle/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-column.component.mjs +0 -53
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +0 -48
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +0 -55
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget.config.mjs +0 -42
- package/esm2022/widgets/lib/widgets/index.mjs +0 -27
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +0 -98
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +0 -83
- package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +0 -31
- package/esm2022/widgets/lib/widgets/layout/block/index.mjs +0 -4
- package/esm2022/widgets/lib/widgets/layout/document/document-widget.config.mjs +0 -13
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +0 -67
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +0 -51
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +0 -30
- package/esm2022/widgets/lib/widgets/layout/form-field/index.mjs +0 -4
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +0 -91
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget.config.mjs +0 -29
- package/esm2022/widgets/lib/widgets/layout/grid/index.mjs +0 -5
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +0 -100
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +0 -89
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.mjs +0 -31
- package/esm2022/widgets/lib/widgets/layout/grid-item/index.mjs +0 -5
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +0 -85
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.mjs +0 -28
- package/esm2022/widgets/lib/widgets/layout/grid-row/index.mjs +0 -5
- package/esm2022/widgets/lib/widgets/layout/page/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +0 -148
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +0 -41
- package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +0 -46
- package/esm2022/widgets/lib/widgets/layout/repeater/index.mjs +0 -6
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +0 -125
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +0 -170
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.mjs +0 -44
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +0 -37
- package/esm2022/widgets/lib/widgets/layout/template/index.mjs +0 -5
- package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs +0 -120
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-designer.component.mjs +0 -70
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +0 -96
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +0 -62
- package/esm2022/widgets/lib/widgets/layout/template/template-widget.config.mjs +0 -30
- package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +0 -58
- package/esm2022/widgets/lib/widgets/layout/text-block/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.mjs +0 -30
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +0 -43
- package/esm2022/widgets/lib/widgets.module.mjs +0 -113
- package/esm2022/workflow/acorex-platform-workflow.mjs +0 -5
- package/esm2022/workflow/index.mjs +0 -7
- package/esm2022/workflow/lib/actions/start-workflow.action.mjs +0 -32
- package/esm2022/workflow/lib/errors.types.mjs +0 -8
- package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +0 -23
- package/esm2022/workflow/lib/workflow-registery.service.mjs +0 -39
- package/esm2022/workflow/lib/workflow.module.mjs +0 -101
- package/esm2022/workflow/lib/workflow.service.mjs +0 -188
- package/esm2022/workflow/lib/workflow.types.mjs +0 -59
- package/fesm2022/acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-change-password.component-g_GEw3IZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-column.component-DVczwvKA.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs +0 -109
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs +0 -310
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs +0 -148
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs +0 -123
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs +0 -136
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map +0 -1
- package/widgets/lib/widgets/layout/template/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/template/template-picker/template-picker.component.d.ts +0 -30
- package/widgets/lib/widgets/layout/template/template-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/template/template-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/layout/template/template.provider.d.ts +0 -24
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Provider } from '@angular/core';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
export interface AXPStartUpTask {
|
|
4
3
|
name: string;
|
|
@@ -13,4 +12,4 @@ export declare class AXPAppStartUpService {
|
|
|
13
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
|
|
14
13
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppStartUpService>;
|
|
15
14
|
}
|
|
16
|
-
export declare const AXPAppStartUpProvider:
|
|
15
|
+
export declare const AXPAppStartUpProvider: import("@angular/core").EnvironmentProviders;
|
|
@@ -128,13 +128,11 @@ export interface AXPEntityQuery {
|
|
|
128
128
|
execute: string | Function;
|
|
129
129
|
type: AXPEntityQueryType;
|
|
130
130
|
}
|
|
131
|
-
export interface AXPEntityHistory {
|
|
132
|
-
}
|
|
133
131
|
export interface AXPEntityAction {
|
|
134
132
|
permissions?: string[];
|
|
135
133
|
command: string;
|
|
136
134
|
title: string;
|
|
137
|
-
type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view';
|
|
135
|
+
type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view' | 'archive';
|
|
138
136
|
priority: 'primary' | 'secondary';
|
|
139
137
|
color?: 'primary' | 'danger' | 'success' | 'warning';
|
|
140
138
|
separated?: boolean;
|
|
@@ -252,6 +250,8 @@ export interface AXPQueryView {
|
|
|
252
250
|
columns: string[];
|
|
253
251
|
conditions: AXPQueryFilter[];
|
|
254
252
|
sorts: AXPQuerySort[];
|
|
253
|
+
indexCol?: boolean;
|
|
254
|
+
pageSize?: number;
|
|
255
255
|
}
|
|
256
256
|
export interface AXPQueryFilter {
|
|
257
257
|
name: string;
|
|
@@ -87,7 +87,7 @@ export interface AXPEntityConfig {
|
|
|
87
87
|
permissions?: string[];
|
|
88
88
|
target: 'selected' | 'single' | 'entity';
|
|
89
89
|
priority: 'primary' | 'secondary';
|
|
90
|
-
type: 'create' | 'update' | 'delete';
|
|
90
|
+
type: 'create' | 'update' | 'delete' | 'redirect';
|
|
91
91
|
options?: any;
|
|
92
92
|
};
|
|
93
93
|
};
|
package/core/index.d.ts
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Service for applying and resetting text highlighting within specified HTML elements.
|
|
4
|
+
*/
|
|
5
|
+
export declare class AXHighlightService {
|
|
6
|
+
private querySelector;
|
|
7
|
+
private searchValue;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Highlights all occurrences of a search value within the elements matching the provided query selector.
|
|
11
|
+
*
|
|
12
|
+
* @param querySelector - CSS selector to identify target elements.
|
|
13
|
+
* @param searchValue - Text to search and highlight.
|
|
14
|
+
*/
|
|
15
|
+
highlight(querySelector: string, searchValue: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Resets all highlighted text within the elements matching the previously used query selector.
|
|
18
|
+
*/
|
|
19
|
+
private resetHighlight;
|
|
20
|
+
/**
|
|
21
|
+
* Applies highlighting to a specific element by matching text against the search value.
|
|
22
|
+
*
|
|
23
|
+
* @param element - The HTML element to apply highlights to.
|
|
24
|
+
*/
|
|
25
|
+
private applyHighlight;
|
|
26
|
+
/**
|
|
27
|
+
* Recursively applies highlighting to text nodes within an element.
|
|
28
|
+
*
|
|
29
|
+
* @param element - The current node being processed.
|
|
30
|
+
* @param searchRegex - Regular expression for matching text to highlight.
|
|
31
|
+
*/
|
|
32
|
+
private recursivelyHighlight;
|
|
33
|
+
/**
|
|
34
|
+
* Generates the HTML structure for highlighted text.
|
|
35
|
+
*
|
|
36
|
+
* @param textContent - The original text content to process.
|
|
37
|
+
* @param searchRegex - Regular expression for matching text to highlight.
|
|
38
|
+
* @returns A string of HTML with highlighted portions wrapped in span elements.
|
|
39
|
+
*/
|
|
40
|
+
private createHighlightedHTML;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXHighlightService, never>;
|
|
42
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXHighlightService>;
|
|
43
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injector, Injectable, signal, inject, Input,
|
|
2
|
+
import { InjectionToken, Injector, Injectable, signal, inject, Directive, Input, provideAppInitializer, NgModule, Optional, Inject } from '@angular/core';
|
|
3
3
|
import { of, map, BehaviorSubject, shareReplay, defaultIfEmpty, firstValueFrom, first } from 'rxjs';
|
|
4
4
|
import { AXPSignOutAction, AXPSignInAction } from '@acorex/platform/common';
|
|
5
5
|
import { Store } from '@ngrx/store';
|
|
@@ -88,10 +88,10 @@ class AXPAuthStrategyRegistryService {
|
|
|
88
88
|
get(strategyKey) {
|
|
89
89
|
return this.strategies.get(strategyKey);
|
|
90
90
|
}
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
92
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthStrategyRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
92
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthStrategyRegistryService, providedIn: 'root' }); }
|
|
93
93
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthStrategyRegistryService, decorators: [{
|
|
95
95
|
type: Injectable,
|
|
96
96
|
args: [{
|
|
97
97
|
providedIn: 'root'
|
|
@@ -148,13 +148,14 @@ class AXPFeatureDirective {
|
|
|
148
148
|
ngOnDestroy() {
|
|
149
149
|
this.subscription?.unsubscribe();
|
|
150
150
|
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
152
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFeatureDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
152
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXPFeatureDirective, isStandalone: false, selector: "[feature]", inputs: { feature: "feature", featureElse: "featureElse" }, ngImport: i0 }); }
|
|
153
153
|
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFeatureDirective, decorators: [{
|
|
155
155
|
type: Directive,
|
|
156
156
|
args: [{
|
|
157
157
|
selector: '[feature]',
|
|
158
|
+
standalone: false
|
|
158
159
|
}]
|
|
159
160
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { feature: [{
|
|
160
161
|
type: Input
|
|
@@ -449,10 +450,10 @@ class AXPSessionService {
|
|
|
449
450
|
application: this.application,
|
|
450
451
|
});
|
|
451
452
|
}
|
|
452
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
453
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
453
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
454
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSessionService, providedIn: 'root' }); }
|
|
454
455
|
}
|
|
455
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSessionService, decorators: [{
|
|
456
457
|
type: Injectable,
|
|
457
458
|
args: [{
|
|
458
459
|
providedIn: 'root',
|
|
@@ -511,13 +512,14 @@ class AXPPermissionDirective {
|
|
|
511
512
|
ngOnDestroy() {
|
|
512
513
|
this.subscription?.unsubscribe();
|
|
513
514
|
}
|
|
514
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
515
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
515
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
516
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXPPermissionDirective, isStandalone: false, selector: "[permission]", inputs: { permission: "permission", permissionElse: "permissionElse" }, ngImport: i0 }); }
|
|
516
517
|
}
|
|
517
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPermissionDirective, decorators: [{
|
|
518
519
|
type: Directive,
|
|
519
520
|
args: [{
|
|
520
521
|
selector: '[permission]',
|
|
522
|
+
standalone: false
|
|
521
523
|
}]
|
|
522
524
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { permission: [{
|
|
523
525
|
type: Input
|
|
@@ -588,30 +590,26 @@ class AXPAuthModule {
|
|
|
588
590
|
f();
|
|
589
591
|
});
|
|
590
592
|
}
|
|
591
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
592
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
593
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
594
|
-
{
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
multi: true,
|
|
599
|
-
},
|
|
593
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthModule, deps: [{ token: 'AXPAuthModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
594
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthModule, declarations: [AXPPermissionDirective, AXPFeatureDirective], exports: [AXPPermissionDirective, AXPFeatureDirective] }); }
|
|
595
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthModule, providers: [
|
|
596
|
+
provideAppInitializer(() => {
|
|
597
|
+
const initializerFn = (initializeAppState)(inject(AXPSessionService));
|
|
598
|
+
return initializerFn();
|
|
599
|
+
}),
|
|
600
600
|
] }); }
|
|
601
601
|
}
|
|
602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
602
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAuthModule, decorators: [{
|
|
603
603
|
type: NgModule,
|
|
604
604
|
args: [{
|
|
605
605
|
imports: [],
|
|
606
606
|
exports: [AXPPermissionDirective, AXPFeatureDirective],
|
|
607
607
|
declarations: [AXPPermissionDirective, AXPFeatureDirective],
|
|
608
608
|
providers: [
|
|
609
|
-
{
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
multi: true,
|
|
614
|
-
},
|
|
609
|
+
provideAppInitializer(() => {
|
|
610
|
+
const initializerFn = (initializeAppState)(inject(AXPSessionService));
|
|
611
|
+
return initializerFn();
|
|
612
|
+
}),
|
|
615
613
|
],
|
|
616
614
|
}]
|
|
617
615
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-auth.mjs","sources":["../../../../libs/platform/auth/src/lib/application/application.loader.ts","../../../../libs/platform/auth/src/lib/tenant/tenant.loader.ts","../../../../libs/platform/auth/src/lib/permission/permission.loader.ts","../../../../libs/platform/auth/src/lib/errors.types.ts","../../../../libs/platform/auth/src/lib/auth-registry.service.ts","../../../../libs/platform/auth/src/lib/feature/feature.loader.ts","../../../../libs/platform/auth/src/lib/feature/feature.directive.ts","../../../../libs/platform/auth/src/lib/feature/feature.guard.ts","../../../../libs/platform/auth/src/lib/session.types.ts","../../../../libs/platform/auth/src/lib/session.service.ts","../../../../libs/platform/auth/src/lib/permission/permission.guard.ts","../../../../libs/platform/auth/src/lib/permission/permission.directive.ts","../../../../libs/platform/auth/src/lib/auth.guard.ts","../../../../libs/platform/auth/src/lib/auth.module.ts","../../../../libs/platform/auth/src/acorex-platform-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPApplication } from './application.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]>;\n}\n\nexport const AXP_APPLICATION_LOADER = new InjectionToken<AXPApplicationLoader>('AXP_APPLICATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPApplicationDefaultLoader();\n },\n});\n\nclass AXPApplicationDefaultLoader implements AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]> {\n return of([\n {\n id: '1',\n name: 'default-app',\n title: 'Default Application',\n version: '1.0.0',\n editionName: 'Standard',\n features: [],\n },\n ]);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPTenant } from './tenant.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPTenantLoader {\n getList(context: AXPSessionContext): Observable<AXPTenant[]>;\n}\n\nexport const AXP_TENANT_LOADER = new InjectionToken<AXPTenantLoader>('AXP_TENANT_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPTenantDefaultLoader();\n },\n});\n\nclass AXPTenantDefaultLoader implements AXPTenantLoader {\n\n getList(context: AXPSessionContext): Observable<AXPTenant[]> {\n return of([\n {\n id: '1',\n name: 'default-tenant',\n title: 'Default Tenant',\n },\n ]);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { AXPPermission } from \"./permission.types\";\nimport { AXPSessionContext } from \"../session.types\";\n\nexport interface AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]>;\n}\n\nexport const AXP_PERMISSION_LOADER = new InjectionToken<AXPPermissionLoader>('AXP_PERMISSION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPPermissionDefaultLoader();\n }\n});\n\n\nclass AXPPermissionDefaultLoader implements AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\n return of([])\n }\n}","export class AXPUnauthorizedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthorizedError';\n }\n}\n\n\nexport class AXPUnauthenticatedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthenticatedError';\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPAuthStrategy } from \"./auth.strategy\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPAuthStrategyRegistryService {\n private strategies = new Map<string, AXPAuthStrategy>();\n\n private injector: Injector;\n\n constructor(injector: Injector) {\n this.injector = injector;\n }\n\n register(...plugins: (new () => AXPAuthStrategy)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const strategy = childInjector.get(t);\n if (strategy) {\n this.strategies.set(strategy.name, strategy);\n }\n })\n }\n\n get(strategyKey: string): AXPAuthStrategy | undefined {\n return this.strategies.get(strategyKey);\n }\n}","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPFeature } from './feature.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]>;\n}\n\nexport const AXP_FEATURE_LOADER = new InjectionToken<AXPFeatureLoader>('AXP_FEATURE_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPFeatureDefaultLoader();\n },\n});\n\nclass AXPFeatureDefaultLoader implements AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]> {\n return of([]);\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[feature]',\n})\nexport class AXPFeatureDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set feature(featureKeys: string | string[] | null) {\n const keys: string[] = !featureKeys ? [] : (Array.isArray(featureKeys) ? featureKeys : [featureKeys]);\n if (keys.length == 0) {\n // If featureKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.features$\n //.pipe(first())\n .subscribe(() => {\n if (this.sessionService.isFeatureEnabled(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set featureElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { AXPSessionService } from \"../session.service\";\nimport { Observable, first, map } from \"rxjs\";\nimport { AXPUnauthorizedError } from \"../errors.types\";\n\n\nexport const AXPFeatureGuard: CanActivateFn =\n (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> => {\n const sessionService = inject(AXPSessionService);\n const requiredFeatures = route.data['requiredFeature'] as (string | string[] | null);\n\n return sessionService.features$.pipe(\n map(() => {\n const keys: string[] = !requiredFeatures ? [] : (Array.isArray(requiredFeatures) ? requiredFeatures : [requiredFeatures]);\n const hasFeature = keys.length == 0 || sessionService.isFeatureEnabled(...keys);\n if (!hasFeature) {\n throw new AXPUnauthorizedError(\n `Access Denied. You do not have access to this feature. Required feature(s): ${keys.join(', ')}. Please contact support if you need access.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n };\n","import { AXPApplication } from \"./application/application.types\";\nimport { AXPTenant } from \"./tenant/tenant.types\";\nimport { AXPUser } from \"./user/user.types\";\n\nexport class AXPSessionContext {\n\n private _user: AXPUser | null = null;\n public get user(): AXPUser | null {\n return this._user;\n }\n\n private _tenant: AXPTenant | null = null;\n public get tenant(): AXPTenant | null {\n return this._tenant;\n }\n\n private _application: AXPApplication | null = null;\n public get application(): AXPApplication | null {\n return this._application;\n }\n\n constructor(context: {\n user: AXPUser | null,\n tenant: AXPTenant | null,\n application: AXPApplication | null,\n }) {\n this._user = context.user;\n this._tenant = context.tenant;\n this._application = context.application;\n }\n}\n\n\nexport enum AXPSessionStatus {\n Authenticated = \"authenticated\",\n Unauthenticated = \"unauthenticated\",\n Unauthorized = \"unauthorized\",\n Authorized = \"authorized\",\n Expired = \"expired\",\n SignedOut = \"signedOut\"\n}","import { AXPSignInAction, AXPSignOutAction } from '@acorex/platform/common';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { isEmpty, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, firstValueFrom, map, shareReplay } from 'rxjs';\nimport { AXP_APPLICATION_LOADER } from './application/application.loader';\nimport { AXPApplication } from './application/application.types';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPBaseCredentials, AXPSessionData } from './auth.strategy';\nimport { AXPFeature, AXP_FEATURE_LOADER } from './feature';\nimport { AXP_PERMISSION_LOADER } from './permission/permission.loader';\nimport { AXPPermission } from './permission/permission.types';\nimport { AXPSessionContext, AXPSessionStatus } from './session.types';\nimport { AXP_TENANT_LOADER } from './tenant/tenant.loader';\nimport { AXPTenant } from './tenant/tenant.types';\nimport { AXPUser } from './user/user.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSessionService {\n private store = inject(Store);\n\n private authStrategyRegistry = inject(AXPAuthStrategyRegistryService);\n public static readonly SESSION_KEY = 'AXP_SESSION';\n\n private readonly permissionLoader = inject(AXP_PERMISSION_LOADER);\n private readonly featureLoader = inject(AXP_FEATURE_LOADER);\n private readonly tenantLoader = inject(AXP_TENANT_LOADER);\n private readonly applicationLoader = inject(AXP_APPLICATION_LOADER);\n\n private status = new BehaviorSubject<AXPSessionStatus>(AXPSessionStatus.Unauthenticated);\n public readonly status$ = this.status.asObservable().pipe(shareReplay(1));\n\n private currentUserSubject = new BehaviorSubject<AXPUser | null>(null);\n public readonly user$ = this.currentUserSubject.asObservable().pipe(shareReplay(1));\n public get user(): AXPUser | null {\n const session = this.getSessionData();\n if (session?.user && !this.currentUserSubject.value) {\n this.currentUserSubject.next(session.user);\n }\n return this.currentUserSubject.value;\n }\n\n private currentTenantSubject = new BehaviorSubject<AXPTenant | null>(null);\n public readonly tenant$ = this.currentTenantSubject.asObservable().pipe(shareReplay(1));\n public get tenant(): AXPTenant | null {\n const session = this.getSessionData();\n if (session?.tenant && !this.currentTenantSubject.value) {\n this.currentTenantSubject.next(session.tenant);\n }\n return this.currentTenantSubject.value;\n }\n\n public get tenants$(): Observable<AXPTenant[]> {\n return this.tenantLoader.getList(this.getContext());\n }\n\n private currentApplicationSubject = new BehaviorSubject<AXPApplication | null>(null);\n public readonly application$ = this.currentApplicationSubject.asObservable().pipe(shareReplay(1));\n public get application(): AXPApplication | null {\n const session = this.getSessionData();\n if (session?.application && !this.currentApplicationSubject.value) {\n this.currentApplicationSubject.next(session.application);\n }\n return this.currentApplicationSubject.value;\n }\n\n public get applications$(): Observable<AXPApplication[]> {\n return this.applicationLoader.getList(this.getContext());\n }\n\n private permissionsSubject = new BehaviorSubject<AXPPermission[]>([]);\n public readonly permissions$ = this.permissionsSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get permissions(): AXPPermission[] {\n return this.permissionsSubject.value ?? [];\n }\n\n private featuresSubject = new BehaviorSubject<AXPFeature[]>([]);\n public readonly features$ = this.featuresSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get features(): AXPFeature[] {\n return this.featuresSubject.value ?? [];\n }\n\n public readonly isAuthenticated$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authenticated || status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public readonly isAuthorized$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public async restoreSession(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData) {\n if (sessionData.user) {\n this.currentUserSubject.next(sessionData.user);\n this.status.next(AXPSessionStatus.Authenticated);\n }\n // if (sessionData.tenant) {\n // this.setTenant(sessionData.tenant);\n // }\n // if (sessionData.application) {\n // this.setApplication(sessionData.application);\n // }\n await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthorized);\n }\n }\n\n async signin(credentials: AXPBaseCredentials): Promise<void> {\n const strategy = this.authStrategyRegistry.get(credentials.strategy);\n if (!strategy) {\n throw new Error(`Authentication strategy '${credentials.strategy}' is not supported`);\n }\n const result = await strategy.signin(credentials);\n if (result.succeed) {\n this.currentUserSubject.next(result.data!.user);\n this.setSession({\n accessToken: result.data!.accessToken,\n refreshToken: result.data!.refreshToken,\n strategy: credentials.strategy,\n user: result.data!.user,\n application: result.data?.application,\n tenant: result.data?.tenant,\n expiresIn: result.data?.expiresIn,\n idToken: result.data?.idToken ?? null,\n });\n this.status.next(AXPSessionStatus.Authenticated);\n if (this.application && this.tenant) await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthenticated);\n throw new Error(`Invalid Username or Password`);\n }\n }\n\n async signout(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData?.strategy) {\n const strategy = this.authStrategyRegistry.get(sessionData?.strategy);\n if (strategy) {\n await strategy.signout();\n }\n }\n //\n this.clearSession();\n this.status.next(AXPSessionStatus.SignedOut);\n this.store.dispatch(AXPSignOutAction());\n }\n\n async refreshToken(): Promise<any> {\n return new Promise(async (resolve, reject) => {\n const sessionData = this.getSessionData();\n if (!sessionData || !sessionData?.refreshToken) {\n return;\n }\n const strategy = this.authStrategyRegistry.get(sessionData.strategy);\n if (!strategy) {\n reject();\n throw new Error(`Authentication strategy '${sessionData.strategy}' is not found`);\n }\n const result = await strategy.refreshToken(this.getContext());\n if (result.succeed) {\n this.setSession(result.data as AXPSessionData);\n resolve(result.data?.accessToken);\n } else {\n this.clearSession();\n this.status.next(AXPSessionStatus.Expired);\n }\n });\n }\n\n async setTenant(tenant: AXPTenant | null): Promise<void> {\n defaultIfEmpty;\n this.currentTenantSubject.next(tenant);\n if (tenant) {\n this.updateSession({ tenant: tenant });\n await this.refreshToken();\n }\n }\n\n async setApplication(application: AXPApplication | null): Promise<void> {\n this.currentApplicationSubject.next(application);\n if (application) {\n this.updateSession({ application: application });\n await this.refreshToken();\n }\n }\n\n private async loadPermissions(): Promise<void> {\n try {\n const permissions = await firstValueFrom(this.permissionLoader.getList(this.getContext()));\n this.permissionsSubject.next(permissions ?? []);\n this.store.dispatch(AXPSignInAction());\n } catch (error) {\n console.error('Error loading permissions:', error);\n this.permissionsSubject.next([]);\n }\n }\n\n private async loadFeatures(): Promise<void> {\n try {\n const features = await firstValueFrom(this.featureLoader.getList(this.getContext()));\n this.featuresSubject.next(features ?? []);\n } catch (error) {\n console.error('Error loading features:', error);\n this.featuresSubject.next([]);\n }\n }\n\n async signInComplete() {\n await this.loadPermissions();\n await this.loadFeatures();\n this.status.next(AXPSessionStatus.Authorized);\n }\n\n private setSession(tokens: Partial<AXPSessionData>): void {\n const sessionData: Partial<AXPSessionData> = {\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n strategy: tokens.strategy,\n user: this.user,\n application: tokens.application,\n tenant: tokens.tenant,\n expiresIn: tokens.expiresIn,\n idToken: tokens.idToken,\n };\n this.updateSession(sessionData);\n }\n\n private updateSession(update: Partial<AXPSessionData>) {\n const currentSession = this.getSessionData() ?? {};\n const updatedSession = merge({}, currentSession, update);\n localStorage.setItem(AXPSessionService.SESSION_KEY, JSON.stringify(updatedSession));\n }\n\n public getSessionData(): AXPSessionData | null {\n const sessionDataString = localStorage.getItem(AXPSessionService.SESSION_KEY);\n return sessionDataString ? JSON.parse(sessionDataString) : null;\n }\n\n private clearSession(): void {\n //\n this.currentUserSubject.next(null);\n //\n this.setTenant(null);\n //\n this.setApplication(null);\n //\n this.permissionsSubject.next([]);\n //\n this.featuresSubject.next([]);\n //\n localStorage.removeItem(AXPSessionService.SESSION_KEY);\n }\n\n public authorize(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.permissions.indexOf(k) > -1);\n }\n\n public isFeatureEnabled(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.features.some((c) => c.name == k && c.value == true));\n }\n\n public getToken(): string | undefined {\n const sessionData = this.getSessionData();\n\n return sessionData?.accessToken;\n }\n\n private checkTokenValidation(): boolean {\n let sessionData = this.getSessionData();\n\n if (sessionData && sessionData?.accessToken && sessionData.expiresIn) {\n const expiresInDate = new Date(sessionData.expiresIn);\n if (expiresInDate > new Date()) {\n // Token is still valid\n return true;\n }\n }\n return false;\n }\n\n private getContext(): AXPSessionContext {\n return new AXPSessionContext({\n user: this.user,\n tenant: this.tenant,\n application: this.application,\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { first, map, tap } from 'rxjs';\nimport { AXPUnauthorizedError } from '../errors.types';\nimport { AXPSessionService } from '../session.service';\nimport { AXPSessionStatus } from '../session.types';\n\nexport const AXPPermissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n\n const sessionService = inject(AXPSessionService);\n\n const permissionKeys = route.data['requiredPermission'] as string | string[] | null;\n\n return sessionService.isAuthorized$.pipe(\n first(),\n map((value) => {\n const keys: string[] = !permissionKeys ? [] : Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys];\n const hasPermission = keys.length == 0 || sessionService.authorize(...keys);\n if (!hasPermission) {\n throw new AXPUnauthorizedError(\n `Access denied. Required permissions: ${keys.join(', ')}. Please contact your administrator if you believe this is an error.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n};\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[permission]',\n})\nexport class AXPPermissionDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set permission(permissionKeys: string | string[] | null) {\n const keys: string[] = !permissionKeys ? [] : (Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys]);\n if (keys.length == 0) {\n // If permissionKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.isAuthorized$\n .subscribe((isAuthorized) => {\n if (isAuthorized && this.sessionService.authorize(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set permissionElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { first, map } from 'rxjs';\nimport { AXPUnauthenticatedError } from './errors.types';\nimport { AXPSessionService } from './session.service';\n\nexport const AXPAuthGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const sessionService = inject(AXPSessionService);\n return sessionService.isAuthenticated$.pipe(\n first(),\n map((value) => {\n if (value) {\n return true;\n }\n throw new AXPUnauthenticatedError(\n `Access denied. You are not currently logged in. Please log in to access this page. If you continue to see this message after logging in, please contact support.`,\n {\n redirectUrl: state.url,\n }\n );\n })\n );\n};\n","import { APP_INITIALIZER, Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPAuthStrategy } from './auth.strategy';\nimport { AXPFeatureDirective } from './feature';\nimport { AXPPermissionDirective } from './permission/permission.directive';\nimport { AXPSessionService } from './session.service';\n\nexport interface AXPAuthModuleConfigs {\n strategies: (new () => AXPAuthStrategy)[];\n}\n\nexport function initializeAppState(service: AXPSessionService) {\n return async () => {\n try {\n await service.restoreSession();\n } catch (error) {\n console.error(error);\n }\n };\n}\n\n@NgModule({\n imports: [],\n exports: [AXPPermissionDirective, AXPFeatureDirective],\n declarations: [AXPPermissionDirective, AXPFeatureDirective],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: initializeAppState,\n deps: [AXPSessionService],\n multi: true,\n },\n ],\n})\nexport class AXPAuthModule {\n static forRoot(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPAuthModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-auth.mjs","sources":["../../../../libs/platform/auth/src/lib/application/application.loader.ts","../../../../libs/platform/auth/src/lib/tenant/tenant.loader.ts","../../../../libs/platform/auth/src/lib/permission/permission.loader.ts","../../../../libs/platform/auth/src/lib/errors.types.ts","../../../../libs/platform/auth/src/lib/auth-registry.service.ts","../../../../libs/platform/auth/src/lib/feature/feature.loader.ts","../../../../libs/platform/auth/src/lib/feature/feature.directive.ts","../../../../libs/platform/auth/src/lib/feature/feature.guard.ts","../../../../libs/platform/auth/src/lib/session.types.ts","../../../../libs/platform/auth/src/lib/session.service.ts","../../../../libs/platform/auth/src/lib/permission/permission.guard.ts","../../../../libs/platform/auth/src/lib/permission/permission.directive.ts","../../../../libs/platform/auth/src/lib/auth.guard.ts","../../../../libs/platform/auth/src/lib/auth.module.ts","../../../../libs/platform/auth/src/acorex-platform-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPApplication } from './application.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]>;\n}\n\nexport const AXP_APPLICATION_LOADER = new InjectionToken<AXPApplicationLoader>('AXP_APPLICATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPApplicationDefaultLoader();\n },\n});\n\nclass AXPApplicationDefaultLoader implements AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]> {\n return of([\n {\n id: '1',\n name: 'default-app',\n title: 'Default Application',\n version: '1.0.0',\n editionName: 'Standard',\n features: [],\n },\n ]);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPTenant } from './tenant.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPTenantLoader {\n getList(context: AXPSessionContext): Observable<AXPTenant[]>;\n}\n\nexport const AXP_TENANT_LOADER = new InjectionToken<AXPTenantLoader>('AXP_TENANT_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPTenantDefaultLoader();\n },\n});\n\nclass AXPTenantDefaultLoader implements AXPTenantLoader {\n\n getList(context: AXPSessionContext): Observable<AXPTenant[]> {\n return of([\n {\n id: '1',\n name: 'default-tenant',\n title: 'Default Tenant',\n },\n ]);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { AXPPermission } from \"./permission.types\";\nimport { AXPSessionContext } from \"../session.types\";\n\nexport interface AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]>;\n}\n\nexport const AXP_PERMISSION_LOADER = new InjectionToken<AXPPermissionLoader>('AXP_PERMISSION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPPermissionDefaultLoader();\n }\n});\n\n\nclass AXPPermissionDefaultLoader implements AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\n return of([])\n }\n}","export class AXPUnauthorizedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthorizedError';\n }\n}\n\n\nexport class AXPUnauthenticatedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthenticatedError';\n }\n}","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPAuthStrategy } from \"./auth.strategy\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPAuthStrategyRegistryService {\n private strategies = new Map<string, AXPAuthStrategy>();\n\n private injector: Injector;\n\n constructor(injector: Injector) {\n this.injector = injector;\n }\n\n register(...plugins: (new () => AXPAuthStrategy)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const strategy = childInjector.get(t);\n if (strategy) {\n this.strategies.set(strategy.name, strategy);\n }\n })\n }\n\n get(strategyKey: string): AXPAuthStrategy | undefined {\n return this.strategies.get(strategyKey);\n }\n}","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPFeature } from './feature.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]>;\n}\n\nexport const AXP_FEATURE_LOADER = new InjectionToken<AXPFeatureLoader>('AXP_FEATURE_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPFeatureDefaultLoader();\n },\n});\n\nclass AXPFeatureDefaultLoader implements AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]> {\n return of([]);\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[feature]',\n standalone: false\n})\nexport class AXPFeatureDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set feature(featureKeys: string | string[] | null) {\n const keys: string[] = !featureKeys ? [] : (Array.isArray(featureKeys) ? featureKeys : [featureKeys]);\n if (keys.length == 0) {\n // If featureKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.features$\n //.pipe(first())\n .subscribe(() => {\n if (this.sessionService.isFeatureEnabled(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set featureElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { AXPSessionService } from \"../session.service\";\nimport { Observable, first, map } from \"rxjs\";\nimport { AXPUnauthorizedError } from \"../errors.types\";\n\n\nexport const AXPFeatureGuard: CanActivateFn =\n (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> => {\n const sessionService = inject(AXPSessionService);\n const requiredFeatures = route.data['requiredFeature'] as (string | string[] | null);\n\n return sessionService.features$.pipe(\n map(() => {\n const keys: string[] = !requiredFeatures ? [] : (Array.isArray(requiredFeatures) ? requiredFeatures : [requiredFeatures]);\n const hasFeature = keys.length == 0 || sessionService.isFeatureEnabled(...keys);\n if (!hasFeature) {\n throw new AXPUnauthorizedError(\n `Access Denied. You do not have access to this feature. Required feature(s): ${keys.join(', ')}. Please contact support if you need access.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n };\n","import { AXPApplication } from \"./application/application.types\";\nimport { AXPTenant } from \"./tenant/tenant.types\";\nimport { AXPUser } from \"./user/user.types\";\n\nexport class AXPSessionContext {\n\n private _user: AXPUser | null = null;\n public get user(): AXPUser | null {\n return this._user;\n }\n\n private _tenant: AXPTenant | null = null;\n public get tenant(): AXPTenant | null {\n return this._tenant;\n }\n\n private _application: AXPApplication | null = null;\n public get application(): AXPApplication | null {\n return this._application;\n }\n\n constructor(context: {\n user: AXPUser | null,\n tenant: AXPTenant | null,\n application: AXPApplication | null,\n }) {\n this._user = context.user;\n this._tenant = context.tenant;\n this._application = context.application;\n }\n}\n\n\nexport enum AXPSessionStatus {\n Authenticated = \"authenticated\",\n Unauthenticated = \"unauthenticated\",\n Unauthorized = \"unauthorized\",\n Authorized = \"authorized\",\n Expired = \"expired\",\n SignedOut = \"signedOut\"\n}","import { AXPSignInAction, AXPSignOutAction } from '@acorex/platform/common';\nimport { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { isEmpty, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, firstValueFrom, map, shareReplay } from 'rxjs';\nimport { AXP_APPLICATION_LOADER } from './application/application.loader';\nimport { AXPApplication } from './application/application.types';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPBaseCredentials, AXPSessionData } from './auth.strategy';\nimport { AXPFeature, AXP_FEATURE_LOADER } from './feature';\nimport { AXP_PERMISSION_LOADER } from './permission/permission.loader';\nimport { AXPPermission } from './permission/permission.types';\nimport { AXPSessionContext, AXPSessionStatus } from './session.types';\nimport { AXP_TENANT_LOADER } from './tenant/tenant.loader';\nimport { AXPTenant } from './tenant/tenant.types';\nimport { AXPUser } from './user/user.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSessionService {\n private store = inject(Store);\n\n private authStrategyRegistry = inject(AXPAuthStrategyRegistryService);\n public static readonly SESSION_KEY = 'AXP_SESSION';\n\n private readonly permissionLoader = inject(AXP_PERMISSION_LOADER);\n private readonly featureLoader = inject(AXP_FEATURE_LOADER);\n private readonly tenantLoader = inject(AXP_TENANT_LOADER);\n private readonly applicationLoader = inject(AXP_APPLICATION_LOADER);\n\n private status = new BehaviorSubject<AXPSessionStatus>(AXPSessionStatus.Unauthenticated);\n public readonly status$ = this.status.asObservable().pipe(shareReplay(1));\n\n private currentUserSubject = new BehaviorSubject<AXPUser | null>(null);\n public readonly user$ = this.currentUserSubject.asObservable().pipe(shareReplay(1));\n public get user(): AXPUser | null {\n const session = this.getSessionData();\n if (session?.user && !this.currentUserSubject.value) {\n this.currentUserSubject.next(session.user);\n }\n return this.currentUserSubject.value;\n }\n\n private currentTenantSubject = new BehaviorSubject<AXPTenant | null>(null);\n public readonly tenant$ = this.currentTenantSubject.asObservable().pipe(shareReplay(1));\n public get tenant(): AXPTenant | null {\n const session = this.getSessionData();\n if (session?.tenant && !this.currentTenantSubject.value) {\n this.currentTenantSubject.next(session.tenant);\n }\n return this.currentTenantSubject.value;\n }\n\n public get tenants$(): Observable<AXPTenant[]> {\n return this.tenantLoader.getList(this.getContext());\n }\n\n private currentApplicationSubject = new BehaviorSubject<AXPApplication | null>(null);\n public readonly application$ = this.currentApplicationSubject.asObservable().pipe(shareReplay(1));\n public get application(): AXPApplication | null {\n const session = this.getSessionData();\n if (session?.application && !this.currentApplicationSubject.value) {\n this.currentApplicationSubject.next(session.application);\n }\n return this.currentApplicationSubject.value;\n }\n\n public get applications$(): Observable<AXPApplication[]> {\n return this.applicationLoader.getList(this.getContext());\n }\n\n private permissionsSubject = new BehaviorSubject<AXPPermission[]>([]);\n public readonly permissions$ = this.permissionsSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get permissions(): AXPPermission[] {\n return this.permissionsSubject.value ?? [];\n }\n\n private featuresSubject = new BehaviorSubject<AXPFeature[]>([]);\n public readonly features$ = this.featuresSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get features(): AXPFeature[] {\n return this.featuresSubject.value ?? [];\n }\n\n public readonly isAuthenticated$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authenticated || status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public readonly isAuthorized$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public async restoreSession(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData) {\n if (sessionData.user) {\n this.currentUserSubject.next(sessionData.user);\n this.status.next(AXPSessionStatus.Authenticated);\n }\n // if (sessionData.tenant) {\n // this.setTenant(sessionData.tenant);\n // }\n // if (sessionData.application) {\n // this.setApplication(sessionData.application);\n // }\n await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthorized);\n }\n }\n\n async signin(credentials: AXPBaseCredentials): Promise<void> {\n const strategy = this.authStrategyRegistry.get(credentials.strategy);\n if (!strategy) {\n throw new Error(`Authentication strategy '${credentials.strategy}' is not supported`);\n }\n const result = await strategy.signin(credentials);\n if (result.succeed) {\n this.currentUserSubject.next(result.data!.user);\n this.setSession({\n accessToken: result.data!.accessToken,\n refreshToken: result.data!.refreshToken,\n strategy: credentials.strategy,\n user: result.data!.user,\n application: result.data?.application,\n tenant: result.data?.tenant,\n expiresIn: result.data?.expiresIn,\n idToken: result.data?.idToken ?? null,\n });\n this.status.next(AXPSessionStatus.Authenticated);\n if (this.application && this.tenant) await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthenticated);\n throw new Error(`Invalid Username or Password`);\n }\n }\n\n async signout(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData?.strategy) {\n const strategy = this.authStrategyRegistry.get(sessionData?.strategy);\n if (strategy) {\n await strategy.signout();\n }\n }\n //\n this.clearSession();\n this.status.next(AXPSessionStatus.SignedOut);\n this.store.dispatch(AXPSignOutAction());\n }\n\n async refreshToken(): Promise<any> {\n return new Promise(async (resolve, reject) => {\n const sessionData = this.getSessionData();\n if (!sessionData || !sessionData?.refreshToken) {\n return;\n }\n const strategy = this.authStrategyRegistry.get(sessionData.strategy);\n if (!strategy) {\n reject();\n throw new Error(`Authentication strategy '${sessionData.strategy}' is not found`);\n }\n const result = await strategy.refreshToken(this.getContext());\n if (result.succeed) {\n this.setSession(result.data as AXPSessionData);\n resolve(result.data?.accessToken);\n } else {\n this.clearSession();\n this.status.next(AXPSessionStatus.Expired);\n }\n });\n }\n\n async setTenant(tenant: AXPTenant | null): Promise<void> {\n defaultIfEmpty;\n this.currentTenantSubject.next(tenant);\n if (tenant) {\n this.updateSession({ tenant: tenant });\n await this.refreshToken();\n }\n }\n\n async setApplication(application: AXPApplication | null): Promise<void> {\n this.currentApplicationSubject.next(application);\n if (application) {\n this.updateSession({ application: application });\n await this.refreshToken();\n }\n }\n\n private async loadPermissions(): Promise<void> {\n try {\n const permissions = await firstValueFrom(this.permissionLoader.getList(this.getContext()));\n this.permissionsSubject.next(permissions ?? []);\n this.store.dispatch(AXPSignInAction());\n } catch (error) {\n console.error('Error loading permissions:', error);\n this.permissionsSubject.next([]);\n }\n }\n\n private async loadFeatures(): Promise<void> {\n try {\n const features = await firstValueFrom(this.featureLoader.getList(this.getContext()));\n this.featuresSubject.next(features ?? []);\n } catch (error) {\n console.error('Error loading features:', error);\n this.featuresSubject.next([]);\n }\n }\n\n async signInComplete() {\n await this.loadPermissions();\n await this.loadFeatures();\n this.status.next(AXPSessionStatus.Authorized);\n }\n\n private setSession(tokens: Partial<AXPSessionData>): void {\n const sessionData: Partial<AXPSessionData> = {\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n strategy: tokens.strategy,\n user: this.user,\n application: tokens.application,\n tenant: tokens.tenant,\n expiresIn: tokens.expiresIn,\n idToken: tokens.idToken,\n };\n this.updateSession(sessionData);\n }\n\n private updateSession(update: Partial<AXPSessionData>) {\n const currentSession = this.getSessionData() ?? {};\n const updatedSession = merge({}, currentSession, update);\n localStorage.setItem(AXPSessionService.SESSION_KEY, JSON.stringify(updatedSession));\n }\n\n public getSessionData(): AXPSessionData | null {\n const sessionDataString = localStorage.getItem(AXPSessionService.SESSION_KEY);\n return sessionDataString ? JSON.parse(sessionDataString) : null;\n }\n\n private clearSession(): void {\n //\n this.currentUserSubject.next(null);\n //\n this.setTenant(null);\n //\n this.setApplication(null);\n //\n this.permissionsSubject.next([]);\n //\n this.featuresSubject.next([]);\n //\n localStorage.removeItem(AXPSessionService.SESSION_KEY);\n }\n\n public authorize(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.permissions.indexOf(k) > -1);\n }\n\n public isFeatureEnabled(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.features.some((c) => c.name == k && c.value == true));\n }\n\n public getToken(): string | undefined {\n const sessionData = this.getSessionData();\n\n return sessionData?.accessToken;\n }\n\n private checkTokenValidation(): boolean {\n let sessionData = this.getSessionData();\n\n if (sessionData && sessionData?.accessToken && sessionData.expiresIn) {\n const expiresInDate = new Date(sessionData.expiresIn);\n if (expiresInDate > new Date()) {\n // Token is still valid\n return true;\n }\n }\n return false;\n }\n\n private getContext(): AXPSessionContext {\n return new AXPSessionContext({\n user: this.user,\n tenant: this.tenant,\n application: this.application,\n });\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { first, map, tap } from 'rxjs';\nimport { AXPUnauthorizedError } from '../errors.types';\nimport { AXPSessionService } from '../session.service';\nimport { AXPSessionStatus } from '../session.types';\n\nexport const AXPPermissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n\n const sessionService = inject(AXPSessionService);\n\n const permissionKeys = route.data['requiredPermission'] as string | string[] | null;\n\n return sessionService.isAuthorized$.pipe(\n first(),\n map((value) => {\n const keys: string[] = !permissionKeys ? [] : Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys];\n const hasPermission = keys.length == 0 || sessionService.authorize(...keys);\n if (!hasPermission) {\n throw new AXPUnauthorizedError(\n `Access denied. Required permissions: ${keys.join(', ')}. Please contact your administrator if you believe this is an error.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n};\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[permission]',\n standalone: false\n})\nexport class AXPPermissionDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set permission(permissionKeys: string | string[] | null) {\n const keys: string[] = !permissionKeys ? [] : (Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys]);\n if (keys.length == 0) {\n // If permissionKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.isAuthorized$\n .subscribe((isAuthorized) => {\n if (isAuthorized && this.sessionService.authorize(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set permissionElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { first, map } from 'rxjs';\nimport { AXPUnauthenticatedError } from './errors.types';\nimport { AXPSessionService } from './session.service';\n\nexport const AXPAuthGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const sessionService = inject(AXPSessionService);\n return sessionService.isAuthenticated$.pipe(\n first(),\n map((value) => {\n if (value) {\n return true;\n }\n throw new AXPUnauthenticatedError(\n `Access denied. You are not currently logged in. Please log in to access this page. If you continue to see this message after logging in, please contact support.`,\n {\n redirectUrl: state.url,\n }\n );\n })\n );\n};\n","import { Inject, ModuleWithProviders, NgModule, Optional, inject, provideAppInitializer } from '@angular/core';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPAuthStrategy } from './auth.strategy';\nimport { AXPFeatureDirective } from './feature';\nimport { AXPPermissionDirective } from './permission/permission.directive';\nimport { AXPSessionService } from './session.service';\n\nexport interface AXPAuthModuleConfigs {\n strategies: (new () => AXPAuthStrategy)[];\n}\n\nexport function initializeAppState(service: AXPSessionService) {\n return async () => {\n try {\n await service.restoreSession();\n } catch (error) {\n console.error(error);\n }\n };\n}\n\n@NgModule({\n imports: [],\n exports: [AXPPermissionDirective, AXPFeatureDirective],\n declarations: [AXPPermissionDirective, AXPFeatureDirective],\n providers: [\n provideAppInitializer(() => {\n const initializerFn = (initializeAppState)(inject(AXPSessionService));\n return initializerFn();\n }),\n ],\n})\nexport class AXPAuthModule {\n static forRoot(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPAuthModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -9,27 +9,8 @@ import { AXImageModule } from '@acorex/components/image';
|
|
|
9
9
|
import * as i3 from '@acorex/components/loading';
|
|
10
10
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
11
11
|
import * as i0 from '@angular/core';
|
|
12
|
-
import { inject,
|
|
12
|
+
import { inject, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
13
13
|
import { AXPWidgetEditBase, AXPDataProvider } from './acorex-platform-common.mjs';
|
|
14
|
-
import 'lodash-es';
|
|
15
|
-
import '@acorex/components/popup';
|
|
16
|
-
import '@acorex/components/toast';
|
|
17
|
-
import '@acorex/core/date-time';
|
|
18
|
-
import '@acorex/platform/workflow';
|
|
19
|
-
import '@angular/router';
|
|
20
|
-
import '@ngrx/effects';
|
|
21
|
-
import '@acorex/platform/core';
|
|
22
|
-
import 'dexie';
|
|
23
|
-
import 'rxjs';
|
|
24
|
-
import '@ngrx/store';
|
|
25
|
-
import '@acorex/core/translation';
|
|
26
|
-
import '@angular/common';
|
|
27
|
-
import '@ngrx/signals';
|
|
28
|
-
import '@acorex/components/skeleton';
|
|
29
|
-
import '@angular/cdk/portal';
|
|
30
|
-
import '@acorex/components/data-table';
|
|
31
|
-
import '@acorex/core/utils';
|
|
32
|
-
import '@acorex/core/format';
|
|
33
14
|
|
|
34
15
|
class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase {
|
|
35
16
|
constructor() {
|
|
@@ -102,8 +83,8 @@ class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase {
|
|
|
102
83
|
console.error('Failed to load image by ID:', error);
|
|
103
84
|
}
|
|
104
85
|
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
106
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAvatarWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPAvatarWidgetEditComponent, isStandalone: true, selector: "axp-number-widget-edit", usesInheritance: true, ngImport: i0, template: `
|
|
107
88
|
<div class="ax-w-fit ax-flex flex-row ax-border ax-rounded-lg ax-shadow-md ax-overflow-hidden">
|
|
108
89
|
@if(src){
|
|
109
90
|
<ax-avatar color="secondary" [size]="120" look="sharp">
|
|
@@ -138,7 +119,7 @@ class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase {
|
|
|
138
119
|
</div>
|
|
139
120
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i1.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
140
121
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAvatarWidgetEditComponent, decorators: [{
|
|
142
123
|
type: Component,
|
|
143
124
|
args: [{
|
|
144
125
|
selector: 'axp-number-widget-edit',
|
|
@@ -176,11 +157,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
176
157
|
</div>
|
|
177
158
|
</div>
|
|
178
159
|
`,
|
|
179
|
-
standalone: true,
|
|
180
160
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
181
|
-
imports: [AXAvatarModule, AXImageModule, AXLoadingModule, AXButtonModule, AXDecoratorModule]
|
|
161
|
+
imports: [AXAvatarModule, AXImageModule, AXLoadingModule, AXButtonModule, AXDecoratorModule]
|
|
182
162
|
}]
|
|
183
163
|
}] });
|
|
184
164
|
|
|
185
165
|
export { AXPAvatarWidgetEditComponent };
|
|
186
|
-
//# sourceMappingURL=acorex-platform-common-avatar-widget-edit.component-
|
|
166
|
+
//# sourceMappingURL=acorex-platform-common-avatar-widget-edit.component-syRKKn21.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-common-avatar-widget-edit.component-syRKKn21.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/avatar/avatar-widget-edit.component.ts"],"sourcesContent":["import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\n// import { FakePersonService } from '@acorex/platform/mocks';\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\nimport { AXPDataProvider } from '../../../data';\nimport { AXPWidgetEditBase } from '../../widget';\n\n@Component({\n selector: 'axp-number-widget-edit',\n template: `\n <div class=\"ax-w-fit ax-flex flex-row ax-border ax-rounded-lg ax-shadow-md ax-overflow-hidden\">\n @if(src){\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\n <ax-image [src]=\"src\">\n <ax-loading></ax-loading>\n </ax-image>\n </ax-avatar>\n } @else {\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\n <ax-loading></ax-loading>\n </ax-avatar>\n }\n <div class=\"ax-flex ax-w-14 ax-flex-col ax-items-center ax-justify-around ax-cursor-pointer ax-border-l-2\">\n <div\n (click)=\"handleAddItem()\"\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-border-b-2 hover:ax-bg-gray-100 hover:ax-text-blue-700 ax-cursor-pointer\"\n >\n <ax-icon>\n <i class=\"fa-solid fa-camera\"></i>\n </ax-icon>\n </div>\n\n <div\n (click)=\"handleRemoveItem(src)\"\n class=\"ax-h-[50%] ax-flex ax-items-center ax-justify-center ax-w-full ax-cursor-pointer hover:ax-bg-gray-100\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-trash ax-text-danger\"></i>\n </ax-prefix>\n </div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXAvatarModule, AXImageModule, AXLoadingModule, AXButtonModule, AXDecoratorModule]\n})\nexport class AXPAvatarWidgetEditComponent extends AXPWidgetEditBase implements OnInit {\n dataService = inject(AXPDataProvider);\n private dialogService = inject(AXDialogService);\n protected src!: string | null;\n\n ngOnInit() {\n this.render();\n }\n override render() {\n const rawValue = this.rawValue;\n if (rawValue == null) return;\n this.loadImageById(rawValue);\n }\n\n protected handleRemoveItem(item: any) {\n this.src = null;\n this.value = null;\n }\n\n protected async handleAddItem() {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = 'image/*';\n input.click();\n input.addEventListener(\n 'change',\n async () => {\n const file = input.files?.[0];\n if (file) {\n const maxSize = 1 * 1024 * 1024; // Example size limit: 1MB\n const maxResolution = { width: 1920, height: 1080 }; // Example resolution limit\n\n if (file.size > maxSize) {\n this.dialogService.alert(\n 'File too large!',\n `The selected file exceeds the maximum size of ${maxSize / (1024 * 1024)}MB.`,\n 'warning'\n );\n return;\n }\n\n const image = new Image();\n image.src = URL.createObjectURL(file);\n image.onload = async () => {\n const { width, height } = image;\n\n if (width > maxResolution.width || height > maxResolution.height) {\n this.dialogService.alert(\n 'Resolution too high!',\n `The selected file exceeds the maximum resolution of ${maxResolution.width}x${maxResolution.height}.`,\n 'warning'\n );\n return;\n }\n\n // If file size and resolution are within limits, proceed with upload\n try {\n let resolved;\n if (this.rawValue) {\n resolved = await this.dataService.updateFile(this.rawValue, file, file.name);\n } else {\n resolved = await this.dataService.uploadFile(file, file.name);\n }\n console.log('resolved', resolved);\n this.src = URL.createObjectURL(file); // Show the image temporarily\n this.value = resolved; // Store the file ID\n } catch (error) {\n this.dialogService.alert('Something went wrong!', `${error}`, 'warning');\n }\n };\n }\n },\n { once: true }\n );\n }\n\n private async loadImageById(fileId: string) {\n try {\n const blob = await this.dataService.viewFile(fileId, '');\n this.src = URL.createObjectURL(blob);\n this.cdr.markForCheck(); // Explicitly mark for check since OnPush is used\n } catch (error) {\n console.error('Failed to load image by ID:', error);\n }\n }\n}\n"],"names":["i4"],"mappings":"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"}
|
|
@@ -5,29 +5,8 @@ import { AXImageModule } from '@acorex/components/image';
|
|
|
5
5
|
import * as i3 from '@acorex/components/loading';
|
|
6
6
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { inject,
|
|
8
|
+
import { inject, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
9
9
|
import { AXPWidgetBase, AXPDataProvider } from './acorex-platform-common.mjs';
|
|
10
|
-
import 'lodash-es';
|
|
11
|
-
import '@acorex/components/popup';
|
|
12
|
-
import '@acorex/components/toast';
|
|
13
|
-
import '@acorex/core/date-time';
|
|
14
|
-
import '@acorex/platform/workflow';
|
|
15
|
-
import '@angular/router';
|
|
16
|
-
import '@ngrx/effects';
|
|
17
|
-
import '@acorex/platform/core';
|
|
18
|
-
import 'dexie';
|
|
19
|
-
import 'rxjs';
|
|
20
|
-
import '@ngrx/store';
|
|
21
|
-
import '@acorex/components/dialog';
|
|
22
|
-
import '@acorex/core/translation';
|
|
23
|
-
import '@acorex/components/decorators';
|
|
24
|
-
import '@angular/common';
|
|
25
|
-
import '@ngrx/signals';
|
|
26
|
-
import '@acorex/components/skeleton';
|
|
27
|
-
import '@angular/cdk/portal';
|
|
28
|
-
import '@acorex/components/data-table';
|
|
29
|
-
import '@acorex/core/utils';
|
|
30
|
-
import '@acorex/core/format';
|
|
31
10
|
|
|
32
11
|
class AXPAvatarWidgetViewComponent extends AXPWidgetBase {
|
|
33
12
|
constructor() {
|
|
@@ -53,8 +32,8 @@ class AXPAvatarWidgetViewComponent extends AXPWidgetBase {
|
|
|
53
32
|
console.error('Failed to load image by ID:', error);
|
|
54
33
|
}
|
|
55
34
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAvatarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPAvatarWidgetViewComponent, isStandalone: true, selector: "ax-Avatar-widget-view", inputs: { context: "context", value: "value" }, usesInheritance: true, ngImport: i0, template: ` @if(src){<ax-avatar class="ax-shadow-" color="secondary" [size]="120" look="soft">
|
|
58
37
|
<ax-image [src]="src"> <ax-loading></ax-loading></ax-image>
|
|
59
38
|
</ax-avatar>
|
|
60
39
|
} @else {
|
|
@@ -63,7 +42,7 @@ class AXPAvatarWidgetViewComponent extends AXPWidgetBase {
|
|
|
63
42
|
</ax-avatar>
|
|
64
43
|
}`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i1.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i3.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
44
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPAvatarWidgetViewComponent, decorators: [{
|
|
67
46
|
type: Component,
|
|
68
47
|
args: [{
|
|
69
48
|
selector: 'ax-Avatar-widget-view',
|
|
@@ -75,12 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
75
54
|
<ax-loading></ax-loading>
|
|
76
55
|
</ax-avatar>
|
|
77
56
|
}`,
|
|
78
|
-
standalone: true,
|
|
79
57
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
80
58
|
imports: [AXAvatarModule, AXImageModule, AXLoadingModule],
|
|
81
|
-
inputs: ['context', 'value']
|
|
59
|
+
inputs: ['context', 'value']
|
|
82
60
|
}]
|
|
83
61
|
}] });
|
|
84
62
|
|
|
85
63
|
export { AXPAvatarWidgetViewComponent };
|
|
86
|
-
//# sourceMappingURL=acorex-platform-common-avatar-widget-view.component-
|
|
64
|
+
//# sourceMappingURL=acorex-platform-common-avatar-widget-view.component-DSju_bgg.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-common-avatar-widget-view.component-DSju_bgg.mjs","sources":["../../../../libs/platform/common/src/lib/schema/widgets/avatar/avatar-widget-view.component.ts"],"sourcesContent":["import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\nimport { AXPDataProvider } from '../../../data';\nimport { AXPWidgetBase } from '../../widget/widget-base';\n@Component({\n selector: 'ax-Avatar-widget-view',\n template: ` @if(src){<ax-avatar class=\"ax-shadow-\" color=\"secondary\" [size]=\"120\" look=\"soft\">\n <ax-image [src]=\"src\"> <ax-loading></ax-loading></ax-image>\n </ax-avatar>\n } @else {\n <ax-avatar color=\"secondary\" [size]=\"120\" look=\"sharp\">\n <ax-loading></ax-loading>\n </ax-avatar>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXAvatarModule, AXImageModule, AXLoadingModule],\n inputs: ['context', 'value']\n})\nexport class AXPAvatarWidgetViewComponent extends AXPWidgetBase implements OnInit {\n protected src!: string;\n dataService = inject(AXPDataProvider);\n\n ngOnInit() {\n this.render();\n }\n override render() {\n const rawValue = this.rawValue;\n if (rawValue == null) return;\n this.loadImageById(rawValue);\n }\n\n private async loadImageById(fileId: string) {\n try {\n const blob = await this.dataService.viewFile(fileId, '');\n this.src = URL.createObjectURL(blob);\n this.cdr.markForCheck(); // Explicitly mark for check since OnPush is used\n } catch (error) {\n console.error('Failed to load image by ID:', error);\n }\n }\n}\n"],"names":[],"mappings":"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"}
|