@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-common.mjs","sources":["../../../../libs/platform/common/src/lib/app/app-startup.service.ts","../../../../libs/platform/common/src/lib/app/application.types.ts","../../../../libs/platform/common/src/lib/app/operators.ts","../../../../libs/platform/common/src/lib/data/data-provider.types.ts","../../../../libs/platform/common/src/lib/utils/clipboard-service.ts","../../../../libs/platform/common/src/lib/utils/data-generator.ts","../../../../libs/platform/common/src/lib/utils/pdf.service.ts","../../../../libs/platform/common/src/lib/data/dexie-storage.service.ts","../../../../libs/platform/common/src/lib/data/entity-data-seeder.ts","../../../../libs/platform/common/src/lib/data/entity-storage-service.ts","../../../../libs/platform/common/src/lib/data/operators.service.ts","../../../../libs/platform/common/src/lib/data/filter-middleware.service.ts","../../../../libs/platform/common/src/lib/errors/error-handler-registry.service.ts","../../../../libs/platform/common/src/lib/errors/global-error-handler.ts","../../../../libs/platform/common/src/lib/settings/setting-definition.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.service.ts","../../../../libs/platform/common/src/lib/store/common.actions.ts","../../../../libs/platform/common/src/lib/store/common.effects.ts","../../../../libs/platform/common/src/lib/workflows/common.workflow.ts","../../../../libs/platform/common/src/lib/workflows/error-handler.ts","../../../../libs/platform/common/src/lib/common.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.types.ts","../../../../libs/platform/common/src/lib/configs/app.config.ts","../../../../libs/platform/common/src/lib/configs/config.types.ts","../../../../libs/platform/common/src/lib/layout/grid-layout/grid-layout.directive.ts","../../../../libs/platform/common/src/lib/layout/sticky.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-registery.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-loader.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.html","../../../../libs/platform/common/src/lib/layout/menu/menu.provider.ts","../../../../libs/platform/common/src/lib/layout/menu/menu.service.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/footer-text-slot.component.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/navbar-slot.component.ts","../../../../libs/platform/common/src/lib/schema/schema-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-token.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-column-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-filter-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-base.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-renderer.ts","../../../../libs/platform/common/src/lib/schema/schema.module.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.class.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.loader.ts","../../../../libs/platform/common/src/lib/schema/entity/entity-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widgets/common-widgets.module.ts","../../../../libs/platform/common/src/acorex-platform-common.ts"],"sourcesContent":["import { APP_INITIALIZER, Injectable, Provider } from '@angular/core';\n\nexport interface AXPStartUpTask {\n name: string;\n statusText: string;\n run: () => Promise<void>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPAppStartUpService {\n private tasks: AXPStartUpTask[] = [];\n\n registerTask(task: AXPStartUpTask) {\n this.tasks.push(task);\n }\n\n async runAllTasks() {\n for (const task of this.tasks) {\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n\n private updateStatus(status: string) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n}\n\nfunction initAppFactory(appInitService: AXPAppStartUpService) {\n return () => appInitService.runAllTasks();\n}\n\nexport const AXPAppStartUpProvider: Provider = {\n provide: APP_INITIALIZER,\n useFactory: initAppFactory,\n deps: [AXPAppStartUpService],\n multi: true,\n};\n","import { AXDataSourceOperator, AXStyleColorType } from '@acorex/components/common';\nimport { AXPOptionsData, AXPValidationRules } from '@acorex/platform/core';\nimport { AXPWidgetTypesMap } from '@acorex/platform/layout/builder';\nimport { kebabCase } from 'lodash-es';\nimport { AXPGridLayoutOptions } from '../layout';\n\nexport interface AXEntityPropertyWidget {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path: string;\n id?: string;\n formula?: string;\n children?: AXEntityPropertyWidget[];\n mode: 'view' | 'edit' | 'designer';\n options?: Record<string, any>;\n triggers?: { event: string; action: string; disabled?: boolean }[];\n}\n\nexport enum AXPRelationshipKind {\n Association,\n Composition,\n Aggregation,\n}\n\nexport enum AXPRelationshipCardinality {\n OneToOne,\n OneToMany,\n ManyToMany,\n}\n\nexport interface AXPRelationship {\n id: string;\n from: string;\n to: string;\n kind: AXPRelationshipKind;\n cardinality: AXPRelationshipCardinality;\n}\n\nexport enum AXPEntityCommandScope {\n TypeLevel = 'typeLevel',\n Selected = 'selected',\n Individual = 'individual',\n Section = 'section',\n}\n\nexport enum AXPEntityQueryType {\n Single = 'single',\n List = 'list',\n}\n\nexport interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {\n label?: {\n visible?: boolean;\n };\n order?: number;\n}\n\nexport interface AXPEntityPropertyGroup {\n id: string;\n title: string;\n description?: string;\n permissions?: string[];\n}\n\nexport interface AXPEntityPropertyView {\n name: string;\n permissions?: string[];\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {}\n\nexport interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {\n defaultValue?: any;\n}\n\nexport interface AXPEntitySectionView {\n id: string;\n description?: string;\n order?: number;\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityProperty {\n name: string;\n title: string;\n description?: string;\n groupId?: string;\n reference?: {\n relationId: string;\n };\n schema: {\n dataType: string;\n nullable?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n unique?: {\n enabled: boolean;\n };\n interface?: Partial<AXEntityPropertyWidget>;\n };\n options?: {\n filter?: {\n advance?: {\n enabled?: boolean;\n widget?: AXPOptionsData;\n };\n inline?: {\n enabled?: boolean;\n };\n };\n sort?: {\n enabled?: boolean;\n };\n };\n validations?: AXPValidationRules;\n}\n\nexport interface AXPEntityTableColumn {\n name: string;\n title?: string;\n sort?: {\n enabled?: boolean;\n dir?: 'asc' | 'desc';\n };\n options?: {\n visible?: boolean;\n width?: string;\n dataPath?: string;\n [name: string]: any;\n };\n}\n\nexport interface AXPEntityCommand {\n execute: string | Function; // As runnable expression\n permissions?: string[];\n}\n\nexport interface AXPEntityQuery {\n execute: string | Function; // As runnable expression\n type: AXPEntityQueryType;\n}\n\nexport interface AXPEntityHistory {}\n\nexport interface AXPEntityAction {\n permissions?: string[];\n command: string;\n title: string;\n type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view';\n priority: 'primary' | 'secondary';\n color?: 'primary' | 'danger' | 'success' | 'warning';\n separated?: boolean;\n icon?: string;\n scope: AXPEntityCommandScope;\n}\n\nexport interface AXPEntity {\n module: string;\n name: string;\n source: string;\n title: string;\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n };\n relatedEntities?: AXPRelatedEntity[];\n groups?: AXPEntityPropertyGroup[];\n properties: AXPEntityProperty[];\n columns?: AXPEntityTableColumn[];\n commands?: {\n create: AXPEntityCommand | undefined;\n update?: AXPEntityCommand | undefined;\n delete?: AXPEntityCommand | undefined;\n [name: string]: AXPEntityCommand | undefined;\n };\n queries: {\n byKey: AXPEntityQuery;\n list?: AXPEntityQuery;\n lookup?: AXPEntityQuery;\n history?: AXPEntityQuery;\n comments?: AXPEntityQuery;\n [name: string]: AXPEntityQuery | undefined;\n };\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n\nexport function getEntityInfo(entity: AXPEntity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\n\nexport interface AXPRelatedEntity {\n entity: string;\n title?: string;\n columns?: string[];\n conditions?: AXPQueryFilter[];\n // sorts?: AXPQuerySort[];\n}\n\nexport interface AXPAggregate {\n id: string;\n name: string;\n title: string;\n entities: AXPEntity[];\n}\n\nexport interface AXPModule {\n name: string;\n title: string;\n aggregates: AXPAggregate[];\n relationships?: AXPRelationship[];\n}\n\nexport interface AXPApplication {\n name: string;\n title: string;\n modules: AXPModule[];\n}\n\nexport interface AXPEntityMasterLayoutView {\n title?: string;\n sections: AXPEntitySectionView[];\n properties?: AXPEntityPropertyView[];\n}\nexport interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {\n steps?: {\n id: string;\n title: string;\n description?: string;\n };\n}\n\nexport interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {}\n\nexport interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {\n title: string;\n description?: string;\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPEntityMasterListView {\n title?: string;\n description?: string;\n actions?: AXPEntityAction[];\n views: AXPQueryView[];\n}\n\nexport interface AXPEntityDetailListView {\n title?: string;\n description?: string;\n columns: AXPEntityTableColumn[];\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPQueryView {\n name: string;\n fixed: boolean;\n title: string;\n columns: string[];\n conditions: AXPQueryFilter[];\n sorts: AXPQuerySort[];\n}\n\nexport interface AXPQueryFilter {\n name: string; // entity property name\n operator: AXDataSourceOperator;\n value: any;\n}\n\nexport interface AXPQuerySort {\n name: string; // entity property name\n dir: 'asc' | 'desc';\n}\n\nexport function resolveActionLook(tr: AXPEntityAction): { icon: string; color: AXStyleColorType } {\n switch (tr.type) {\n case 'create':\n return { color: 'primary', icon: 'fa-solid fa-add' };\n case 'view':\n return { color: 'primary', icon: 'fa-solid fa-eye' };\n case 'info':\n return { color: 'primary', icon: 'fa-solid fa-info' };\n case 'delete':\n return { color: 'danger', icon: 'fa-solid fa-trash' };\n case 'print':\n return { color: 'secondary', icon: 'fa-solid fa-print' };\n case 'confirm':\n return { color: 'success', icon: 'fa-solid fa-check' };\n default:\n return { color: 'primary', icon: '' };\n }\n}\n","export interface AXPFilterOperator {\n name: string;\n title: string;\n hasValue: boolean;\n}\n\nexport const EQ_OPER: AXPFilterOperator = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER: AXPFilterOperator = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER: AXPFilterOperator = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER: AXPFilterOperator = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER: AXPFilterOperator = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER: AXPFilterOperator = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER: AXPFilterOperator = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER: AXPFilterOperator = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const STARTS_WITH_OPER: AXPFilterOperator = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER: AXPFilterOperator = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER: AXPFilterOperator = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER: AXPFilterOperator = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER: AXPFilterOperator = { name: 'between', title: 'Between', hasValue: true };\n\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\n\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const ALL_DEFAULT_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n LT_OPER,\n GTE_OPER,\n LTE_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n BETWEEN_OPER,\n];\n","export abstract class AXPDataProvider {\n abstract insertOne(entity: any, entityItem: any): Promise<any>;\n abstract insertMany(entity: any, entityList: any): Promise<any>;\n abstract getOne(entity: any, id: string): Promise<any>;\n abstract getMany(entity: any, params?: any): Promise<any>;\n abstract updateOne(entity: any, id?: string, data?: { [key: string]: any }): Promise<any>;\n abstract deleteOne(entity: any, id: string): Promise<any>;\n abstract getFirst(entity: any): Promise<any>;\n abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;\n abstract updateFile(id:string,file: File, title: string, customUrl?: string): Promise<string>;\n abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;\n abstract viewFile(id: string, name: string): Promise<Blob>;\n abstract downloadFile(id: string, name: string): Promise<Blob>;\n}\n","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPClipBoardService {\n private toast = inject(AXToastService);\n\n public copy(title: string, value: string) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n\n}","export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0]\n if (args.length == 2) {\n min = args[0]\n max = args[1]\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['New York', 'Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n","// AXPPdfService\nimport { inject, Injectable, RendererFactory2 } from '@angular/core';\n\nexport enum AXPPdfPageSize {\n A4 = 'a4',\n A5 = 'a5',\n Letter = 'letter',\n Legal = 'legal',\n Custom = 'custom' // Handle custom sizes\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPdfService {\n private renderer = inject(RendererFactory2).createRenderer(null, null);\n\n async generatePdfBlob(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<string> {\n const { jsPDF } = await import('jspdf');\n const html2canvas = (await import('html2canvas')).default;\n\n const element = typeof div === 'string' ? document.getElementById(div) : div;\n\n if (!element) {\n console.error('Element not found.');\n return Promise.reject('Element not found.');\n }\n\n const { pageSize = AXPPdfPageSize.A4 } = options;\n let pdf;\n\n if (typeof pageSize === 'string' && pageSize !== AXPPdfPageSize.Custom) {\n pdf = new jsPDF({\n orientation: 'portrait',\n format: pageSize\n });\n } else if (typeof pageSize !== 'string') {\n const { width, height } = pageSize;\n pdf = new jsPDF({\n orientation: 'portrait',\n unit: 'pt',\n format: [width, height]\n });\n } else {\n return Promise.reject(\"Invalid page size.\");\n }\n\n const canvas = await html2canvas(element);\n const imageData = canvas.toDataURL('image/png');\n const imgProps = pdf.getImageProperties(imageData);\n const pdfWidth = pdf.internal.pageSize.getWidth();\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\n\n pdf.addImage(imageData, 'PNG', 0, 0, pdfWidth, pdfHeight);\n return pdf.output('bloburl') as any as string;\n }\n\n async printPdf(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<void> {\n const blobUrl = await this.generatePdfBlob(div, options).catch(err => {\n console.error('Failed to generate PDF', err);\n return null;\n });\n\n if (!blobUrl) return;\n\n const iframe = this.renderer.createElement('iframe');\n this.renderer.setStyle(iframe, 'display', 'none');\n this.renderer.appendChild(document.body, iframe);\n\n iframe.src = blobUrl;\n iframe.onload = () => {\n setTimeout(() => {\n iframe.contentWindow.print();\n }, 1000);\n };\n\n // Add a button or some UI element that allows the user to manually signal they are done printing\n // const finishButton = this.renderer.createElement('button');\n // this.renderer.setProperty(finishButton, 'innerText', 'Finish Printing');\n // this.renderer.listen(finishButton, 'click', () => {\n // this.renderer.removeChild(document.body, iframe);\n // this.renderer.removeChild(document.body, finishButton);\n // });\n // this.renderer.appendChild(document.body, finishButton);\n }\n}\n","import { applyFilterArray, applySortArray } from '@acorex/platform/core';\nimport Dexie from 'dexie';\nimport { AXPDataGenerator } from '../utils';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\nimport { AXPEntityStorageService } from './entity-storage-service';\n\nexport class AXPDexieEntityStorageService extends Dexie implements AXPEntityStorageService<string, any> {\n constructor() {\n super('ACoreXPlatform');\n this.version(1).stores({\n 'entity-store': '++id, entityName, [entityName+id]',\n });\n }\n\n get dbName(): string {\n return 'ACoreXPlatform';\n }\n\n async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n const exists = await this.table('entity-store').where({ entityName }).count();\n if (exists === 0) {\n await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));\n }\n }\n\n async getOne<T = any>(entityName: string, id: string): Promise<T> {\n return await this.table('entity-store').where({ entityName, id: id }).first();\n }\n\n async updateOne<T = any>(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<T> {\n await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);\n return await this.getOne(entityName, id);\n }\n\n async deleteOne(entityName: string, id: string): Promise<void> {\n await this.table('entity-store').where({ entityName, id: id }).delete();\n }\n\n async insertOne<T = any>(entityName: string, entity: T): Promise<string> {\n const uuid = AXPDataGenerator.uuid();\n await this.table('entity-store').add({ ...entity, id: uuid, entityName });\n return uuid;\n }\n\n async getAll<T = any>(entityName: string): Promise<T[]> {\n return await this.table('entity-store').where({ entityName }).toArray();\n }\n\n async query<T = any>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>> {\n let result = await this.table('entity-store').where({ entityName }).toArray();\n\n if (request.sort && request.sort.length) {\n result = applySortArray(result, request.sort);\n }\n result = applyFilterArray(result, request.filter ? [request.filter] : []);\n\n return Promise.resolve({\n total: result.length,\n items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),\n });\n }\n}\n\n// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {\n// private schemaUpdateLock: Promise<void> = Promise.resolve();\n\n// constructor() {\n// super('ACoreXPlatform');\n// // Initial empty version\n// //this.version(1).stores({});\n// }\n\n// // Function to change the schema dynamically\n// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {\n// // Acquire schema update lock to ensure no other operations are performed while schema is changing\n// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {\n// console.log('Attempting schema change with:', schemaChanges);\n\n// try {\n// this.close();\n\n// const newDb = new Dexie(this.name);\n\n// // Extract current schema in Dexie format\n// const currentSchema = this.tables.reduce((result, { name, schema }) => {\n// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');\n// return result;\n// }, {} as { [tableName: string]: string });\n\n// console.log('Current Schema:', currentSchema);\n\n// // Define current schema version\n\n// newDb.version(this.verno + 10).stores(currentSchema);\n\n// // Define new schema version with schema changes\n// const nextVersion = this.verno + 1;\n// newDb.version(nextVersion).stores(schemaChanges);\n// await newDb.open();\n\n// // Reassign updated db instance\n// Object.assign(this, newDb);\n// console.log(`Schema updated. Current version: ${this.verno}`);\n// } catch (error) {\n// console.error('Error during schema change:', error);\n// throw error;\n// }\n// });\n\n// // Wait for schema change lock to complete\n// await this.schemaUpdateLock;\n// }\n\n// private async ensureInitialized(entityName: string): Promise<void> {\n// if (this.tables.findIndex((table) => table.name === entityName) == -1) {\n// const schemaChanges: { [tableName: string]: string } = {};\n// schemaChanges[entityName] = '++id';\n// await this.changeSchema(schemaChanges);\n// }\n// }\n\n// get dbName(): string {\n// return 'ACoreXPlatform';\n// }\n\n// private async getTable<T>(entityName: string) {\n// await this.ensureInitialized(entityName);\n// return this.table<T, number>(entityName);\n// }\n\n// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// const exists = await table.count();\n// if (exists === 0) {\n// await table.bulkAdd(collection);\n// }\n// }\n\n// async getOne<T = any>(entityName: string, id: string): Promise<T> {\n// const table = await this.getTable<T>(entityName);\n// return (await table.where({ id: parseInt(id) }).first()) as T;\n// }\n\n// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.update(parseInt(id), keyValue);\n// }\n\n// async deleteOne(entityName: string, id: string): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.delete(parseInt(id));\n// }\n\n// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// await table.add(entity);\n// }\n\n// async getAll<T = any>(entityName: string): Promise<T[]> {\n// const table = await this.getTable<T>(entityName);\n// return await table.toArray();\n// }\n// }\n","import { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPDataSeeder {\n seed(): Promise<void>;\n}\n\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken<AXPDataSeeder>('AXP_DATA_SEEDER_TOKEN');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDataSeederService {\n private loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n\n async seed(): Promise<void> {\n if (Array.isArray(this.loader)) {\n for (const loader of this.loader) {\n await loader.seed();\n }\n } else {\n await this.loader?.seed();\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\n\nexport interface AXPEntityModel<Id> {\n id?: Id;\n}\n\nexport abstract class AXPEntityStorageService<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get dbName(): string;\n\n abstract initial(entityName: string, collection: T[]): Promise<void>;\n\n abstract getOne(entityName: string, id: K): Promise<RGetSingle>;\n\n abstract updateOne(entityName: string, id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(entityName: string, id: K): Promise<void>;\n\n abstract insertOne(entityName: string, entity: RCreate): Promise<K>;\n\n abstract getAll(entityName: string): Promise<RGetList[]>;\n\n abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport abstract class AXPEntityDataProvider<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get entityName(): string;\n\n abstract initial(collection: T[]): Promise<void>;\n\n abstract getOne(id: K): Promise<RGetSingle>;\n\n abstract getAll(): Promise<RGetList[]>;\n\n abstract updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(id: K): Promise<void>;\n\n abstract insertOne(entity: RCreate): Promise<K>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXPEntityDataProviderImpl<\n K = any,\n T extends AXPEntityModel<K> = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> implements AXPEntityDataProvider<K, T, RCreate, RGetSingle, RGetList> {\n constructor(\n private storageService: AXPEntityStorageService<K, T, RCreate, RGetSingle, RGetList>,\n public entityName: string\n ) { }\n\n async initial(collection: T[]): Promise<void> {\n await this.storageService.initial(this.entityName, collection);\n }\n\n getOne(id: K): Promise<RGetSingle> {\n return this.storageService.getOne(this.entityName, id);\n }\n\n getAll(): Promise<RGetList[]> {\n return this.storageService.getAll(this.entityName);\n }\n\n query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>> {\n return this.storageService.query(this.entityName, request);\n }\n\n updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle> {\n return this.storageService.updateOne(this.entityName, id, keyValue);\n }\n\n deleteOne(id: K): Promise<void> {\n return this.storageService.deleteOne(this.entityName, id);\n }\n\n insertOne(entity: RCreate): Promise<K> {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\n\nexport abstract class AXMEntityCrudService<\n Id = string,\n T = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract insertOne(request: RCreate): Promise<Id>;\n\n abstract getOne(id: Id): Promise<RGetSingle>;\n\n abstract deleteOne(id: Id): Promise<void>;\n\n abstract updateOne(id: Id, values: { [key: string]: any }): Promise<void>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXMEntityCrudServiceImpl<\n Id,\n T extends AXPEntityModel<Id>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n private _storageService = inject(AXPEntityStorageService);\n private _entityDataProvider = new AXPEntityDataProviderImpl<Id, T, RCreate, RGetSingle, RGetList>(\n this._storageService,\n this.entityName\n );\n\n constructor(private entityName: string) { }\n\n async insertOne(request: RCreate): Promise<Id> {\n return this._entityDataProvider.insertOne(request);\n }\n\n async getOne(id: Id): Promise<RGetSingle> {\n return this._entityDataProvider.getOne(id);\n }\n\n async deleteOne(id: Id): Promise<void> {\n return this._entityDataProvider.deleteOne(id);\n }\n\n async updateOne(id: Id, values: { [key: string]: any }): Promise<RGetSingle> {\n return this._entityDataProvider.updateOne(id, values);\n }\n\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<RGetList>> {\n return this._entityDataProvider.query(request);\n }\n\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n\n get storageService() {\n return this._storageService;\n }\n}\n","import { AXDataSourceOperator } from '@acorex/components/common';\nimport { Injectable } from '@angular/core';\n\nexport abstract class AXPCustomOperatorService {\n abstract getCustomOperators(): { [key: string]: AXDataSourceOperator };\n}\n\n@Injectable()\nexport class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {\n getCustomOperators(): { [key: string]: AXDataSourceOperator } {\n return {};\n }\n}\n","import { AXDataSourceFilterOption, AXDataSourceOperator } from '@acorex/components/common';\nimport { inject, Injectable } from '@angular/core';\nimport { ALL_DEFAULT_OPERATORS } from '../app';\nimport { AXPCustomOperatorService } from './operators.service';\n\nexport abstract class AXPFilterOperatorMiddlewareService {\n /**\n * Middleware to transform selected filters into corresponding operators.\n * @param filters Array of selected filters (e.g., user input).\n * @param customOperators Optional custom operators map to override default operators.\n * @returns Transformed filters based on custom or default operators.\n */\n abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];\n\n /**\n * Helper method to transform a single filter. This handles recursion for nested filters.\n * @param filter A single filter object.\n * @returns Transformed filter.\n */\n abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;\n\n abstract getOperator(key: string): AXDataSourceOperator;\n}\n\n@Injectable()\nexport class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {\n private customOperatorService = inject(AXPCustomOperatorService);\n\n private operators: { [key: string]: AXDataSourceOperator } = {\n ...this.getDefaultOperators(),\n ...this.customOperatorService.getCustomOperators(),\n };\n\n transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[] {\n return filters.map((filter) => this.transformFilter(filter));\n }\n\n transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption {\n console.log(filter);\n const { operator, value, filters, field } = filter;\n // Find the operator (either default or custom)\n const filterOperator = this.operators[operator?.type] || null;\n\n // Start by transforming the filter itself\n const transformedFilter: AXDataSourceFilterOption = {\n ...filter, // Keep the original filter structure\n operator: filterOperator ? filterOperator : operator, // Add operator name\n };\n\n // If the filter contains nested filters, recursively transform them\n if (filters && filters.length > 0) {\n transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters\n }\n\n return transformedFilter;\n }\n\n getOperator(key: string) {\n return this.operators[key];\n }\n\n // Helper function to return the default operators\n private getDefaultOperators(): { [key: string]: AXDataSourceOperator } {\n return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {\n acc[operator.name] = {\n type: operator.name as any,\n };\n return acc;\n }, {} as { [key: string]: AXDataSourceOperator });\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandler } from \"./error-handler.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPErrorHandlerRegistryService {\n private errorHandlers: AXPErrorHandler[] = [];\n\n constructor(private injector: Injector) {\n }\n\n register(...plugins: (new () => AXPErrorHandler)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n })\n }\n\n\n public get handlers(): AXPErrorHandler[] {\n return this.errorHandlers;\n }\n}","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n\n\n\n constructor(private injector: Injector, private registry: AXPErrorHandlerRegistryService) {\n super()\n }\n\n override handleError(error: Error) {\n const handleErrorRecursively = (index: number, error: any) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n } else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return\n }\n handleErrorRecursively(0, error);\n }\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport {\n AXPGroupDetails,\n AXPSettingDefinitionGroup,\n AXPSettingDefinitionItem,\n AXPSettingDefinitionProviderContext,\n AXPSettingDefinitionSection,\n} from './settings.types';\n\n// Interface for setting providers\nexport interface AXPSettingDefinitionProvider {\n provide(context: AXPSettingDefinitionProviderContext): Promise<void>;\n}\n\n// Injection token for setting providers\nexport const AXP_SETTING_PROVIDER = new InjectionToken<AXPSettingDefinitionProvider[]>('AXP_SETTING_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPSettingDefinitionProviderService {\n private providers = inject(AXP_SETTING_PROVIDER, { optional: true });\n private cache: AXPSettingDefinitionItem[] | null = null;\n private pendingInserts: Array<{\n target: string;\n newItems: AXPSettingDefinitionItem[];\n position: 'before' | 'after';\n }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPSettingDefinitionItem[] }> = [];\n\n // Retrieve all setting items, applying any pending operations\n public async items(): Promise<AXPSettingDefinitionItem[]> {\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPSettingDefinitionItem[] = [];\n const context = this.createProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n provider.provide(context);\n }\n }\n // this.applyPendingOperations(items);\n this.cache = items;\n return items;\n }\n\n public findGroupDetails(groupName: string): AXPGroupDetails | null {\n if (this.cache) {\n return this.searchGroupDetails(this.cache, groupName, []); // Initialize with an empty breadcrumb\n }\n return null;\n }\n\n private searchGroupDetails(\n groups: AXPSettingDefinitionGroup[],\n groupName: string,\n breadcrumb: { name: string; title: string }[]\n ): {\n breadcrumb: { name: string; title: string }[];\n sections: AXPSettingDefinitionSection[] | null;\n childGroups: AXPSettingDefinitionGroup[] | null;\n } | null {\n for (const group of groups) {\n const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title }];\n\n // If the group name matches, return its details\n if (group.name === groupName) {\n return {\n breadcrumb: currentBreadcrumb,\n sections: group.sections.length > 0 ? group.sections : null,\n childGroups: group.groups.length > 0 ? group.groups : null,\n };\n }\n\n // Recursively search in nested groups\n const nestedResult = this.searchGroupDetails(group.groups, groupName, currentBreadcrumb);\n if (nestedResult) {\n return nestedResult;\n }\n }\n\n // If no matching group is found\n return null;\n }\n\n // Create the provider context with methods to add items and find existing ones\n private createProviderContext(items: AXPSettingDefinitionItem[]): AXPSettingDefinitionProviderContext {\n return {\n addItems: (newItems: AXPSettingDefinitionItem[]) => {\n items.push(...newItems);\n },\n addItem: (item: AXPSettingDefinitionItem) => {\n items.push(item);\n },\n addGroup: (group: AXPSettingDefinitionGroup) => {\n items.push(group);\n },\n // find: (target: string): AXPSettingDefinitionFinderResult => {\n // return {\n // insertGroup: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingle: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingles: (items, position) => {\n // this.pendingInserts.push({ target, newItems: items, position });\n // },\n // addItems: (items) => {\n // this.pendingAdditions.push({ target, newItems: items });\n // },\n // addChildSingleAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.singles.length) {\n // group.singles.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for singles.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildGroupAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.groups.length) {\n // group.groups.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for groups.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // };\n // },\n };\n }\n\n // private applyPendingOperations(items: AXPSettingDefinitionItem[]): void {\n // // Process pending insertions\n // for (const { target, newItems, position } of this.pendingInserts) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem, parentItems } = foundItemInfo;\n // const index = parentItems.indexOf(foundItem);\n // const insertIndex = position === 'before' ? index : index + 1;\n // parentItems.splice(insertIndex, 0, ...newItems);\n // } else {\n // console.warn(`Target \"${target}\" not found for insertion.`);\n // }\n // }\n\n // // Process pending additions\n // for (const { target, newItems } of this.pendingAdditions) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(\n // ...(newItems.filter(\n // (item) => item.type === AXPSettingDefinitionItemType.Group\n // ) as AXPSettingDefinitionGroup[])\n // );\n // group.singles.push(\n // ...(newItems.filter((item) => item.type === AXPSettingDefinitionItemType.Single) as AXPSettingDefinition[])\n // );\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add items.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding items.`);\n // }\n // }\n\n // // Clear pending operations after applying them\n // this.pendingInserts = [];\n // this.pendingAdditions = [];\n // }\n\n // private findItemWithParent(\n // items: AXPSettingDefinitionItem[],\n // target: string,\n // parentItems: AXPSettingDefinitionItem[] = items\n // ): { foundItem: AXPSettingDefinitionItem; parentItems: AXPSettingDefinitionItem[] } | null {\n // for (const item of items) {\n // if (item.name === target) {\n // return { foundItem: item, parentItems };\n // }\n\n // if (item.type === AXPSettingDefinitionItemType.Group) {\n // const group = item as AXPSettingDefinitionGroup;\n\n // // Search within child groups\n // const groupResult = this.findItemWithParent(group.groups, target, group.groups);\n // if (groupResult) {\n // return groupResult;\n // }\n\n // // Search within child singles\n // const singleResult = this.findItemWithParent(group.singles, target, group.singles);\n // if (singleResult) {\n // return singleResult;\n // }\n // }\n // }\n // return null;\n // }\n}\n","import { AXPSettingValue } from \"./settings.types\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport interface AXPSettingsProvider {\n load(): Promise<AXPSettingValue[]>\n set(key: string, value: any): Promise<void>\n}\n\n\nexport const AXP_SETTINGS_PROVIDER = new InjectionToken<AXPSettingsProvider>('AXP_SETTINGS_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPSettingsProviderDefault();\n }\n});\n\n\nclass AXPSettingsProviderDefault implements AXPSettingsProvider {\n private readonly cache: Map<string, any> = new Map();\n private localStorageKey: string = 'AXP_SETTINGS';\n\n async load(): Promise<AXPSettingValue[]> {\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings: Record<string, any> = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n\n async set(key: string, value: any): Promise<void> {\n this.cache.set(key, value)\n // Save to localStorage as a single key\n const settingsObject: Record<string, AXPSettingValue> = {};\n this.cache.forEach((val, k) => {\n settingsObject[k] = val;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXP_SETTINGS_PROVIDER, AXPSettingsProvider } from './settings.provider';\nimport { AXPSettingValue } from './settings.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSettingsService {\n private readonly settingsProvider = inject<AXPSettingsProvider>(AXP_SETTINGS_PROVIDER);\n private settingsCache: Map<string, any> = new Map<string, any>();\n\n public readonly changed = new Subject<AXPSettingValue>();\n\n async load(): Promise<AXPSettingValue[]> {\n try {\n const settingsList = await this.settingsProvider.load();\n this.settingsCache.clear();\n settingsList.forEach((setting) => {\n this.settingsCache.set(setting.key, setting.value);\n });\n return settingsList;\n } catch (error) {\n console.error('Error loading settings', error);\n throw error; // Re-throw or handle it appropriately\n }\n }\n\n async get<T = any>(key: string): Promise<T> {\n if (this.settingsCache.size == 0) {\n await this.load();\n }\n return cloneDeep(this.settingsCache.get(key)) as T;\n }\n\n async set<T = any>(key: string, value: T): Promise<void> {\n if (this.settingsCache.has(key)) {\n this.settingsCache.set(key, value);\n await this.settingsProvider.set(key, value);\n this.changed.next({ key, value });\n } else {\n console.warn(`Setting with key \"${key}\" not found.`);\n this.settingsCache.set(key, value);\n this.set(key, value);\n }\n }\n}\n","import { NavigationExtras } from '@angular/router';\nimport { createAction, props } from '@ngrx/store';\n\nexport const AXPNavigateAction = createAction(\n '[Navigate] Action',\n props<{ payload: { commands: string | any[]; extras?: NavigationExtras } }>()\n);\nexport const AXPSignOutAction = createAction('[SignOut] Action');\nexport const AXPSignInAction = createAction('[SignIn] Action');\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { of, switchMap } from 'rxjs';\nimport { AXPSettingsService } from '../settings';\nimport { AXPNavigateAction } from './common.actions';\n\n@Injectable()\nexport class AXPCommonEffects {\n constructor(private actions$: Actions, private router: Router, private settingService: AXPSettingsService) {}\n\n command$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AXPNavigateAction),\n switchMap((action) => {\n if (Array.isArray(action.payload.commands))\n this.router.navigate(action.payload.commands, action.payload.extras);\n else {\n if (action.payload.commands.toLowerCase().startsWith('http'))\n window.open(action.payload.commands, '_blank');\n else this.router.navigate([action.payload.commands], action.payload.extras);\n }\n return of();\n })\n ),\n { dispatch: false }\n );\n}\n","import { AXStyleColorType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n//TODO Loading, Redirect, Drawer, Show toast\n\nexport const AXPRedirectEvent = createWorkFlowEvent<{ url: string }>('Redirect Event Fired');\n\n@Injectable()\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n private router = inject(Router);\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == \"blank\") {\n window.open(payload.commands, '_blank');\n }\n else this.router.navigate([payload.commands], payload.extras);\n }\n }\n}\n\n@Injectable()\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n\n title!: string;\n message!: string;\n type!: AXStyleColorType;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(this.title),\n await this.translationService.translateAsync(this.message),\n (await this.translationService.translateAsync(this.type)) as AXStyleColorType\n );\n context.setOutput('result', dialogResult.result);\n }\n}\n\n@Injectable()\nexport class AXPToastAction extends AXPWorkflowAction {\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n color!: AXStyleColorType;\n title!: string;\n content!: string;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n}\n","import { Injectable, NgZone, inject, isDevMode } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport { AXPErrorHandler } from \"../errors\";\n\n@Injectable()\nexport class AXMWorkflowErrorHandler implements AXPErrorHandler {\n private dialog = inject(AXDialogService);\n\n\n handleError(error: any, next: (error: any) => void): void {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n } else {\n next(error);\n }\n }\n}","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, Inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AXPAppStartUpProvider, AXPAppStartUpService } from './app/app-startup.service';\nimport {\n AXPCustomOperatorService,\n AXPCustomOperatorServiceImpl,\n AXPDataSeederService,\n AXPFilterOperatorMiddlewareService,\n AXPFilterOperatorMiddlewareServiceImpl,\n} from './data';\nimport { AXPErrorHandler, AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPSettingsService } from './settings';\nimport { AXPCommonEffects } from './store';\nimport { AXPDialogConfirmAction, AXPToastAction } from './workflows';\n\nexport interface AXPCommonModuleConfigs {\n errorHandlers: (new () => AXPErrorHandler)[];\n}\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([AXPCommonEffects]),\n AXPWorkflowModule.forChild({\n actions: {\n navigate: AXPDialogConfirmAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n ],\n})\nexport class AXPCommonModule {\n static forRoot(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(\n @Inject('AXPCommonModuleFactory') instances: any[],\n appInitService: AXPAppStartUpService,\n settingsService: AXPSettingsService,\n seederService: AXPDataSeederService\n ) {\n instances.forEach((f) => {\n f();\n });\n\n // appInitService.registerTask({\n // name: 'Modules',\n // statusText: 'Initializing Modules ...',\n // run: () =>\n // new Promise<void>((resolve) => {\n // setTimeout(() => {\n // resolve();\n // }, 250);\n // }),\n // });\n //\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n run: async () => {\n await settingsService.load();\n },\n });\n //\n //\n appInitService.registerTask({\n name: 'Seeder',\n statusText: 'Seed Data ...',\n run: async () => {\n await seederService.seed();\n },\n });\n }\n}\n","import { Type } from '@angular/core';\n\nexport interface AXPLogoConfig {}\nexport class AXPTextLogoConfig implements AXPLogoConfig {\n constructor(public text: string) {}\n}\nexport class AXPImageUrlLogoConfig implements AXPLogoConfig {\n constructor(public url: string) {}\n}\nexport class AXPFontIconLogoConfig implements AXPLogoConfig {\n constructor(public iconClass: Type<any>) {}\n}\n\nexport class AXPComponentLogoConfig implements AXPLogoConfig {\n constructor(public component: Type<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLogoConfig, AXPTextLogoConfig } from '../layout/logo/logo.types';\n\nexport const ENVIRONMENT = new InjectionToken<any>('ENVIRONMENT');\n\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken<AXPPlatformConfigs>('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\n\nexport interface AXPPlatformConfigs {\n title?: string;\n copyright?: string;\n logo?: {\n dark?: AXPLogoConfig;\n light?: AXPLogoConfig;\n colored?: AXPLogoConfig;\n };\n useLocalData: boolean;\n network?: {\n timeOut?: number;\n };\n}\n\nexport const AXPPlatformDefaultConfigs: AXPPlatformConfigs = {\n copyright: 'ACoreX @ 2023',\n title: 'ACoreX Platform',\n logo: {\n dark: new AXPTextLogoConfig('ACoreX'),\n light: new AXPTextLogoConfig('ACoreX'),\n colored: new AXPTextLogoConfig('ACoreX'),\n },\n useLocalData: false,\n network: {\n timeOut: 5000,\n }\n};\n\nexport function configPlatform(config: Partial<AXPPlatformConfigs> = AXPPlatformDefaultConfigs): AXPPlatformConfigs {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken<AXPRootConfigs>('AXP_ROOT_CONFIG_TOKEN');\n\nexport interface AXPRootConfigs {\n baseUrl: string;\n}","// src/app/directives/grid-layout.directive.ts\n\nimport { Directive, Input, ElementRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\nimport { AXPGridLayoutOptions, AXPGridLayoutPositions } from './grid-layout.types';\n\n@Directive({\n selector: '[gridLayout]',\n standalone: true,\n})\nexport class AXPGridLayoutDirective implements OnChanges {\n @Input('gridLayout') options: AXPGridLayoutOptions;\n\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n\n private applyTailwindClasses(): void {\n // Clear existing grid classes\n this.clearClasses();\n\n // Apply new grid classes based on the input options\n this.setClasses(this.options.positions?.default, '');\n this.setClasses(this.options.positions?.md, 'md:');\n this.setClasses(this.options.positions?.lg, 'lg:');\n this.setClasses(this.options.positions?.xl, 'xl:');\n this.setClasses(this.options.positions?.xxl, '2xl:');\n }\n\n private setClasses(positions: AXPGridLayoutPositions | undefined, prefix: string): void {\n if (positions == null) return;\n\n const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';\n const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';\n const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';\n const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';\n const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';\n const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';\n const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order\n\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n\n private clearClasses(): void {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className: string) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true,\n})\nexport class AXPStickyDirective {\n @Input('axpSticky')\n stickyClass!: string;\n\n @Input('stickyOffset')\n stickyOffset: number = 100;\n\n @Output()\n public isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky: boolean = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(v: boolean) {\n this._isSticky = v;\n this.isStickyChange.emit(v);\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n constructor(\n private element: ElementRef<HTMLDivElement>,\n private renderer: Renderer2,\n private zone: NgZone,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n this.targetElement = (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n this.topOffset = this.targetElement.offsetTop;\n this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollPosition =\n this.parentElement === window\n ? window.scrollY\n : (this.parentElement as HTMLElement).scrollTop + this.targetElement.offsetTop;\n if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {\n this.isSticky = true;\n this.stickyClass.split(' ').forEach((c) => {\n if (c) {\n this.renderer.addClass(this.targetElement, c);\n }\n });\n this.cdr.markForCheck();\n } else if (scrollPosition <= this.topOffset && this.isSticky) {\n this.stickyClass.split(' ').forEach((c) => {\n if (c) {\n this.renderer.removeClass(this.targetElement, c);\n }\n });\n this.isSticky = false;\n this.cdr.markForCheck();\n }\n });\n };\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPComponentSlotConfig } from \"./component-slot.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPComponentSlotRegistryService {\n\n private registry = new Map<string, AXPComponentSlotConfig[]>();\n\n register(slotName: string, config: AXPComponentSlotConfig) {\n let configs = this.registry.get(slotName) || [];\n\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n\n get(slotName: string): AXPComponentSlotConfig[] {\n return this.registry.get(slotName) || [];\n }\n}","import { Injectable, Injector, Type, ViewContainerRef, runInInjectionContext } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPComponentSlotLoaderService {\n constructor(private registryService: AXPComponentSlotRegistryService, private injector: Injector) {}\n\n loadComponent(slotName: string, viewContainerRef: ViewContainerRef) {\n const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);\n if (configs) {\n viewContainerRef.clear();\n configs.forEach(async (config) => {\n let component!: Type<any> | null | undefined;\n let options: { [key: string]: unknown } = {};\n if (typeof config.loadComponent === 'function') {\n // If component is a function\n runInInjectionContext(this.injector, () => {\n component = config.loadComponent?.();\n });\n } else if (config.component) {\n // If component is a Type\n component = config.component;\n }\n //\n if (typeof config.options === 'function') {\n // If options is a function\n runInInjectionContext(this.injector, () => {\n const fun = config.options as Function;\n options = fun();\n });\n } else if (config.options) {\n // If options is a object\n options = config.options;\n }\n //\n if (component != null) {\n const componentRef = viewContainerRef.createComponent(component);\n Object.assign(componentRef.instance, options);\n }\n });\n }\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { AXPComponentSlotLoaderService } from './component-slot-loader.service';\n\n@Directive({\n selector: 'axp-component-slot',\n})\nexport class AXPComponentSlotDirective implements OnInit {\n @Input()\n name!: string;\n\n constructor(private dynamicLoaderService: AXPComponentSlotLoaderService, public viewContainerRef: ViewContainerRef) { }\n\n ngOnInit() {\n this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);\n }\n}","import { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotModuleConfigs } from './component-slot.types';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\n\n@NgModule({\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n})\nexport class AXPComponentSlotModule {\n\n static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPComponentSlotModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\n\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig } from './logo.types';\n\n@Component({\n selector: 'axp-logo',\n templateUrl: `logo.component.html`,\n standalone: true,\n imports: [CommonModule, AXImageModule, AXDecoratorModule],\n host: { 'class': 'ax-flex ax-justify-center' }\n})\nexport class AXPLogoComponent {\n\n @Input()\n source!: any;\n\n protected logoType!: string;\n\n ngOnInit(): void {\n switch (true) {\n case this.source instanceof AXPTextLogoConfig:\n this.logoType = 'text';\n break;\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPFontIconLogoConfig:\n this.logoType = 'iconClass';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n}\n","@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPMenuFinderResult, AXPMenuItem, AXPMenuProviderContext } from './menu.types';\n\nexport interface AXPMenuProvider {\n provide(context: AXPMenuProviderContext): Promise<void>;\n}\n\nexport const AXP_MENU_PROVIDER = new InjectionToken<AXPMenuProvider[]>('AXP_MENU_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPMenuProviderService {\n\n private providers = inject(AXP_MENU_PROVIDER, { optional: true });\n private cache: AXPMenuItem[] | null = null;\n private pendingInserts: Array<{ target: string; newItems: AXPMenuItem[]; position: 'before' | 'after' }> = [];\n private pendingRemovals: string[] = [];\n private pendingUpdates: Array<{ target: string; updatedItem: Partial<AXPMenuItem> }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPMenuItem[] }> = [];\n\n async items(): Promise<AXPMenuItem[]> {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPMenuItem[] = [];\n const context = this.createMenuProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n\n // Apply pending operations\n this.applyPendingOperations(items);\n\n // Cache the computed items\n this.cache = items;\n return items;\n }\n\n private createMenuProviderContext(items: AXPMenuItem[]): AXPMenuProviderContext {\n return {\n addItems: (newItems: AXPMenuItem[]) => {\n items.push(...newItems);\n },\n find: (target: string): AXPMenuFinderResult => {\n return {\n insert: (newItems: AXPMenuItem[], position: 'before' | 'after') => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem: Partial<AXPMenuItem>) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems: AXPMenuItem[]) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n\n private applyPendingOperations(items: AXPMenuItem[]): void {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n } else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n } else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n } else {\n Object.assign(foundItem, updatedItem);\n }\n }\n\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n } else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n\n private findItemWithParent(items: AXPMenuItem[], target: string, parentItems: AXPMenuItem[] = items): { foundItem: AXPMenuItem | null, parentItems: AXPMenuItem[] } {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n\n // Method to clear the cache, if needed (e.g., when providers change)\n clearCache(): void {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n}\n","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuItem } from './menu.types';\nimport { AXPMenuProviderService } from './menu.provider';\nimport { Store } from '@ngrx/store';\nimport { AXPNavigateAction } from '../../store';\n\nexport const AXPMenuService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState((router = inject(Router)) => {\n return {\n items: [] as AXPMenuItem[],\n selectedMenuItem: {\n item: null as AXPMenuItem | null,\n isFullMatch: false\n },\n };\n }),\n\n // Methods for State Management\n withMethods((store, router = inject(Router), globalStore = inject(Store)) => {\n\n\n return {\n\n setMenuItems(items: AXPMenuItem[]): void {\n patchState(store, { items: items });\n },\n\n selectMenuItemByRoute(path: string): void {\n const findItem = (items: AXPMenuItem[]): { item: AXPMenuItem | null, isPartialMatch: boolean } => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path\n const matchResult = pathsMatch(item.path, path);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n\n const pathsMatch = (itemPath: string, currentPath: string): { isMatch: boolean, isPartial: boolean } => {\n // Split both paths into segments\n const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);\n const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);\n\n // Determine the minimum number of segments to compare\n const minLength = Math.min(itemSegments.length, pathSegments.length);\n\n // Compare segments until we find a mismatch\n let commonBaseLength = 0;\n for (let i = 0; i < minLength; i++) {\n if (itemSegments[i] === pathSegments[i]) {\n commonBaseLength++;\n } else {\n break; // Stop at the first mismatch\n }\n }\n\n // Determine if we have a common base of at least 5 segments\n const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;\n const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;\n\n return {\n isMatch: isPartialMatch || isExactMatch,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n\n executeCommand(item: AXPMenuItem): void {\n if (item.command) {\n globalStore.dispatch(item.command);\n } else if (item.path) {\n globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));\n }\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n },\n\n isItemOpen(item: AXPMenuItem): boolean {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem) {\n return false;\n }\n\n const findParent = (currentItem: AXPMenuItem, targetItem: AXPMenuItem): boolean => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;\n };\n\n return item === selectedItem?.item || findParent(item, selectedItem.item!);\n }\n };\n }),\n withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({\n onInit() {\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n },\n onDestroy() {\n\n },\n }))\n);","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <small class=\"ax-text-sm ax-text-neutral-400\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n})\nexport class AXPFooterTextSlotComponent {\n @Input()\n public text!: string;\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { AXPMenuItem } from '../../../menu';\n\n@Component({\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n <a *ngFor=\"let link of items\" (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPNavBarSlotComponent {\n @Input()\n public items!: AXPMenuItem[];\n\n private store = inject(Store)\n\n protected handleCommand(action?: Action) {\n if (action)\n this.store.dispatch(action)\n }\n}","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPSchemaConfig } from './schema.types';\n\ntype DeepPartial<Thing> = Thing extends Function\n ? Thing\n : Thing extends Array<infer InferredArrayMember>\n ? DeepPartialArray<InferredArrayMember>\n : Thing extends object\n ? DeepPartialObject<Thing>\n : Thing | undefined;\n\ninterface DeepPartialArray<Thing> extends Array<DeepPartial<Thing>> {}\n\ntype DeepPartialObject<Thing> = {\n [Key in keyof Thing]?: DeepPartial<Thing[Key]>;\n};\n\ntype AXPSchemaOverride = Omit<DeepPartialObject<AXPSchemaConfig>, 'name'> & { name: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSchemaRegistryService {\n private types: Map<string, AXPSchemaConfig> = new Map();\n\n register(schema: AXPSchemaConfig) {\n this.types.set(schema.name, schema);\n }\n\n extend(parentName: string, schema: AXPSchemaOverride) {\n const parentSchema = this.resolve(parentName);\n const newSchema = merge({}, parentSchema, schema);\n newSchema.name = schema.name;\n this.register(newSchema);\n }\n\n resolve(name: string): AXPSchemaConfig | undefined {\n const schema = this.types.get(name);\n if (!schema) {\n throw new Error(`Parent schema with name ${schema} does not exist.`);\n }\n return schema;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\nexport interface AXPWidgetProperty {\n name: string;\n description?: string,\n formats: AXPDisplayFormat;\n validationRules?: AXPValidationRules\n canEdit: boolean;\n}\nexport interface AXPWidgetTokenType {\n schema: AXPSchemaConfig;\n prop: AXPWidgetProperty;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetTokenType>('AXP_WIDGET_TOKEN');\n\n","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { assign, cloneDeep, merge } from 'lodash-es';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [{ provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['width', 'caption', 'headerTemplate', 'allowSorting', 'fixed'],\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n mergedOptions: any = {};\n\n // @ViewChild(TemplateRef)\n // private _template!: TemplateRef<unknown>;\n\n // get template(): TemplateRef<unknown> {\n // return this._template;\n // }\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.dataField}`;\n }\n\n @Input()\n options?: { [key: string]: any };\n\n @Input()\n dataField!: string;\n\n @Input()\n displayFormat!: string | undefined;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n if (schema?.component?.column) this.component = await schema?.component?.column.component();\n this.mergedOptions = merge(cloneDeep(schema?.component.column?.options), this.options) || {};\n const tokenValue = {\n prop: {\n name: this.dataField,\n formats: { default: this.displayFormat },\n },\n schema: schema,\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.mergedOptions.width ?? '200px';\n this.allowResizing = this.mergedOptions.allowResizing || false;\n this.cdr.markForCheck();\n }\n\n getInputs(data: any) {\n return assign(this.mergedOptions, { context: data });\n }\n}\n","import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, isEqual, merge } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetFilterBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-filter-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n})\nexport class AXPWidgetFilterRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n protected isLoading = true;\n\n @Output()\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n operatorChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _value: any;\n @Input()\n public get value(): any {\n return this._value;\n }\n\n public set value(v: any) {\n this._value = v;\n this.updateValue();\n this.valueChange.emit(v);\n }\n\n private _operator: any;\n @Input()\n public get operator(): any {\n return this._operator;\n }\n\n public set operator(op: any) {\n this._operator = op;\n this.updateOperator();\n this.operatorChange.emit(op);\n }\n\n @Input()\n prop!: any;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetFilterBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.filter?.options),\n schema?.component?.filter?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component.filter?.component) {\n var com = await schema.component.filter?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance) {\n this.instance.value = this.value;\n }\n }\n\n private updateOperator() {\n if (this.instance) {\n this.instance.operator = this.operator;\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetFilterBase;\n // console.log(this.schemaName, this.instance);\n assign(this.instance, this.options);\n this.updateValue();\n this.updateOperator();\n this.instance.valueChange.subscribe((v) => {\n if (!isEqual(v, this.value)) {\n this.value = v;\n }\n });\n this.instance.operatorChange.subscribe((op) => {\n if (!isEqual(op, this.operator)) {\n this.operator = op;\n }\n });\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { ChangeDetectorRef, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';\nimport { cloneDeep, get, merge } from 'lodash-es';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPWidgetProperty, AXP_WIDGET_TOKEN } from './widget-token';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\n@Injectable()\nexport abstract class AXPWidgetBase<T = any> {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected token = inject(AXP_WIDGET_TOKEN);\n protected formatService = inject(AXFormatService);\n\n public markForCheck = inject(ChangeDetectorRef).markForCheck;\n\n protected get schema(): AXPSchemaConfig {\n return this.token.schema;\n }\n\n protected get prop(): AXPWidgetProperty {\n return this.token.prop;\n }\n\n protected get rawValue(): any {\n return get(this.context, this.token.prop.name);\n }\n\n\n // protected get multiple(): boolean {\n // return this.token.prop.multiple ?? false;\n // }\n\n protected get formats(): AXPDisplayFormat {\n return merge(cloneDeep(this.schema.formats), this.token.prop.formats);\n }\n\n private _context!: T;\n @Input()\n public get context(): T {\n return this._context;\n }\n public set context(v: T) {\n this._context = v;\n this.render();\n this.cdr.markForCheck();\n }\n\n protected render(): void { }\n\n protected setOption(name: string, value: any) {\n\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetEditBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n\n protected get validations(): AXPValidationRules {\n const merged = [...(this.schema.validationRules ?? []), ...(this.token.prop.validationRules ?? [])];\n return merged;\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetFilterBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n operatorChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _operator!: string;\n @Input()\n public get operator(): string {\n return this._operator;\n }\n public set operator(op: string) {\n this._operator = op;\n this.operatorChange.emit(op);\n this.render();\n this.cdr.markForCheck();\n }\n\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Injector,\n Input,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, get, merge, set } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetEditBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n private subscriber = inject(AXUnsubscriber);\n\n private _context: any;\n @Input()\n public get context(): any {\n return this._context;\n }\n\n public set context(v: any) {\n this._context = v;\n if (this.instance) {\n this.instance.context = v;\n }\n this.updateValue();\n }\n\n @Input()\n prop!: any;\n\n @Input()\n mode: 'view' | 'edit' = 'view';\n\n protected isLoading = true;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n //TODO: move to better place\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetBase | AXPWidgetEditBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.[this.mode]?.options),\n schema?.component?.[this.mode]?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component[this.mode]?.component) {\n var com = await schema.component[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance && this.context && this.instance instanceof AXPWidgetEditBase) {\n this.instance.value = get(this.context, this.prop.name);\n }\n }\n\n private updateProps() {\n if (this.instance) {\n assign(this.instance, this.options);\n }\n }\n\n private attachReferenceField(v: any) {\n if (this.options['reference']) {\n const valueField = this.prop.component?.common?.options?.valueField || 'id';\n const referenceField = this.options['referenceField'];\n\n if (referenceField) {\n if (Array.isArray(v)) {\n this.context[referenceField] = v.map((item: any) => item[valueField]);\n } else {\n this.context[referenceField] = v?.[valueField];\n }\n } else {\n this.context[`${this.prop.name}Id`] = v?.[valueField];\n }\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetBase;\n this.instance.context = this.context;\n this.updateProps();\n this.updateValue();\n if (this.instance instanceof AXPWidgetEditBase) {\n this.attachReferenceField(this.instance.value);\n this.instance.valueChange.pipe(this.subscriber.takeUntilDestroy).subscribe((v) => {\n this.attachReferenceField(v);\n set(this.context, this.prop.name, v);\n });\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget/widget-column-renderer';\nimport { AXPWidgetFilterRendererComponent } from './widget/widget-filter-renderer';\nimport { AXPWidgetRendererComponent } from './widget/widget-renderer';\n\n@NgModule({\n imports: [PortalModule, AXSkeletonModule, CommonModule],\n exports: [AXPWidgetRendererComponent, AXPWidgetFilterRendererComponent, AXPWidgetColumnRendererComponent],\n declarations: [AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetFilterRendererComponent],\n providers: [],\n})\nexport class AXPSchemaModule {}\n","import { AXDataSourceConfig } from '@acorex/components/common';\nimport { AXPValidationRules } from '@acorex/platform/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { AXPEntity } from '../../app';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPDisplayFormat } from '../formats';\n\nexport interface AXPLayoutGridPositions {\n start?: number;\n span?: number;\n}\n\nexport interface AXPEntityPropertyLayoutOptions {\n positions: {\n default?: AXPLayoutGridPositions;\n sm?: AXPLayoutGridPositions;\n md?: AXPLayoutGridPositions;\n lg?: AXPLayoutGridPositions;\n xl?: AXPLayoutGridPositions;\n xxl?: AXPLayoutGridPositions;\n };\n}\n\nexport interface AXPEntityPropertyConfig {\n name: string;\n title: string;\n description?: string;\n schema: string;\n layout?: AXPEntityPropertyLayoutOptions;\n canEdit: boolean;\n canInsert: boolean;\n canFilter?: boolean;\n canInlineFilter?: boolean;\n canSort?: boolean;\n visible?: boolean | string;\n formats?: AXPDisplayFormat;\n validationRules?: AXPValidationRules;\n component?: {\n common?: {\n options: AXPComponentOptions;\n };\n view?: {\n options: AXPComponentOptions;\n };\n edit?: {\n options: AXPComponentOptions;\n };\n filter?: {\n options: AXPComponentOptions;\n };\n column?: {\n options: AXPComponentOptions;\n };\n };\n}\n\nexport interface AXPEntityConfig {\n newStruct?: AXPEntity;\n area?: string;\n module: string;\n name: string;\n title: string;\n formats?: AXPDisplayFormat;\n properties: AXPEntityPropertyConfig[];\n dataSource: AXDataSourceConfig;\n editOptions?: {\n create?: boolean;\n update?: boolean;\n delete?: boolean;\n import?: boolean;\n };\n views: {\n list?: AXPEntityListConfig;\n lookup?: any;\n quickView?: AXPEntityViewConfig;\n detailView?: AXPEntityViewConfig;\n createView?: AXPEntityViewConfig;\n };\n commands?: {\n create?: (values: { [key: string]: any }) => Promise<any>;\n delete?: (id: string) => Promise<any>;\n update?: (id: string, values: { [key: string]: any }) => Promise<any>;\n };\n actions?: {\n [key: string]: {\n title: string;\n execute: (...args: any[]) => Promise<any> | string;\n permissions?: string[];\n target: 'selected' | 'single' | 'entity';\n priority: 'primary' | 'secondary';\n type: 'create' | 'update' | 'delete';\n options?: any;\n };\n };\n}\n\nexport interface AXPEntityViewRootSectionConfig {\n properties: string[];\n sections?: AXPEntityViewChildSectionConfig[];\n}\n\nexport interface AXPEntityViewChildSectionConfig extends AXPEntityViewRootSectionConfig {\n title: string;\n name: string;\n description?: string;\n options?: {\n showPropTitle: boolean;\n };\n}\n\nexport interface AXPEntityViewConfig {\n root: AXPEntityViewRootSectionConfig;\n action?: (e: AXPEntityConfig) => void;\n}\n\nexport interface AXPEntityListConfig {\n title: string;\n views: AXPEntityListViewConfig[];\n}\n\nexport interface AXPEntityListViewConfig {\n fixed: boolean;\n title: string;\n name: string;\n columns: AXPEntityListDisplayColumnConfig[];\n conditions: AXPEntityListConditionConfig[];\n inlineConditions?: AXPEntityListConditionConfig[];\n sorts: AXPEntityListSortConfig[];\n}\n\nexport const AXPEntityListViewConfigEmpty: AXPEntityListViewConfig = {\n fixed: false,\n columns: [],\n conditions: [],\n sorts: [],\n name: 'empty',\n title: 'Empty',\n};\n\nexport interface AXPEntityListColumnConfig {\n name: string;\n title: string;\n schema: string;\n}\n\nexport interface AXPEntityListDisplayColumnConfig {\n name: string;\n visible: boolean;\n schema: string;\n title: string;\n displayFormat?: string;\n sortOptions: {\n enabled?: boolean;\n property: string;\n };\n filterOptions: {\n enabled?: boolean;\n property: string;\n };\n tooltipOptions?: {\n template: any;\n };\n options?: {\n [key: string]: any;\n };\n}\n\nexport interface AXPEntityListConditionConfig {\n name: string;\n operator: string;\n value: any;\n}\n\nexport interface AXPEntityListSortConfig {\n name: string;\n dir: 'asc' | 'desc';\n}\n\nexport function convertPropertyToColumn(property: AXPEntityPropertyConfig): AXPEntityListDisplayColumnConfig {\n return {\n //TODO: merge format function\n schema: property.schema,\n name: property.name,\n title: property.title,\n visible: true,\n displayFormat: property.formats?.list ?? property.formats?.default,\n sortOptions: {\n enabled: property.canSort,\n property: property.name,\n },\n filterOptions: {\n enabled: property.canFilter,\n property: property.name,\n },\n options: merge(cloneDeep(property.component?.common?.options), property.component?.column?.options),\n };\n}\n\nexport function convertPropertiesToColumns(\n ...propertis: AXPEntityPropertyConfig[]\n): AXPEntityListDisplayColumnConfig[] {\n return propertis.map((p) => convertPropertyToColumn(p));\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\n\nexport interface AXPEntityLoader {\n get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null>;\n}\n\nexport class AXEntityLoaderDefault implements AXPEntityLoader {\n async get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null> {\n return null;\n }\n}\n\nexport const AXP_ENTITY_LOADER = new InjectionToken<AXPEntityLoader>(\n 'AXP_ENTITY_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXEntityLoaderDefault();\n },\n }\n);","import { Injectable, inject } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\nimport { AXP_ENTITY_LOADER } from \"./entity.loader\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPEntityRegistryService {\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n private entities = new Map<string, AXPEntityConfig>();\n\n // Entity loader service for dynamically loading entity configurations.\n private loader = inject(AXP_ENTITY_LOADER); // Assuming AXPEntityLoader is the correct type\n\n\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n * \n * @param config The configuration object of the entity to be registered.\n */\n register(config: AXPEntityConfig): void {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName: string, entityName: string): Promise<AXPEntityConfig> {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n\n if (!config) {\n try {\n config = await this.loader.get(moduleName, entityName);\n if (config) {\n this.register(config);\n }\n } catch (error) {\n console.error(`Error loading entity '${key}':`, error);\n throw error; // Rethrow to allow error handling by caller\n }\n\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n\n return config;\n }\n\n /**\n * Creates a unique key for an entity based on its module and name.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n private createEntityKey(moduleName: string, entityName: string): string {\n return `${moduleName}.${entityName}`;\n }\n}\n","import { AXToastModule } from '@acorex/components/toast';\nimport { NgModule } from '@angular/core';\nimport { BETWEEN_OPER, DATE_OPERATORS, EQ_OPER, NUMBER_OPERATORS, STRING_OPERATORS } from '../../app';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\n\nexport const widgetSchemas = {\n //*Sharing schema list with other modules\n text: 'text',\n largetext: 'largetext',\n number: 'number',\n currency: 'currency',\n phone: 'phone',\n email: 'email',\n dateTime: 'dateTime',\n date: 'date',\n time: 'time',\n toggle: 'toggle',\n checkbox: 'checkbox',\n password: 'password',\n file: 'file',\n lookup: 'lookup',\n selectionList: 'selection-list',\n richText: 'rich-text',\n map: 'map',\n avatar: 'avatar',\n messenger: 'messenger',\n gallery: 'gallery',\n signaturePad: 'signature-pad',\n};\n\n@NgModule({\n imports: [AXToastModule],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class AXPCommonWidgetModule {\n constructor(service: AXPSchemaRegistryService) {\n //text\n service.register({\n component: {\n view: {\n component: () => import('./text/text-widget-view.component').then((c) => c.AXPTextWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./text/text-widget-edit.component').then((c) => c.AXPTextWidgetEditComponent),\n },\n column: {\n component: () => import('./text/text-widget-column.component').then((c) => c.AXPTextWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.text,\n dataType: 'string',\n });\n service.extend('text', {\n name: widgetSchemas.largetext,\n component: {\n edit: {\n component: () =>\n import('./text/largetext-widget-edit.component').then((c) => c.AXPLargeTextWidgetEditComponent),\n },\n column: {\n options: {\n width: '400px',\n },\n },\n },\n });\n //\n service.register({\n component: {\n view: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/number-widget-filter.component').then(\n (c) => c.AXPNumberWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./number/number-widget-edit.component').then((c) => c.AXPNumberWidgetEditComponent),\n },\n column: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.number,\n filterOptions: {\n operators: [...NUMBER_OPERATORS],\n default: BETWEEN_OPER,\n },\n dataType: 'number',\n });\n service.extend('number', {\n name: widgetSchemas.currency,\n formats: {\n default: 'EN-GB',\n },\n component: {\n edit: {\n options: {\n clearButton: false,\n },\n },\n },\n });\n //phone\n service.register({\n component: {\n view: {\n component: () => import('./phone/phone-widget-view.component').then((c) => c.AXPPhoneWidgetViewComponent),\n },\n column: {\n component: () => import('./phone/phone-widget-column.component').then((c) => c.AXPPhoneWidgetColumnComponent),\n options: { allowResizing: true },\n },\n edit: {\n component: () => import('./phone/phone-widget-edit.component').then((c) => c.AXPPhoneWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n name: widgetSchemas.phone,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n //email\n service.register({\n component: {\n view: {\n component: () => import('./email/email-widget-view.component').then((c) => c.AXPEmailWidgetViewComponent),\n },\n edit: {\n component: () => import('./email/email-widget-edit.component').then((c) => c.AXPEmailWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n column: {\n component: () => import('./email/email-widget-column.component').then((c) => c.AXPEmailWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.email,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n // dateTime\n service.register({\n component: {\n view: {\n component: () =>\n import('./dateTime/dateTime-widget-view.component').then((c) => c.AXPDateTimeWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./dateTime/dateTime-widget-edit.component').then((c) => c.AXPDateTimeWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./dateTime/dateTime-widget-filter.component').then((c) => c.AXPDateTimeWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./dateTime/dateTime-widget-column.component').then((c) => c.AXPDateTimeWidgetColumnComponent),\n options: {\n width: '200px',\n allowResizing: true,\n },\n },\n },\n formats: {\n default: 'date',\n },\n filterOptions: {\n operators: [...DATE_OPERATORS],\n default: BETWEEN_OPER,\n },\n name: widgetSchemas.dateTime,\n dataType: 'date',\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.date,\n formats: {\n default: 'date',\n },\n component: {\n column: {\n options: {\n width: '120px',\n },\n },\n },\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.time,\n formats: {\n default: 'time',\n },\n component: {\n column: {\n options: {\n width: '80px',\n },\n },\n },\n });\n //toggle\n service.register({\n component: {\n view: {\n component: () => import('./toggle/toggle-widget-view.component').then((c) => c.AXPToggleWidgetViewComponent),\n },\n edit: {\n component: () => import('./toggle/toggle-widget-edit.component').then((c) => c.AXPToggleWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./toggle/toggle-widget-column.component').then((c) => c.AXPToggleWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.toggle,\n dataType: 'boolean',\n });\n //checkbox\n service.register({\n component: {\n view: {\n component: () =>\n import('./checkbox/checkbox-widget-view.component').then((c) => c.AXPCheckboxWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./checkbox/checkbox-widget-edit.component').then((c) => c.AXPCheckboxWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./checkbox/checkbox-widget-column.component').then((c) => c.AXPCheckboxWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.checkbox,\n dataType: 'boolean',\n });\n //password\n service.register({\n component: {\n view: {\n component: () =>\n import('./password/password-widget-view.component').then((c) => c.AXPPasswordWidgetViewComponent),\n },\n column: {\n component: () =>\n import('./password/password-widget-column.component').then((c) => c.AXPPasswordWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () =>\n import('./password/password-widget-edit.component').then((c) => c.AXPPasswordWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.password,\n dataType: 'string',\n });\n //file\n service.register({\n component: {\n view: {\n component: () => import('./file/file-widget-view.component').then((c) => c.AXPFileWidgetViewComponent),\n },\n column: {\n component: () => import('./file/file-widget-column.component').then((c) => c.AXPFileWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () => import('./file/file-widget-edit.component').then((c) => c.AXPFileWidgetEditComponent),\n },\n filter: {\n component: () => import('./file/file-widget-filter.component').then((c) => c.AXPFileWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.file,\n dataType: 'object',\n });\n // look up\n service.register({\n component: {\n view: {\n component: () => import('./lookup/lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup/lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./lookup/lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./lookup/lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.lookup,\n dataType: 'object',\n });\n // selection list\n service.register({\n component: {\n view: {\n component: () =>\n import('./selection-list/selection-list-widget-view.component').then(\n (c) => c.AXPSelectionListWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./selection-list/selection-list-widget-edit.component').then(\n (c) => c.AXPSelectionListWidgetEditComponent\n ),\n },\n column: {\n component: () =>\n import('./selection-list/selection-list-widget-column.component').then(\n (c) => c.AXPSelectionListWidgetColumnComponent\n ),\n options: {\n allowResizing: true,\n },\n },\n filter: {\n component: () =>\n import('./selection-list/selection-list-widget-filter.component').then(\n (c) => c.AXPSelectionListWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.selectionList,\n dataType: 'object',\n });\n // rich text\n service.register({\n component: {\n view: {\n component: () =>\n import('./rich-text/rich-text-widget-view.component').then((c) => c.AXPRichTextWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./rich-text/rich-text-widget-edit.component').then((c) => c.AXPRichTextWidgetEditComponent),\n options: {\n allowResizing: true,\n },\n },\n column: {\n component: () =>\n import('./rich-text/rich-text-widget-column.component').then((c) => c.AXPRichTextWidgetColumnComponent),\n options: {\n width: '400px',\n },\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.richText,\n dataType: 'object',\n });\n // map\n service.register({\n component: {\n view: {\n component: () => import('./map/map-widget-view.component').then((c) => c.AXPMapWidgetViewComponent),\n },\n edit: {\n component: () => import('./map/map-widget-edit.component').then((c) => c.AXPMapWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.map,\n dataType: 'object',\n });\n // avatar\n service.register({\n component: {\n view: {\n component: () => import('./avatar/avatar-widget-view.component').then((c) => c.AXPAvatarWidgetViewComponent),\n },\n edit: {\n component: () => import('./avatar/avatar-widget-edit.component').then((c) => c.AXPAvatarWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.avatar,\n dataType: 'object',\n });\n // messenger\n service.register({\n component: {\n view: {\n component: () =>\n import('./messenger/messenger-widget-view.component').then((c) => c.AXPMessengerWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./messenger/messenger-widget-edit.component').then((c) => c.AXPMessengerWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./messenger/messenger-widget-column.component').then((c) => c.AXPMessengerWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.messenger,\n dataType: 'object',\n });\n //\n // gallery\n service.register({\n component: {\n view: {\n component: () =>\n import('./gallery/gallery-widget-view.component').then((c) => c.AXPGalleryWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./gallery/gallery-widget-edit.component').then((c) => c.AXPGalleryWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./gallery/gallery-widget-filter.component').then((c) => c.AXPGalleryWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.gallery,\n dataType: 'object',\n });\n // signature-pad\n service.register({\n component: {\n view: {\n component: () =>\n import('./signature-pad/signature-pad-widget-view.component').then(\n (c) => c.AXPSignaturePadWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./signature-pad/signature-pad-widget-edit.component').then(\n (c) => c.AXPSignaturePadWidgetEditComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.signaturePad,\n dataType: 'object',\n });\n //\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPErrorHandlerRegistryService","i3.AXPSettingsService","i1.AXPAppStartUpService","i2.AXPSettingsService","i3.AXPDataSeederService","i1.AXPComponentSlotRegistryService","i1.AXPComponentSlotLoaderService","i1","i3","i2","i1.AXPSchemaRegistryService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-common.mjs","sources":["../../../../libs/platform/common/src/lib/app/app-startup.service.ts","../../../../libs/platform/common/src/lib/app/application.types.ts","../../../../libs/platform/common/src/lib/app/operators.ts","../../../../libs/platform/common/src/lib/data/data-provider.types.ts","../../../../libs/platform/common/src/lib/utils/clipboard-service.ts","../../../../libs/platform/common/src/lib/utils/data-generator.ts","../../../../libs/platform/common/src/lib/utils/pdf.service.ts","../../../../libs/platform/common/src/lib/data/dexie-storage.service.ts","../../../../libs/platform/common/src/lib/data/entity-data-seeder.ts","../../../../libs/platform/common/src/lib/data/entity-storage-service.ts","../../../../libs/platform/common/src/lib/data/operators.service.ts","../../../../libs/platform/common/src/lib/data/filter-middleware.service.ts","../../../../libs/platform/common/src/lib/errors/error-handler-registry.service.ts","../../../../libs/platform/common/src/lib/errors/global-error-handler.ts","../../../../libs/platform/common/src/lib/settings/setting-definition.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.provider.ts","../../../../libs/platform/common/src/lib/settings/settings.service.ts","../../../../libs/platform/common/src/lib/store/common.actions.ts","../../../../libs/platform/common/src/lib/store/common.effects.ts","../../../../libs/platform/common/src/lib/workflows/common.workflow.ts","../../../../libs/platform/common/src/lib/workflows/error-handler.ts","../../../../libs/platform/common/src/lib/common.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.types.ts","../../../../libs/platform/common/src/lib/configs/app.config.ts","../../../../libs/platform/common/src/lib/configs/config.types.ts","../../../../libs/platform/common/src/lib/layout/grid-layout/grid-layout.directive.ts","../../../../libs/platform/common/src/lib/layout/sticky.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-registery.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot-loader.service.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.directive.ts","../../../../libs/platform/common/src/lib/layout/component-slot/component-slot.module.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.ts","../../../../libs/platform/common/src/lib/layout/logo/logo.component.html","../../../../libs/platform/common/src/lib/layout/menu/menu.provider.ts","../../../../libs/platform/common/src/lib/layout/menu/menu.service.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/footer-text-slot.component.ts","../../../../libs/platform/common/src/lib/layout/theme/components/slots/navbar-slot.component.ts","../../../../libs/platform/common/src/lib/schema/schema-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-token.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-column-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-filter-renderer.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-base.ts","../../../../libs/platform/common/src/lib/schema/widget/widget-renderer.ts","../../../../libs/platform/common/src/lib/schema/schema.module.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.class.ts","../../../../libs/platform/common/src/lib/schema/entity/entity.loader.ts","../../../../libs/platform/common/src/lib/schema/entity/entity-registery.service.ts","../../../../libs/platform/common/src/lib/schema/widgets/common-widgets.module.ts","../../../../libs/platform/common/src/acorex-platform-common.ts"],"sourcesContent":["import { Injectable, inject, provideAppInitializer } from '@angular/core';\n\nexport interface AXPStartUpTask {\n name: string;\n statusText: string;\n run: () => Promise<void>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPAppStartUpService {\n private tasks: AXPStartUpTask[] = [];\n\n registerTask(task: AXPStartUpTask) {\n this.tasks.push(task);\n }\n\n async runAllTasks() {\n for (const task of this.tasks) {\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n\n private updateStatus(status: string) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n}\n\nfunction initAppFactory(appInitService: AXPAppStartUpService) {\n return () => appInitService.runAllTasks();\n}\n\nexport const AXPAppStartUpProvider = provideAppInitializer(() => {\n const initializerFn = initAppFactory(inject(AXPAppStartUpService));\n return initializerFn();\n});\n","import { AXDataSourceOperator, AXStyleColorType } from '@acorex/components/common';\nimport { AXPOptionsData, AXPValidationRules } from '@acorex/platform/core';\nimport { AXPWidgetTypesMap } from '@acorex/platform/layout/builder';\nimport { kebabCase } from 'lodash-es';\nimport { AXPGridLayoutOptions } from '../layout';\n\nexport interface AXEntityPropertyWidget {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path: string;\n id?: string;\n formula?: string;\n children?: AXEntityPropertyWidget[];\n mode: 'view' | 'edit' | 'designer';\n options?: Record<string, any>;\n triggers?: { event: string; action: string; disabled?: boolean }[];\n}\n\nexport enum AXPRelationshipKind {\n Association,\n Composition,\n Aggregation,\n}\n\nexport enum AXPRelationshipCardinality {\n OneToOne,\n OneToMany,\n ManyToMany,\n}\n\nexport interface AXPRelationship {\n id: string;\n from: string;\n to: string;\n kind: AXPRelationshipKind;\n cardinality: AXPRelationshipCardinality;\n}\n\nexport enum AXPEntityCommandScope {\n TypeLevel = 'typeLevel',\n Selected = 'selected',\n Individual = 'individual',\n Section = 'section',\n}\n\nexport enum AXPEntityQueryType {\n Single = 'single',\n List = 'list',\n}\n\nexport interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {\n label?: {\n visible?: boolean;\n };\n order?: number;\n}\n\nexport interface AXPEntityPropertyGroup {\n id: string;\n title: string;\n description?: string;\n permissions?: string[];\n}\n\nexport interface AXPEntityPropertyView {\n name: string;\n permissions?: string[];\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView { }\n\nexport interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {\n defaultValue?: any;\n}\n\nexport interface AXPEntitySectionView {\n id: string;\n description?: string;\n order?: number;\n layout?: AXPEntityPropertyLayoutConfig;\n}\n\nexport interface AXPEntityProperty {\n name: string;\n title: string;\n description?: string;\n groupId?: string;\n reference?: {\n relationId: string;\n };\n schema: {\n dataType: string;\n nullable?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n unique?: {\n enabled: boolean;\n };\n interface?: Partial<AXEntityPropertyWidget>;\n };\n options?: {\n filter?: {\n advance?: {\n enabled?: boolean;\n widget?: AXPOptionsData;\n };\n inline?: {\n enabled?: boolean;\n };\n };\n sort?: {\n enabled?: boolean;\n };\n };\n validations?: AXPValidationRules;\n}\n\nexport interface AXPEntityTableColumn {\n name: string;\n title?: string;\n sort?: {\n enabled?: boolean;\n dir?: 'asc' | 'desc';\n };\n options?: {\n visible?: boolean;\n width?: string;\n dataPath?: string;\n [name: string]: any;\n };\n}\n\nexport interface AXPEntityCommand {\n execute: string | Function; // As runnable expression\n permissions?: string[];\n}\n\nexport interface AXPEntityQuery {\n execute: string | Function; // As runnable expression\n type: AXPEntityQueryType;\n}\n\n\nexport interface AXPEntityAction {\n permissions?: string[];\n command: string;\n title: string;\n type: 'create' | 'update' | 'delete' | 'print' | 'confirm' | 'report' | 'info' | 'view' | 'archive';\n priority: 'primary' | 'secondary';\n color?: 'primary' | 'danger' | 'success' | 'warning';\n separated?: boolean;\n icon?: string;\n scope: AXPEntityCommandScope;\n}\n\nexport interface AXPEntity {\n module: string;\n name: string;\n source: string;\n title: string;\n formats: {\n individual: string;\n plural: string;\n lookup?: string;\n };\n relatedEntities?: AXPRelatedEntity[];\n groups?: AXPEntityPropertyGroup[];\n properties: AXPEntityProperty[];\n columns?: AXPEntityTableColumn[];\n commands?: {\n create: AXPEntityCommand | undefined;\n update?: AXPEntityCommand | undefined;\n delete?: AXPEntityCommand | undefined;\n [name: string]: AXPEntityCommand | undefined;\n };\n queries: {\n byKey: AXPEntityQuery;\n list?: AXPEntityQuery;\n lookup?: AXPEntityQuery;\n history?: AXPEntityQuery;\n comments?: AXPEntityQuery;\n [name: string]: AXPEntityQuery | undefined;\n };\n validations?: AXPValidationRules;\n interfaces?: {\n master?: {\n single?: AXPEntityMasterSingleLayoutView;\n list?: AXPEntityMasterListView;\n create?: AXPEntityMasterCreateLayoutView;\n update?: AXPEntityMasterUpdateLayoutView;\n };\n detail?: {\n list?: AXPEntityDetailListView;\n };\n };\n}\n\nexport function getEntityInfo(entity: AXPEntity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\n\nexport interface AXPRelatedEntity {\n entity: string;\n title?: string;\n columns?: string[];\n conditions?: AXPQueryFilter[];\n // sorts?: AXPQuerySort[];\n}\n\nexport interface AXPAggregate {\n id: string;\n name: string;\n title: string;\n entities: AXPEntity[];\n}\n\nexport interface AXPModule {\n name: string;\n title: string;\n aggregates: AXPAggregate[];\n relationships?: AXPRelationship[];\n}\n\nexport interface AXPApplication {\n name: string;\n title: string;\n modules: AXPModule[];\n}\n\nexport interface AXPEntityMasterLayoutView {\n title?: string;\n sections: AXPEntitySectionView[];\n properties?: AXPEntityPropertyView[];\n}\n\nexport interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {\n steps?: {\n id: string;\n title: string;\n description?: string;\n };\n}\n\nexport interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView { }\n\nexport interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {\n title: string;\n description?: string;\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPEntityMasterListView {\n title?: string;\n description?: string;\n actions?: AXPEntityAction[];\n views: AXPQueryView[];\n}\n\nexport interface AXPEntityDetailListView {\n title?: string;\n description?: string;\n columns: AXPEntityTableColumn[];\n actions?: AXPEntityAction[];\n}\n\nexport interface AXPQueryView {\n name: string;\n fixed: boolean;\n title: string;\n columns: string[];\n conditions: AXPQueryFilter[];\n sorts: AXPQuerySort[];\n indexCol?: boolean;\n pageSize?: number;\n}\n\nexport interface AXPQueryFilter {\n name: string; // entity property name\n operator: AXDataSourceOperator;\n value: any;\n}\n\nexport interface AXPQuerySort {\n name: string; // entity property name\n dir: 'asc' | 'desc';\n}\n\nexport function resolveActionLook(tr: AXPEntityAction): { icon: string; color: AXStyleColorType } {\n switch (tr.type) {\n case 'create':\n return { color: 'primary', icon: 'fa-solid fa-add' };\n case 'view':\n return { color: 'primary', icon: 'fa-solid fa-eye' };\n case 'info':\n return { color: 'primary', icon: 'fa-solid fa-info' };\n case 'delete':\n return { color: 'danger', icon: 'fa-solid fa-trash' };\n case 'print':\n return { color: 'secondary', icon: 'fa-solid fa-print' };\n case 'confirm':\n return { color: 'success', icon: 'fa-solid fa-check' };\n case 'archive':\n return { color: 'primary', icon: 'fa-solid fa-archive' };\n default:\n return { color: 'primary', icon: '' };\n }\n}\n","export interface AXPFilterOperator {\n name: string;\n title: string;\n hasValue: boolean;\n}\n\nexport const EQ_OPER: AXPFilterOperator = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER: AXPFilterOperator = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER: AXPFilterOperator = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER: AXPFilterOperator = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER: AXPFilterOperator = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER: AXPFilterOperator = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER: AXPFilterOperator = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER: AXPFilterOperator = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const STARTS_WITH_OPER: AXPFilterOperator = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER: AXPFilterOperator = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER: AXPFilterOperator = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER: AXPFilterOperator = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER: AXPFilterOperator = { name: 'between', title: 'Between', hasValue: true };\n\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\n\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\n\nexport const ALL_DEFAULT_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n LT_OPER,\n GTE_OPER,\n LTE_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n BETWEEN_OPER,\n];\n","export abstract class AXPDataProvider {\n abstract insertOne(entity: any, entityItem: any): Promise<any>;\n abstract insertMany(entity: any, entityList: any): Promise<any>;\n abstract getOne(entity: any, id: string): Promise<any>;\n abstract getMany(entity: any, params?: any): Promise<any>;\n abstract updateOne(entity: any, id?: string, data?: { [key: string]: any }): Promise<any>;\n abstract deleteOne(entity: any, id: string): Promise<any>;\n abstract getFirst(entity: any): Promise<any>;\n abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;\n abstract updateFile(id:string,file: File, title: string, customUrl?: string): Promise<string>;\n abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;\n abstract viewFile(id: string, name: string): Promise<Blob>;\n abstract downloadFile(id: string, name: string): Promise<Blob>;\n}\n","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPClipBoardService {\n private toast = inject(AXToastService);\n\n public copy(title: string, value: string) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n\n}","export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0]\n if (args.length == 2) {\n min = args[0]\n max = args[1]\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['New York', 'Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n","// AXPPdfService\nimport { inject, Injectable, RendererFactory2 } from '@angular/core';\n\nexport enum AXPPdfPageSize {\n A4 = 'a4',\n A5 = 'a5',\n Letter = 'letter',\n Legal = 'legal',\n Custom = 'custom' // Handle custom sizes\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPPdfService {\n private renderer = inject(RendererFactory2).createRenderer(null, null);\n\n async generatePdfBlob(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<string> {\n const { jsPDF } = await import('jspdf');\n const html2canvas = (await import('html2canvas')).default;\n\n const element = typeof div === 'string' ? document.getElementById(div) : div;\n\n if (!element) {\n console.error('Element not found.');\n return Promise.reject('Element not found.');\n }\n\n const { pageSize = AXPPdfPageSize.A4 } = options;\n let pdf;\n\n if (typeof pageSize === 'string' && pageSize !== AXPPdfPageSize.Custom) {\n pdf = new jsPDF({\n orientation: 'portrait',\n format: pageSize\n });\n } else if (typeof pageSize !== 'string') {\n const { width, height } = pageSize;\n pdf = new jsPDF({\n orientation: 'portrait',\n unit: 'pt',\n format: [width, height]\n });\n } else {\n return Promise.reject(\"Invalid page size.\");\n }\n\n const canvas = await html2canvas(element);\n const imageData = canvas.toDataURL('image/png');\n const imgProps = pdf.getImageProperties(imageData);\n const pdfWidth = pdf.internal.pageSize.getWidth();\n const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;\n\n pdf.addImage(imageData, 'PNG', 0, 0, pdfWidth, pdfHeight);\n return pdf.output('bloburl') as any as string;\n }\n\n async printPdf(div: string | HTMLElement, options: { pageSize?: AXPPdfPageSize | { width: number, height: number } } = {}): Promise<void> {\n const blobUrl = await this.generatePdfBlob(div, options).catch(err => {\n console.error('Failed to generate PDF', err);\n return null;\n });\n\n if (!blobUrl) return;\n\n const iframe = this.renderer.createElement('iframe');\n this.renderer.setStyle(iframe, 'display', 'none');\n this.renderer.appendChild(document.body, iframe);\n\n iframe.src = blobUrl;\n iframe.onload = () => {\n setTimeout(() => {\n iframe.contentWindow.print();\n }, 1000);\n };\n\n // Add a button or some UI element that allows the user to manually signal they are done printing\n // const finishButton = this.renderer.createElement('button');\n // this.renderer.setProperty(finishButton, 'innerText', 'Finish Printing');\n // this.renderer.listen(finishButton, 'click', () => {\n // this.renderer.removeChild(document.body, iframe);\n // this.renderer.removeChild(document.body, finishButton);\n // });\n // this.renderer.appendChild(document.body, finishButton);\n }\n}\n","import { applyFilterArray, applySortArray } from '@acorex/platform/core';\nimport Dexie from 'dexie';\nimport { AXPDataGenerator } from '../utils';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\nimport { AXPEntityStorageService } from './entity-storage-service';\n\nexport class AXPDexieEntityStorageService extends Dexie implements AXPEntityStorageService<string, any> {\n constructor() {\n super('ACoreXPlatform');\n this.version(1).stores({\n 'entity-store': '++id, entityName, [entityName+id]',\n });\n }\n\n get dbName(): string {\n return 'ACoreXPlatform';\n }\n\n async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n const exists = await this.table('entity-store').where({ entityName }).count();\n if (exists === 0) {\n await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));\n }\n }\n\n async getOne<T = any>(entityName: string, id: string): Promise<T> {\n return await this.table('entity-store').where({ entityName, id: id }).first();\n }\n\n async updateOne<T = any>(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<T> {\n await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);\n return await this.getOne(entityName, id);\n }\n\n async deleteOne(entityName: string, id: string): Promise<void> {\n await this.table('entity-store').where({ entityName, id: id }).delete();\n }\n\n async insertOne<T = any>(entityName: string, entity: T): Promise<string> {\n const uuid = AXPDataGenerator.uuid();\n await this.table('entity-store').add({ ...entity, id: uuid, entityName });\n return uuid;\n }\n\n async getAll<T = any>(entityName: string): Promise<T[]> {\n return await this.table('entity-store').where({ entityName }).toArray();\n }\n\n async query<T = any>(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<T>> {\n let result = await this.table('entity-store').where({ entityName }).toArray();\n\n if (request.sort && request.sort.length) {\n result = applySortArray(result, request.sort);\n }\n result = applyFilterArray(result, request.filter ? [request.filter] : []);\n\n return Promise.resolve({\n total: result.length,\n items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),\n });\n }\n}\n\n// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {\n// private schemaUpdateLock: Promise<void> = Promise.resolve();\n\n// constructor() {\n// super('ACoreXPlatform');\n// // Initial empty version\n// //this.version(1).stores({});\n// }\n\n// // Function to change the schema dynamically\n// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {\n// // Acquire schema update lock to ensure no other operations are performed while schema is changing\n// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {\n// console.log('Attempting schema change with:', schemaChanges);\n\n// try {\n// this.close();\n\n// const newDb = new Dexie(this.name);\n\n// // Extract current schema in Dexie format\n// const currentSchema = this.tables.reduce((result, { name, schema }) => {\n// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');\n// return result;\n// }, {} as { [tableName: string]: string });\n\n// console.log('Current Schema:', currentSchema);\n\n// // Define current schema version\n\n// newDb.version(this.verno + 10).stores(currentSchema);\n\n// // Define new schema version with schema changes\n// const nextVersion = this.verno + 1;\n// newDb.version(nextVersion).stores(schemaChanges);\n// await newDb.open();\n\n// // Reassign updated db instance\n// Object.assign(this, newDb);\n// console.log(`Schema updated. Current version: ${this.verno}`);\n// } catch (error) {\n// console.error('Error during schema change:', error);\n// throw error;\n// }\n// });\n\n// // Wait for schema change lock to complete\n// await this.schemaUpdateLock;\n// }\n\n// private async ensureInitialized(entityName: string): Promise<void> {\n// if (this.tables.findIndex((table) => table.name === entityName) == -1) {\n// const schemaChanges: { [tableName: string]: string } = {};\n// schemaChanges[entityName] = '++id';\n// await this.changeSchema(schemaChanges);\n// }\n// }\n\n// get dbName(): string {\n// return 'ACoreXPlatform';\n// }\n\n// private async getTable<T>(entityName: string) {\n// await this.ensureInitialized(entityName);\n// return this.table<T, number>(entityName);\n// }\n\n// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// const exists = await table.count();\n// if (exists === 0) {\n// await table.bulkAdd(collection);\n// }\n// }\n\n// async getOne<T = any>(entityName: string, id: string): Promise<T> {\n// const table = await this.getTable<T>(entityName);\n// return (await table.where({ id: parseInt(id) }).first()) as T;\n// }\n\n// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.update(parseInt(id), keyValue);\n// }\n\n// async deleteOne(entityName: string, id: string): Promise<void> {\n// const table = await this.getTable(entityName);\n// await table.delete(parseInt(id));\n// }\n\n// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {\n// const table = await this.getTable<T>(entityName);\n// await table.add(entity);\n// }\n\n// async getAll<T = any>(entityName: string): Promise<T[]> {\n// const table = await this.getTable<T>(entityName);\n// return await table.toArray();\n// }\n// }\n","import { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPDataSeeder {\n seed(): Promise<void>;\n}\n\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken<AXPDataSeeder>('AXP_DATA_SEEDER_TOKEN');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDataSeederService {\n private loader = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n\n async seed(): Promise<void> {\n if (Array.isArray(this.loader)) {\n for (const loader of this.loader) {\n await loader.seed();\n }\n } else {\n await this.loader?.seed();\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { AXPPagedListResult, AXPQueryRequest } from './data.types';\n\nexport interface AXPEntityModel<Id> {\n id?: Id;\n}\n\nexport abstract class AXPEntityStorageService<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get dbName(): string;\n\n abstract initial(entityName: string, collection: T[]): Promise<void>;\n\n abstract getOne(entityName: string, id: K): Promise<RGetSingle>;\n\n abstract updateOne(entityName: string, id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(entityName: string, id: K): Promise<void>;\n\n abstract insertOne(entityName: string, entity: RCreate): Promise<K>;\n\n abstract getAll(entityName: string): Promise<RGetList[]>;\n\n abstract query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport abstract class AXPEntityDataProvider<\n K,\n T extends AXPEntityModel<K>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract get entityName(): string;\n\n abstract initial(collection: T[]): Promise<void>;\n\n abstract getOne(id: K): Promise<RGetSingle>;\n\n abstract getAll(): Promise<RGetList[]>;\n\n abstract updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle>;\n\n abstract deleteOne(id: K): Promise<void>;\n\n abstract insertOne(entity: RCreate): Promise<K>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXPEntityDataProviderImpl<\n K = any,\n T extends AXPEntityModel<K> = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> implements AXPEntityDataProvider<K, T, RCreate, RGetSingle, RGetList> {\n constructor(\n private storageService: AXPEntityStorageService<K, T, RCreate, RGetSingle, RGetList>,\n public entityName: string\n ) { }\n\n async initial(collection: T[]): Promise<void> {\n await this.storageService.initial(this.entityName, collection);\n }\n\n getOne(id: K): Promise<RGetSingle> {\n return this.storageService.getOne(this.entityName, id);\n }\n\n getAll(): Promise<RGetList[]> {\n return this.storageService.getAll(this.entityName);\n }\n\n query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>> {\n return this.storageService.query(this.entityName, request);\n }\n\n updateOne(id: K, keyValue: { [key: string]: any }): Promise<RGetSingle> {\n return this.storageService.updateOne(this.entityName, id, keyValue);\n }\n\n deleteOne(id: K): Promise<void> {\n return this.storageService.deleteOne(this.entityName, id);\n }\n\n insertOne(entity: RCreate): Promise<K> {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\n\nexport abstract class AXMEntityCrudService<\n Id = string,\n T = any,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n abstract insertOne(request: RCreate): Promise<Id>;\n\n abstract getOne(id: Id): Promise<RGetSingle>;\n\n abstract deleteOne(id: Id): Promise<void>;\n\n abstract updateOne(id: Id, values: { [key: string]: any }): Promise<void>;\n\n abstract query(request: AXPQueryRequest): Promise<AXPPagedListResult<RGetList>>;\n}\n\nexport class AXMEntityCrudServiceImpl<\n Id,\n T extends AXPEntityModel<Id>,\n RCreate = Omit<T, 'id'>,\n RGetSingle = T,\n RGetList = RGetSingle\n> {\n private _storageService = inject(AXPEntityStorageService);\n private _entityDataProvider = new AXPEntityDataProviderImpl<Id, T, RCreate, RGetSingle, RGetList>(\n this._storageService,\n this.entityName\n );\n\n constructor(private entityName: string) { }\n\n async insertOne(request: RCreate): Promise<Id> {\n return this._entityDataProvider.insertOne(request);\n }\n\n async getOne(id: Id): Promise<RGetSingle> {\n return this._entityDataProvider.getOne(id);\n }\n\n async deleteOne(id: Id): Promise<void> {\n return this._entityDataProvider.deleteOne(id);\n }\n\n async updateOne(id: Id, values: { [key: string]: any }): Promise<RGetSingle> {\n return this._entityDataProvider.updateOne(id, values);\n }\n\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<RGetList>> {\n return this._entityDataProvider.query(request);\n }\n\n // get entityDataProvider() {\n // return this._entityDataProvider;\n // }\n\n get storageService() {\n return this._storageService;\n }\n}\n","import { AXDataSourceOperator } from '@acorex/components/common';\nimport { Injectable } from '@angular/core';\n\nexport abstract class AXPCustomOperatorService {\n abstract getCustomOperators(): { [key: string]: AXDataSourceOperator };\n}\n\n@Injectable()\nexport class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {\n getCustomOperators(): { [key: string]: AXDataSourceOperator } {\n return {};\n }\n}\n","import { AXDataSourceFilterOption, AXDataSourceOperator } from '@acorex/components/common';\nimport { inject, Injectable } from '@angular/core';\nimport { ALL_DEFAULT_OPERATORS } from '../app';\nimport { AXPCustomOperatorService } from './operators.service';\n\nexport abstract class AXPFilterOperatorMiddlewareService {\n /**\n * Middleware to transform selected filters into corresponding operators.\n * @param filters Array of selected filters (e.g., user input).\n * @param customOperators Optional custom operators map to override default operators.\n * @returns Transformed filters based on custom or default operators.\n */\n abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];\n\n /**\n * Helper method to transform a single filter. This handles recursion for nested filters.\n * @param filter A single filter object.\n * @returns Transformed filter.\n */\n abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;\n\n abstract getOperator(key: string): AXDataSourceOperator;\n}\n\n@Injectable()\nexport class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {\n private customOperatorService = inject(AXPCustomOperatorService);\n\n private operators: { [key: string]: AXDataSourceOperator } = {\n ...this.getDefaultOperators(),\n ...this.customOperatorService.getCustomOperators(),\n };\n\n transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[] {\n return filters.map((filter) => this.transformFilter(filter));\n }\n\n transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption {\n console.log(filter);\n const { operator, value, filters, field } = filter;\n // Find the operator (either default or custom)\n const filterOperator = this.operators[operator?.type] || null;\n\n // Start by transforming the filter itself\n const transformedFilter: AXDataSourceFilterOption = {\n ...filter, // Keep the original filter structure\n operator: filterOperator ? filterOperator : operator, // Add operator name\n };\n\n // If the filter contains nested filters, recursively transform them\n if (filters && filters.length > 0) {\n transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters\n }\n\n return transformedFilter;\n }\n\n getOperator(key: string) {\n return this.operators[key];\n }\n\n // Helper function to return the default operators\n private getDefaultOperators(): { [key: string]: AXDataSourceOperator } {\n return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {\n acc[operator.name] = {\n type: operator.name as any,\n };\n return acc;\n }, {} as { [key: string]: AXDataSourceOperator });\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandler } from \"./error-handler.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPErrorHandlerRegistryService {\n private errorHandlers: AXPErrorHandler[] = [];\n\n constructor(private injector: Injector) {\n }\n\n register(...plugins: (new () => AXPErrorHandler)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n })\n }\n\n\n public get handlers(): AXPErrorHandler[] {\n return this.errorHandlers;\n }\n}","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\n\n@Injectable({ providedIn: 'root' })\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n\n\n\n constructor(private injector: Injector, private registry: AXPErrorHandlerRegistryService) {\n super()\n }\n\n override handleError(error: Error) {\n const handleErrorRecursively = (index: number, error: any) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n } else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return\n }\n handleErrorRecursively(0, error);\n }\n}\n","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport {\n AXPGroupDetails,\n AXPSettingDefinitionGroup,\n AXPSettingDefinitionItem,\n AXPSettingDefinitionProviderContext,\n AXPSettingDefinitionSection,\n} from './settings.types';\n\n// Interface for setting providers\nexport interface AXPSettingDefinitionProvider {\n provide(context: AXPSettingDefinitionProviderContext): Promise<void>;\n}\n\n// Injection token for setting providers\nexport const AXP_SETTING_PROVIDER = new InjectionToken<AXPSettingDefinitionProvider[]>('AXP_SETTING_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPSettingDefinitionProviderService {\n private providers = inject(AXP_SETTING_PROVIDER, { optional: true });\n private cache: AXPSettingDefinitionItem[] | null = null;\n private pendingInserts: Array<{\n target: string;\n newItems: AXPSettingDefinitionItem[];\n position: 'before' | 'after';\n }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPSettingDefinitionItem[] }> = [];\n\n // Retrieve all setting items, applying any pending operations\n public async items(): Promise<AXPSettingDefinitionItem[]> {\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPSettingDefinitionItem[] = [];\n const context = this.createProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n provider.provide(context);\n }\n }\n // this.applyPendingOperations(items);\n this.cache = items;\n return items;\n }\n\n public findGroupDetails(groupName: string): AXPGroupDetails | null {\n if (this.cache) {\n return this.searchGroupDetails(this.cache, groupName, []); // Initialize with an empty breadcrumb\n }\n return null;\n }\n\n private searchGroupDetails(\n groups: AXPSettingDefinitionGroup[],\n groupName: string,\n breadcrumb: { name: string; title: string }[]\n ): {\n breadcrumb: { name: string; title: string }[];\n sections: AXPSettingDefinitionSection[] | null;\n childGroups: AXPSettingDefinitionGroup[] | null;\n } | null {\n for (const group of groups) {\n const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title }];\n\n // If the group name matches, return its details\n if (group.name === groupName) {\n return {\n breadcrumb: currentBreadcrumb,\n sections: group.sections.length > 0 ? group.sections : null,\n childGroups: group.groups.length > 0 ? group.groups : null,\n };\n }\n\n // Recursively search in nested groups\n const nestedResult = this.searchGroupDetails(group.groups, groupName, currentBreadcrumb);\n if (nestedResult) {\n return nestedResult;\n }\n }\n\n // If no matching group is found\n return null;\n }\n\n // Create the provider context with methods to add items and find existing ones\n private createProviderContext(items: AXPSettingDefinitionItem[]): AXPSettingDefinitionProviderContext {\n return {\n addItems: (newItems: AXPSettingDefinitionItem[]) => {\n items.push(...newItems);\n },\n addItem: (item: AXPSettingDefinitionItem) => {\n items.push(item);\n },\n addGroup: (group: AXPSettingDefinitionGroup) => {\n items.push(group);\n },\n // find: (target: string): AXPSettingDefinitionFinderResult => {\n // return {\n // insertGroup: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingle: (item, position) => {\n // this.pendingInserts.push({ target, newItems: [item], position });\n // },\n // insertSingles: (items, position) => {\n // this.pendingInserts.push({ target, newItems: items, position });\n // },\n // addItems: (items) => {\n // this.pendingAdditions.push({ target, newItems: items });\n // },\n // addChildSingleAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.singles.length) {\n // group.singles.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for singles.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildSingleLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.singles.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child single.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child single.`);\n // }\n // },\n // addChildGroupAt: (item, index) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // if (index >= 0 && index <= group.groups.length) {\n // group.groups.splice(index, 0, item);\n // } else {\n // console.warn(`Index \"${index}\" is out of bounds for groups.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupFirst: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.unshift(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // addChildGroupLast: (item) => {\n // const foundItemInfo = this.findItemWithParent(this.cache || [], target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(item);\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add a child group.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding a child group.`);\n // }\n // },\n // };\n // },\n };\n }\n\n // private applyPendingOperations(items: AXPSettingDefinitionItem[]): void {\n // // Process pending insertions\n // for (const { target, newItems, position } of this.pendingInserts) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem, parentItems } = foundItemInfo;\n // const index = parentItems.indexOf(foundItem);\n // const insertIndex = position === 'before' ? index : index + 1;\n // parentItems.splice(insertIndex, 0, ...newItems);\n // } else {\n // console.warn(`Target \"${target}\" not found for insertion.`);\n // }\n // }\n\n // // Process pending additions\n // for (const { target, newItems } of this.pendingAdditions) {\n // const foundItemInfo = this.findItemWithParent(items, target);\n // if (foundItemInfo && foundItemInfo.foundItem) {\n // const { foundItem } = foundItemInfo;\n // if (foundItem.type === AXPSettingDefinitionItemType.Group) {\n // const group = foundItem as AXPSettingDefinitionGroup;\n // group.groups.push(\n // ...(newItems.filter(\n // (item) => item.type === AXPSettingDefinitionItemType.Group\n // ) as AXPSettingDefinitionGroup[])\n // );\n // group.singles.push(\n // ...(newItems.filter((item) => item.type === AXPSettingDefinitionItemType.Single) as AXPSettingDefinition[])\n // );\n // } else {\n // console.warn(`Target \"${target}\" is not a group; cannot add items.`);\n // }\n // } else {\n // console.warn(`Target \"${target}\" not found for adding items.`);\n // }\n // }\n\n // // Clear pending operations after applying them\n // this.pendingInserts = [];\n // this.pendingAdditions = [];\n // }\n\n // private findItemWithParent(\n // items: AXPSettingDefinitionItem[],\n // target: string,\n // parentItems: AXPSettingDefinitionItem[] = items\n // ): { foundItem: AXPSettingDefinitionItem; parentItems: AXPSettingDefinitionItem[] } | null {\n // for (const item of items) {\n // if (item.name === target) {\n // return { foundItem: item, parentItems };\n // }\n\n // if (item.type === AXPSettingDefinitionItemType.Group) {\n // const group = item as AXPSettingDefinitionGroup;\n\n // // Search within child groups\n // const groupResult = this.findItemWithParent(group.groups, target, group.groups);\n // if (groupResult) {\n // return groupResult;\n // }\n\n // // Search within child singles\n // const singleResult = this.findItemWithParent(group.singles, target, group.singles);\n // if (singleResult) {\n // return singleResult;\n // }\n // }\n // }\n // return null;\n // }\n}\n","import { AXPSettingValue } from \"./settings.types\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport interface AXPSettingsProvider {\n load(): Promise<AXPSettingValue[]>\n set(key: string, value: any): Promise<void>\n}\n\n\nexport const AXP_SETTINGS_PROVIDER = new InjectionToken<AXPSettingsProvider>('AXP_SETTINGS_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPSettingsProviderDefault();\n }\n});\n\n\nclass AXPSettingsProviderDefault implements AXPSettingsProvider {\n private readonly cache: Map<string, any> = new Map();\n private localStorageKey: string = 'AXP_SETTINGS';\n\n async load(): Promise<AXPSettingValue[]> {\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings: Record<string, any> = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n\n async set(key: string, value: any): Promise<void> {\n this.cache.set(key, value)\n // Save to localStorage as a single key\n const settingsObject: Record<string, AXPSettingValue> = {};\n this.cache.forEach((val, k) => {\n settingsObject[k] = val;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXP_SETTINGS_PROVIDER, AXPSettingsProvider } from './settings.provider';\nimport { AXPSettingValue } from './settings.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSettingsService {\n private readonly settingsProvider = inject<AXPSettingsProvider>(AXP_SETTINGS_PROVIDER);\n private settingsCache: Map<string, any> = new Map<string, any>();\n\n public readonly changed = new Subject<AXPSettingValue>();\n\n async load(): Promise<AXPSettingValue[]> {\n try {\n const settingsList = await this.settingsProvider.load();\n this.settingsCache.clear();\n settingsList.forEach((setting) => {\n this.settingsCache.set(setting.key, setting.value);\n });\n return settingsList;\n } catch (error) {\n console.error('Error loading settings', error);\n throw error; // Re-throw or handle it appropriately\n }\n }\n\n async get<T = any>(key: string): Promise<T> {\n if (this.settingsCache.size == 0) {\n await this.load();\n }\n return cloneDeep(this.settingsCache.get(key)) as T;\n }\n\n async set<T = any>(key: string, value: T): Promise<void> {\n if (this.settingsCache.has(key)) {\n this.settingsCache.set(key, value);\n await this.settingsProvider.set(key, value);\n this.changed.next({ key, value });\n } else {\n console.warn(`Setting with key \"${key}\" not found.`);\n this.settingsCache.set(key, value);\n this.set(key, value);\n }\n }\n}\n","import { NavigationExtras } from '@angular/router';\nimport { createAction, props } from '@ngrx/store';\n\nexport const AXPNavigateAction = createAction(\n '[Navigate] Action',\n props<{ payload: { commands: string | any[]; extras?: NavigationExtras } }>()\n);\nexport const AXPSignOutAction = createAction('[SignOut] Action');\nexport const AXPSignInAction = createAction('[SignIn] Action');\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { of, switchMap } from 'rxjs';\nimport { AXPSettingsService } from '../settings';\nimport { AXPNavigateAction } from './common.actions';\n\n@Injectable()\nexport class AXPCommonEffects {\n constructor(private actions$: Actions, private router: Router, private settingService: AXPSettingsService) {}\n\n command$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(AXPNavigateAction),\n switchMap((action) => {\n if (Array.isArray(action.payload.commands))\n this.router.navigate(action.payload.commands, action.payload.extras);\n else {\n if (action.payload.commands.toLowerCase().startsWith('http'))\n window.open(action.payload.commands, '_blank');\n else this.router.navigate([action.payload.commands], action.payload.extras);\n }\n return of();\n })\n ),\n { dispatch: false }\n );\n}\n","import { AXStyleColorType } from '@acorex/components/common';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n//TODO Loading, Redirect, Drawer, Show toast\n\nexport const AXPRedirectEvent = createWorkFlowEvent<{ url: string }>('Redirect Event Fired');\n\n@Injectable()\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n private router = inject(Router);\n async execute(context: AXPWorkflowContext): Promise<void> {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == \"blank\") {\n window.open(payload.commands, '_blank');\n }\n else this.router.navigate([payload.commands], payload.extras);\n }\n }\n}\n\n@Injectable()\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n\n title!: string;\n message!: string;\n type!: AXStyleColorType;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync(this.title),\n await this.translationService.translateAsync(this.message),\n (await this.translationService.translateAsync(this.type)) as AXStyleColorType\n );\n context.setOutput('result', dialogResult.result);\n }\n}\n\n@Injectable()\nexport class AXPToastAction extends AXPWorkflowAction {\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n color!: AXStyleColorType;\n title!: string;\n content!: string;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n}\n","import { Injectable, NgZone, inject, isDevMode } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport { AXPErrorHandler } from \"../errors\";\n\n@Injectable()\nexport class AXMWorkflowErrorHandler implements AXPErrorHandler {\n private dialog = inject(AXDialogService);\n\n\n handleError(error: any, next: (error: any) => void): void {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n } else {\n next(error);\n }\n }\n}","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, Inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { AXPAppStartUpProvider, AXPAppStartUpService } from './app/app-startup.service';\nimport {\n AXPCustomOperatorService,\n AXPCustomOperatorServiceImpl,\n AXPDataSeederService,\n AXPFilterOperatorMiddlewareService,\n AXPFilterOperatorMiddlewareServiceImpl,\n} from './data';\nimport { AXPErrorHandler, AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPSettingsService } from './settings';\nimport { AXPCommonEffects } from './store';\nimport { AXPDialogConfirmAction, AXPToastAction } from './workflows';\n\nexport interface AXPCommonModuleConfigs {\n errorHandlers: (new () => AXPErrorHandler)[];\n}\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([AXPCommonEffects]),\n AXPWorkflowModule.forChild({\n actions: {\n navigate: AXPDialogConfirmAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n ],\n})\nexport class AXPCommonModule {\n static forRoot(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule> {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry: AXPErrorHandlerRegistryService) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(\n @Inject('AXPCommonModuleFactory') instances: any[],\n appInitService: AXPAppStartUpService,\n settingsService: AXPSettingsService,\n seederService: AXPDataSeederService\n ) {\n instances.forEach((f) => {\n f();\n });\n\n // appInitService.registerTask({\n // name: 'Modules',\n // statusText: 'Initializing Modules ...',\n // run: () =>\n // new Promise<void>((resolve) => {\n // setTimeout(() => {\n // resolve();\n // }, 250);\n // }),\n // });\n //\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n run: async () => {\n await settingsService.load();\n },\n });\n //\n //\n appInitService.registerTask({\n name: 'Seeder',\n statusText: 'Seed Data ...',\n run: async () => {\n await seederService.seed();\n },\n });\n }\n}\n","import { Type } from '@angular/core';\n\nexport interface AXPLogoConfig {}\nexport class AXPTextLogoConfig implements AXPLogoConfig {\n constructor(public text: string) {}\n}\nexport class AXPImageUrlLogoConfig implements AXPLogoConfig {\n constructor(public url: string) {}\n}\nexport class AXPFontIconLogoConfig implements AXPLogoConfig {\n constructor(public iconClass: Type<any>) {}\n}\n\nexport class AXPComponentLogoConfig implements AXPLogoConfig {\n constructor(public component: Type<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLogoConfig, AXPTextLogoConfig } from '../layout/logo/logo.types';\n\nexport const ENVIRONMENT = new InjectionToken<any>('ENVIRONMENT');\n\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken<AXPPlatformConfigs>('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\n\nexport interface AXPPlatformConfigs {\n title?: string;\n copyright?: string;\n logo?: {\n dark?: AXPLogoConfig;\n light?: AXPLogoConfig;\n colored?: AXPLogoConfig;\n };\n useLocalData: boolean;\n network?: {\n timeOut?: number;\n };\n}\n\nexport const AXPPlatformDefaultConfigs: AXPPlatformConfigs = {\n copyright: 'ACoreX @ 2023',\n title: 'ACoreX Platform',\n logo: {\n dark: new AXPTextLogoConfig('ACoreX'),\n light: new AXPTextLogoConfig('ACoreX'),\n colored: new AXPTextLogoConfig('ACoreX'),\n },\n useLocalData: false,\n network: {\n timeOut: 5000,\n }\n};\n\nexport function configPlatform(config: Partial<AXPPlatformConfigs> = AXPPlatformDefaultConfigs): AXPPlatformConfigs {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken<AXPRootConfigs>('AXP_ROOT_CONFIG_TOKEN');\n\nexport interface AXPRootConfigs {\n baseUrl: string;\n}","// src/app/directives/grid-layout.directive.ts\n\nimport { Directive, Input, ElementRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\nimport { AXPGridLayoutOptions, AXPGridLayoutPositions } from './grid-layout.types';\n\n@Directive({\n selector: '[gridLayout]',\n standalone: true,\n})\nexport class AXPGridLayoutDirective implements OnChanges {\n @Input('gridLayout') options: AXPGridLayoutOptions;\n\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n\n private applyTailwindClasses(): void {\n // Clear existing grid classes\n this.clearClasses();\n\n // Apply new grid classes based on the input options\n this.setClasses(this.options.positions?.default, '');\n this.setClasses(this.options.positions?.md, 'md:');\n this.setClasses(this.options.positions?.lg, 'lg:');\n this.setClasses(this.options.positions?.xl, 'xl:');\n this.setClasses(this.options.positions?.xxl, '2xl:');\n }\n\n private setClasses(positions: AXPGridLayoutPositions | undefined, prefix: string): void {\n if (positions == null) return;\n\n const colStart = positions.colStart ? `${prefix}ax-col-start-${positions.colStart}` : '';\n const colEnd = positions.colEnd ? `${prefix}ax-col-end-${positions.colEnd}` : '';\n const colSpan = positions.colSpan ? `${prefix}ax-col-span-${positions.colSpan}` : '';\n const rowStart = positions.rowStart ? `${prefix}ax-row-start-${positions.rowStart}` : '';\n const rowEnd = positions.rowEnd ? `${prefix}ax-row-end-${positions.rowEnd}` : '';\n const rowSpan = positions.rowSpan ? `${prefix}ax-row-span-${positions.rowSpan}` : '';\n const order = positions.order ? `${prefix}ax-order-${positions.order}` : ''; // Handling order\n\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n\n private clearClasses(): void {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className: string) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true,\n})\nexport class AXPStickyDirective {\n @Input('axpSticky')\n stickyClass!: string;\n\n @Input('stickyOffset')\n stickyOffset: number = 100;\n\n @Output()\n public isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky: boolean = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(v: boolean) {\n this._isSticky = v;\n this.isStickyChange.emit(v);\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n constructor(\n private element: ElementRef<HTMLDivElement>,\n private renderer: Renderer2,\n private zone: NgZone,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n this.targetElement = (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n this.topOffset = this.targetElement.offsetTop;\n this.parentElement.addEventListener('scroll', this.onParentScroll.bind(this));\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollPosition =\n this.parentElement === window\n ? window.scrollY\n : (this.parentElement as HTMLElement).scrollTop + this.targetElement.offsetTop;\n if (scrollPosition - this.stickyOffset >= this.topOffset && !this.isSticky) {\n this.isSticky = true;\n this.stickyClass.split(' ').forEach((c) => {\n if (c) {\n this.renderer.addClass(this.targetElement, c);\n }\n });\n this.cdr.markForCheck();\n } else if (scrollPosition <= this.topOffset && this.isSticky) {\n this.stickyClass.split(' ').forEach((c) => {\n if (c) {\n this.renderer.removeClass(this.targetElement, c);\n }\n });\n this.isSticky = false;\n this.cdr.markForCheck();\n }\n });\n };\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPComponentSlotConfig } from \"./component-slot.types\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPComponentSlotRegistryService {\n\n private registry = new Map<string, AXPComponentSlotConfig[]>();\n\n register(slotName: string, config: AXPComponentSlotConfig) {\n let configs = this.registry.get(slotName) || [];\n\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n\n get(slotName: string): AXPComponentSlotConfig[] {\n return this.registry.get(slotName) || [];\n }\n}","import { Injectable, Injector, Type, ViewContainerRef, runInInjectionContext } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPComponentSlotLoaderService {\n constructor(private registryService: AXPComponentSlotRegistryService, private injector: Injector) {}\n\n loadComponent(slotName: string, viewContainerRef: ViewContainerRef) {\n const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);\n if (configs) {\n viewContainerRef.clear();\n configs.forEach(async (config) => {\n let component!: Type<any> | null | undefined;\n let options: { [key: string]: unknown } = {};\n if (typeof config.loadComponent === 'function') {\n // If component is a function\n runInInjectionContext(this.injector, () => {\n component = config.loadComponent?.();\n });\n } else if (config.component) {\n // If component is a Type\n component = config.component;\n }\n //\n if (typeof config.options === 'function') {\n // If options is a function\n runInInjectionContext(this.injector, () => {\n const fun = config.options as Function;\n options = fun();\n });\n } else if (config.options) {\n // If options is a object\n options = config.options;\n }\n //\n if (component != null) {\n const componentRef = viewContainerRef.createComponent(component);\n Object.assign(componentRef.instance, options);\n }\n });\n }\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\nimport { AXPComponentSlotLoaderService } from './component-slot-loader.service';\n\n@Directive({\n selector: 'axp-component-slot',\n standalone: false\n})\nexport class AXPComponentSlotDirective implements OnInit {\n @Input()\n name!: string;\n\n constructor(private dynamicLoaderService: AXPComponentSlotLoaderService, public viewContainerRef: ViewContainerRef) { }\n\n ngOnInit() {\n this.dynamicLoaderService.loadComponent(this.name, this.viewContainerRef);\n }\n}","import { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotModuleConfigs } from './component-slot.types';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\n\n@NgModule({\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n})\nexport class AXPComponentSlotModule {\n\n static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule> {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry: AXPComponentSlotRegistryService) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n })\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPComponentSlotModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\n\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AXPComponentLogoConfig, AXPFontIconLogoConfig, AXPImageUrlLogoConfig, AXPTextLogoConfig } from './logo.types';\n\n@Component({\n selector: 'axp-logo',\n templateUrl: `logo.component.html`,\n imports: [CommonModule, AXImageModule, AXDecoratorModule],\n host: { 'class': 'ax-flex ax-justify-center' }\n})\nexport class AXPLogoComponent {\n\n @Input()\n source!: any;\n\n protected logoType!: string;\n\n ngOnInit(): void {\n switch (true) {\n case this.source instanceof AXPTextLogoConfig:\n this.logoType = 'text';\n break;\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPFontIconLogoConfig:\n this.logoType = 'iconClass';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n}\n","@switch (logoType) {\n@case ('text') {\n<span class=\"ax-font-bold ax-select-none\">{{ source.text }}</span>\n}\n@case ('url') {\n<ax-image [src]=\"source.url\"></ax-image>\n} @case ('iconClass') {\n<ax-icon class=\"{{ source.classIcon }}\"></ax-icon>\n} @case ('component') {\n<ng-container *ngComponentOutlet=\"source.component\"></ng-container>\n}\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPMenuFinderResult, AXPMenuItem, AXPMenuProviderContext } from './menu.types';\n\nexport interface AXPMenuProvider {\n provide(context: AXPMenuProviderContext): Promise<void>;\n}\n\nexport const AXP_MENU_PROVIDER = new InjectionToken<AXPMenuProvider[]>('AXP_MENU_PROVIDER');\n\n@Injectable({ providedIn: 'root' })\nexport class AXPMenuProviderService {\n\n private providers = inject(AXP_MENU_PROVIDER, { optional: true });\n private cache: AXPMenuItem[] | null = null;\n private pendingInserts: Array<{ target: string; newItems: AXPMenuItem[]; position: 'before' | 'after' }> = [];\n private pendingRemovals: string[] = [];\n private pendingUpdates: Array<{ target: string; updatedItem: Partial<AXPMenuItem> }> = [];\n private pendingAdditions: Array<{ target: string; newItems: AXPMenuItem[] }> = [];\n\n async items(): Promise<AXPMenuItem[]> {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n\n const items: AXPMenuItem[] = [];\n const context = this.createMenuProviderContext(items);\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n\n // Apply pending operations\n this.applyPendingOperations(items);\n\n // Cache the computed items\n this.cache = items;\n return items;\n }\n\n private createMenuProviderContext(items: AXPMenuItem[]): AXPMenuProviderContext {\n return {\n addItems: (newItems: AXPMenuItem[]) => {\n items.push(...newItems);\n },\n find: (target: string): AXPMenuFinderResult => {\n return {\n insert: (newItems: AXPMenuItem[], position: 'before' | 'after') => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem: Partial<AXPMenuItem>) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems: AXPMenuItem[]) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n\n private applyPendingOperations(items: AXPMenuItem[]): void {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n } else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n } else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n } else {\n Object.assign(foundItem, updatedItem);\n }\n }\n\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n } else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n\n private findItemWithParent(items: AXPMenuItem[], target: string, parentItems: AXPMenuItem[] = items): { foundItem: AXPMenuItem | null, parentItems: AXPMenuItem[] } {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n\n // Method to clear the cache, if needed (e.g., when providers change)\n clearCache(): void {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n}\n","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuItem } from './menu.types';\nimport { AXPMenuProviderService } from './menu.provider';\nimport { Store } from '@ngrx/store';\nimport { AXPNavigateAction } from '../../store';\n\nexport const AXPMenuService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState((router = inject(Router)) => {\n return {\n items: [] as AXPMenuItem[],\n selectedMenuItem: {\n item: null as AXPMenuItem | null,\n isFullMatch: false\n },\n };\n }),\n\n // Methods for State Management\n withMethods((store, router = inject(Router), globalStore = inject(Store)) => {\n\n\n return {\n\n setMenuItems(items: AXPMenuItem[]): void {\n patchState(store, { items: items });\n },\n\n selectMenuItemByRoute(path: string): void {\n const findItem = (items: AXPMenuItem[]): { item: AXPMenuItem | null, isPartialMatch: boolean } => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path\n const matchResult = pathsMatch(item.path, path);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n\n const pathsMatch = (itemPath: string, currentPath: string): { isMatch: boolean, isPartial: boolean } => {\n // Split both paths into segments\n const itemSegments = itemPath.split('/').filter(segment => segment.length > 0);\n const pathSegments = currentPath.split('/').filter(segment => segment.length > 0);\n\n // Determine the minimum number of segments to compare\n const minLength = Math.min(itemSegments.length, pathSegments.length);\n\n // Compare segments until we find a mismatch\n let commonBaseLength = 0;\n for (let i = 0; i < minLength; i++) {\n if (itemSegments[i] === pathSegments[i]) {\n commonBaseLength++;\n } else {\n break; // Stop at the first mismatch\n }\n }\n\n // Determine if we have a common base of at least 5 segments\n const isPartialMatch = commonBaseLength >= 5 && commonBaseLength < itemSegments.length;\n const isExactMatch = commonBaseLength === itemSegments.length && itemSegments.length === pathSegments.length;\n\n return {\n isMatch: isPartialMatch || isExactMatch,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n\n executeCommand(item: AXPMenuItem): void {\n if (item.command) {\n globalStore.dispatch(item.command);\n } else if (item.path) {\n globalStore.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));\n }\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n },\n\n isItemOpen(item: AXPMenuItem): boolean {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem) {\n return false;\n }\n\n const findParent = (currentItem: AXPMenuItem, targetItem: AXPMenuItem): boolean => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some(child => findParent(child, targetItem)) ?? false;\n };\n\n return item === selectedItem?.item || findParent(item, selectedItem.item!);\n }\n };\n }),\n withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => ({\n onInit() {\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n },\n onDestroy() {\n\n },\n }))\n);","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <small class=\"ax-text-sm ax-text-neutral-400\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n})\nexport class AXPFooterTextSlotComponent {\n @Input()\n public text!: string;\n}","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewEncapsulation, inject } from '@angular/core';\nimport { Action, Store } from '@ngrx/store';\nimport { AXPMenuItem } from '../../../menu';\n\n@Component({\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n <a *ngFor=\"let link of items\" (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n </div>\n `,\n imports: [CommonModule],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPNavBarSlotComponent {\n @Input()\n public items!: AXPMenuItem[];\n\n private store = inject(Store)\n\n protected handleCommand(action?: Action) {\n if (action)\n this.store.dispatch(action)\n }\n}","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPSchemaConfig } from './schema.types';\n\ntype DeepPartial<Thing> = Thing extends Function\n ? Thing\n : Thing extends Array<infer InferredArrayMember>\n ? DeepPartialArray<InferredArrayMember>\n : Thing extends object\n ? DeepPartialObject<Thing>\n : Thing | undefined;\n\ninterface DeepPartialArray<Thing> extends Array<DeepPartial<Thing>> {}\n\ntype DeepPartialObject<Thing> = {\n [Key in keyof Thing]?: DeepPartial<Thing[Key]>;\n};\n\ntype AXPSchemaOverride = Omit<DeepPartialObject<AXPSchemaConfig>, 'name'> & { name: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSchemaRegistryService {\n private types: Map<string, AXPSchemaConfig> = new Map();\n\n register(schema: AXPSchemaConfig) {\n this.types.set(schema.name, schema);\n }\n\n extend(parentName: string, schema: AXPSchemaOverride) {\n const parentSchema = this.resolve(parentName);\n const newSchema = merge({}, parentSchema, schema);\n newSchema.name = schema.name;\n this.register(newSchema);\n }\n\n resolve(name: string): AXPSchemaConfig | undefined {\n const schema = this.types.get(name);\n if (!schema) {\n throw new Error(`Parent schema with name ${schema} does not exist.`);\n }\n return schema;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\nexport interface AXPWidgetProperty {\n name: string;\n description?: string,\n formats: AXPDisplayFormat;\n validationRules?: AXPValidationRules\n canEdit: boolean;\n}\nexport interface AXPWidgetTokenType {\n schema: AXPSchemaConfig;\n prop: AXPWidgetProperty;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetTokenType>('AXP_WIDGET_TOKEN');\n\n","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject } from '@angular/core';\nimport { assign, cloneDeep, merge } from 'lodash-es';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [{ provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['width', 'caption', 'headerTemplate', 'allowSorting', 'fixed'],\n standalone: false\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n mergedOptions: any = {};\n\n // @ViewChild(TemplateRef)\n // private _template!: TemplateRef<unknown>;\n\n // get template(): TemplateRef<unknown> {\n // return this._template;\n // }\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.dataField}`;\n }\n\n @Input()\n options?: { [key: string]: any };\n\n @Input()\n dataField!: string;\n\n @Input()\n displayFormat!: string | undefined;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n if (schema?.component?.column) this.component = await schema?.component?.column.component();\n this.mergedOptions = merge(cloneDeep(schema?.component.column?.options), this.options) || {};\n const tokenValue = {\n prop: {\n name: this.dataField,\n formats: { default: this.displayFormat },\n },\n schema: schema,\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.mergedOptions.width ?? '200px';\n this.allowResizing = this.mergedOptions.allowResizing || false;\n this.cdr.markForCheck();\n }\n\n getInputs(data: any) {\n return assign(this.mergedOptions, { context: data });\n }\n}\n","import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Injector,\n Input,\n Output,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, isEqual, merge } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetFilterBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-filter-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n standalone: false\n})\nexport class AXPWidgetFilterRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n protected isLoading = true;\n\n @Output()\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n operatorChange: EventEmitter<any> = new EventEmitter<any>();\n\n private _value: any;\n @Input()\n public get value(): any {\n return this._value;\n }\n\n public set value(v: any) {\n this._value = v;\n this.updateValue();\n this.valueChange.emit(v);\n }\n\n private _operator: any;\n @Input()\n public get operator(): any {\n return this._operator;\n }\n\n public set operator(op: any) {\n this._operator = op;\n this.updateOperator();\n this.operatorChange.emit(op);\n }\n\n @Input()\n prop!: any;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetFilterBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.filter?.options),\n schema?.component?.filter?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component.filter?.component) {\n var com = await schema.component.filter?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance) {\n this.instance.value = this.value;\n }\n }\n\n private updateOperator() {\n if (this.instance) {\n this.instance.operator = this.operator;\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetFilterBase;\n // console.log(this.schemaName, this.instance);\n assign(this.instance, this.options);\n this.updateValue();\n this.updateOperator();\n this.instance.valueChange.subscribe((v) => {\n if (!isEqual(v, this.value)) {\n this.value = v;\n }\n });\n this.instance.operatorChange.subscribe((op) => {\n if (!isEqual(op, this.operator)) {\n this.operator = op;\n }\n });\n }\n}\n","import { AXFormatService } from '@acorex/core/format';\nimport { ChangeDetectorRef, EventEmitter, Injectable, Input, Output, inject } from '@angular/core';\nimport { cloneDeep, get, merge } from 'lodash-es';\nimport { AXPDisplayFormat } from '../formats';\nimport { AXPSchemaConfig } from '../schema.types';\nimport { AXPWidgetProperty, AXP_WIDGET_TOKEN } from './widget-token';\nimport { AXPValidationRules } from '@acorex/platform/core';\n\n@Injectable()\nexport abstract class AXPWidgetBase<T = any> {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected token = inject(AXP_WIDGET_TOKEN);\n protected formatService = inject(AXFormatService);\n\n public markForCheck = inject(ChangeDetectorRef).markForCheck;\n\n protected get schema(): AXPSchemaConfig {\n return this.token.schema;\n }\n\n protected get prop(): AXPWidgetProperty {\n return this.token.prop;\n }\n\n protected get rawValue(): any {\n return get(this.context, this.token.prop.name);\n }\n\n\n // protected get multiple(): boolean {\n // return this.token.prop.multiple ?? false;\n // }\n\n protected get formats(): AXPDisplayFormat {\n return merge(cloneDeep(this.schema.formats), this.token.prop.formats);\n }\n\n private _context!: T;\n @Input()\n public get context(): T {\n return this._context;\n }\n public set context(v: T) {\n this._context = v;\n this.render();\n this.cdr.markForCheck();\n }\n\n protected render(): void { }\n\n protected setOption(name: string, value: any) {\n\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetEditBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n\n protected get validations(): AXPValidationRules {\n const merged = [...(this.schema.validationRules ?? []), ...(this.token.prop.validationRules ?? [])];\n return merged;\n }\n}\n\n@Injectable()\nexport abstract class AXPWidgetFilterBase<T = any> extends AXPWidgetBase<T> {\n @Output()\n operatorChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _operator!: string;\n @Input()\n public get operator(): string {\n return this._operator;\n }\n public set operator(op: string) {\n this._operator = op;\n this.operatorChange.emit(op);\n this.render();\n this.cdr.markForCheck();\n }\n\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n private _value!: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n public set value(v: T) {\n this._value = v;\n this.valueChange.emit(v);\n this.render();\n this.cdr.markForCheck();\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Injector,\n Input,\n inject,\n} from '@angular/core';\nimport { assign, cloneDeep, get, merge, set } from 'lodash-es';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\nimport { AXPWidgetBase, AXPWidgetEditBase } from './widget-base';\nimport { AXP_WIDGET_TOKEN } from './widget-token';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(isLoading){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false\n})\nexport class AXPWidgetRendererComponent {\n private widgetRegistery = inject(AXPSchemaRegistryService);\n private subscriber = inject(AXUnsubscriber);\n\n private _context: any;\n @Input()\n public get context(): any {\n return this._context;\n }\n\n public set context(v: any) {\n this._context = v;\n if (this.instance) {\n this.instance.context = v;\n }\n this.updateValue();\n }\n\n @Input()\n prop!: any;\n\n @Input()\n mode: 'view' | 'edit' = 'view';\n\n protected isLoading = true;\n\n private _schemaName!: string;\n @Input('schema')\n public get schemaName(): string {\n return this._schemaName;\n }\n public set schemaName(v: string) {\n this._schemaName = v;\n setTimeout(async () => {\n //TODO: move to better place\n await this.render();\n });\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n private instance!: AXPWidgetBase | AXPWidgetEditBase;\n private options: AXPComponentOptions = {};\n protected portal!: ComponentPortal<any>;\n\n private async render() {\n const schema = this.widgetRegistery.resolve(this.schemaName);\n this.options =\n merge(\n cloneDeep(this.prop?.component?.common?.options),\n cloneDeep(this.prop?.component?.[this.mode]?.options),\n schema?.component?.[this.mode]?.options\n ) || {};\n const tokenValue = {\n prop: this.prop,\n schema: schema,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n if (schema?.component && schema.component[this.mode]?.component) {\n var com = await schema.component[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading = false;\n this.cdr.markForCheck();\n }\n }\n\n private updateValue() {\n if (this.instance && this.context && this.instance instanceof AXPWidgetEditBase) {\n this.instance.value = get(this.context, this.prop.name);\n }\n }\n\n private updateProps() {\n if (this.instance) {\n assign(this.instance, this.options);\n }\n }\n\n private attachReferenceField(v: any) {\n if (this.options['reference']) {\n const valueField = this.prop.component?.common?.options?.valueField || 'id';\n const referenceField = this.options['referenceField'];\n\n if (referenceField) {\n if (Array.isArray(v)) {\n this.context[referenceField] = v.map((item: any) => item[valueField]);\n } else {\n this.context[referenceField] = v?.[valueField];\n }\n } else {\n this.context[`${this.prop.name}Id`] = v?.[valueField];\n }\n }\n }\n\n protected handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetBase>;\n this.instance = portalOutletRef.instance as AXPWidgetBase;\n this.instance.context = this.context;\n this.updateProps();\n this.updateValue();\n if (this.instance instanceof AXPWidgetEditBase) {\n this.attachReferenceField(this.instance.value);\n this.instance.valueChange.pipe(this.subscriber.takeUntilDestroy).subscribe((v) => {\n this.attachReferenceField(v);\n set(this.context, this.prop.name, v);\n });\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget/widget-column-renderer';\nimport { AXPWidgetFilterRendererComponent } from './widget/widget-filter-renderer';\nimport { AXPWidgetRendererComponent } from './widget/widget-renderer';\n\n@NgModule({\n imports: [PortalModule, AXSkeletonModule, CommonModule],\n exports: [AXPWidgetRendererComponent, AXPWidgetFilterRendererComponent, AXPWidgetColumnRendererComponent],\n declarations: [AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetFilterRendererComponent],\n providers: [],\n})\nexport class AXPSchemaModule {}\n","import { AXDataSourceConfig } from '@acorex/components/common';\nimport { AXPValidationRules } from '@acorex/platform/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { AXPEntity } from '../../app';\nimport { AXPComponentOptions } from '../component-loader';\nimport { AXPDisplayFormat } from '../formats';\n\nexport interface AXPLayoutGridPositions {\n start?: number;\n span?: number;\n}\n\nexport interface AXPEntityPropertyLayoutOptions {\n positions: {\n default?: AXPLayoutGridPositions;\n sm?: AXPLayoutGridPositions;\n md?: AXPLayoutGridPositions;\n lg?: AXPLayoutGridPositions;\n xl?: AXPLayoutGridPositions;\n xxl?: AXPLayoutGridPositions;\n };\n}\n\nexport interface AXPEntityPropertyConfig {\n name: string;\n title: string;\n description?: string;\n schema: string;\n layout?: AXPEntityPropertyLayoutOptions;\n canEdit: boolean;\n canInsert: boolean;\n canFilter?: boolean;\n canInlineFilter?: boolean;\n canSort?: boolean;\n visible?: boolean | string;\n formats?: AXPDisplayFormat;\n validationRules?: AXPValidationRules;\n component?: {\n common?: {\n options: AXPComponentOptions;\n };\n view?: {\n options: AXPComponentOptions;\n };\n edit?: {\n options: AXPComponentOptions;\n };\n filter?: {\n options: AXPComponentOptions;\n };\n column?: {\n options: AXPComponentOptions;\n };\n };\n}\n\nexport interface AXPEntityConfig {\n newStruct?: AXPEntity;\n area?: string;\n module: string;\n name: string;\n title: string;\n formats?: AXPDisplayFormat;\n properties: AXPEntityPropertyConfig[];\n dataSource: AXDataSourceConfig;\n editOptions?: {\n create?: boolean;\n update?: boolean;\n delete?: boolean;\n import?: boolean;\n };\n views: {\n list?: AXPEntityListConfig;\n lookup?: any;\n quickView?: AXPEntityViewConfig;\n detailView?: AXPEntityViewConfig;\n createView?: AXPEntityViewConfig;\n };\n commands?: {\n create?: (values: { [key: string]: any }) => Promise<any>;\n delete?: (id: string) => Promise<any>;\n update?: (id: string, values: { [key: string]: any }) => Promise<any>;\n };\n actions?: {\n [key: string]: {\n title: string;\n execute: (...args: any[]) => Promise<any> | string;\n permissions?: string[];\n target: 'selected' | 'single' | 'entity';\n priority: 'primary' | 'secondary';\n type: 'create' | 'update' | 'delete' | 'redirect';\n options?: any;\n };\n };\n}\n\nexport interface AXPEntityViewRootSectionConfig {\n properties: string[];\n sections?: AXPEntityViewChildSectionConfig[];\n}\n\nexport interface AXPEntityViewChildSectionConfig extends AXPEntityViewRootSectionConfig {\n title: string;\n name: string;\n description?: string;\n options?: {\n showPropTitle: boolean;\n };\n}\n\nexport interface AXPEntityViewConfig {\n root: AXPEntityViewRootSectionConfig;\n action?: (e: AXPEntityConfig) => void;\n}\n\nexport interface AXPEntityListConfig {\n title: string;\n views: AXPEntityListViewConfig[];\n}\n\nexport interface AXPEntityListViewConfig {\n fixed: boolean;\n title: string;\n name: string;\n columns: AXPEntityListDisplayColumnConfig[];\n conditions: AXPEntityListConditionConfig[];\n inlineConditions?: AXPEntityListConditionConfig[];\n sorts: AXPEntityListSortConfig[];\n}\n\nexport const AXPEntityListViewConfigEmpty: AXPEntityListViewConfig = {\n fixed: false,\n columns: [],\n conditions: [],\n sorts: [],\n name: 'empty',\n title: 'Empty',\n};\n\nexport interface AXPEntityListColumnConfig {\n name: string;\n title: string;\n schema: string;\n}\n\nexport interface AXPEntityListDisplayColumnConfig {\n name: string;\n visible: boolean;\n schema: string;\n title: string;\n displayFormat?: string;\n sortOptions: {\n enabled?: boolean;\n property: string;\n };\n filterOptions: {\n enabled?: boolean;\n property: string;\n };\n tooltipOptions?: {\n template: any;\n };\n options?: {\n [key: string]: any;\n };\n}\n\nexport interface AXPEntityListConditionConfig {\n name: string;\n operator: string;\n value: any;\n}\n\nexport interface AXPEntityListSortConfig {\n name: string;\n dir: 'asc' | 'desc';\n}\n\nexport function convertPropertyToColumn(property: AXPEntityPropertyConfig): AXPEntityListDisplayColumnConfig {\n return {\n //TODO: merge format function\n schema: property.schema,\n name: property.name,\n title: property.title,\n visible: true,\n displayFormat: property.formats?.list ?? property.formats?.default,\n sortOptions: {\n enabled: property.canSort,\n property: property.name,\n },\n filterOptions: {\n enabled: property.canFilter,\n property: property.name,\n },\n options: merge(cloneDeep(property.component?.common?.options), property.component?.column?.options),\n };\n}\n\nexport function convertPropertiesToColumns(\n ...propertis: AXPEntityPropertyConfig[]\n): AXPEntityListDisplayColumnConfig[] {\n return propertis.map((p) => convertPropertyToColumn(p));\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\n\nexport interface AXPEntityLoader {\n get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null>;\n}\n\nexport class AXEntityLoaderDefault implements AXPEntityLoader {\n async get(moduleName: string, entityName: string): Promise<AXPEntityConfig | null> {\n return null;\n }\n}\n\nexport const AXP_ENTITY_LOADER = new InjectionToken<AXPEntityLoader>(\n 'AXP_ENTITY_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXEntityLoaderDefault();\n },\n }\n);","import { Injectable, inject } from \"@angular/core\";\nimport { AXPEntityConfig } from \"./entity.class\";\nimport { AXP_ENTITY_LOADER } from \"./entity.loader\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPEntityRegistryService {\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n private entities = new Map<string, AXPEntityConfig>();\n\n // Entity loader service for dynamically loading entity configurations.\n private loader = inject(AXP_ENTITY_LOADER); // Assuming AXPEntityLoader is the correct type\n\n\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n * \n * @param config The configuration object of the entity to be registered.\n */\n register(config: AXPEntityConfig): void {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName: string, entityName: string): Promise<AXPEntityConfig> {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n\n if (!config) {\n try {\n config = await this.loader.get(moduleName, entityName);\n if (config) {\n this.register(config);\n }\n } catch (error) {\n console.error(`Error loading entity '${key}':`, error);\n throw error; // Rethrow to allow error handling by caller\n }\n\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n\n return config;\n }\n\n /**\n * Creates a unique key for an entity based on its module and name.\n * \n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n private createEntityKey(moduleName: string, entityName: string): string {\n return `${moduleName}.${entityName}`;\n }\n}\n","import { AXToastModule } from '@acorex/components/toast';\nimport { NgModule } from '@angular/core';\nimport { BETWEEN_OPER, DATE_OPERATORS, EQ_OPER, NUMBER_OPERATORS, STRING_OPERATORS } from '../../app';\nimport { AXPSchemaRegistryService } from '../schema-registery.service';\n\nexport const widgetSchemas = {\n //*Sharing schema list with other modules\n text: 'text',\n largetext: 'largetext',\n number: 'number',\n currency: 'currency',\n phone: 'phone',\n email: 'email',\n dateTime: 'dateTime',\n date: 'date',\n time: 'time',\n toggle: 'toggle',\n checkbox: 'checkbox',\n password: 'password',\n file: 'file',\n lookup: 'lookup',\n selectionList: 'selection-list',\n richText: 'rich-text',\n map: 'map',\n avatar: 'avatar',\n messenger: 'messenger',\n gallery: 'gallery',\n signaturePad: 'signature-pad',\n};\n\n@NgModule({\n imports: [AXToastModule],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class AXPCommonWidgetModule {\n constructor(service: AXPSchemaRegistryService) {\n //text\n service.register({\n component: {\n view: {\n component: () => import('./text/text-widget-view.component').then((c) => c.AXPTextWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./text/text-widget-edit.component').then((c) => c.AXPTextWidgetEditComponent),\n },\n column: {\n component: () => import('./text/text-widget-column.component').then((c) => c.AXPTextWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.text,\n dataType: 'string',\n });\n service.extend('text', {\n name: widgetSchemas.largetext,\n component: {\n edit: {\n component: () =>\n import('./text/largetext-widget-edit.component').then((c) => c.AXPLargeTextWidgetEditComponent),\n },\n column: {\n options: {\n width: '400px',\n },\n },\n },\n });\n //\n service.register({\n component: {\n view: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/number-widget-filter.component').then(\n (c) => c.AXPNumberWidgetFilterComponent\n ),\n },\n edit: {\n component: () => import('./number/number-widget-edit.component').then((c) => c.AXPNumberWidgetEditComponent),\n },\n column: {\n component: () => import('./number/number-widget-view.component').then((c) => c.AXPNumberWidgetViewComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.number,\n filterOptions: {\n operators: [...NUMBER_OPERATORS],\n default: BETWEEN_OPER,\n },\n dataType: 'number',\n });\n service.extend('number', {\n name: widgetSchemas.currency,\n formats: {\n default: 'EN-GB',\n },\n component: {\n edit: {\n options: {\n clearButton: false,\n },\n },\n },\n });\n //phone\n service.register({\n component: {\n view: {\n component: () => import('./phone/phone-widget-view.component').then((c) => c.AXPPhoneWidgetViewComponent),\n },\n column: {\n component: () => import('./phone/phone-widget-column.component').then((c) => c.AXPPhoneWidgetColumnComponent),\n options: { allowResizing: true },\n },\n edit: {\n component: () => import('./phone/phone-widget-edit.component').then((c) => c.AXPPhoneWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n name: widgetSchemas.phone,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n //email\n service.register({\n component: {\n view: {\n component: () => import('./email/email-widget-view.component').then((c) => c.AXPEmailWidgetViewComponent),\n },\n edit: {\n component: () => import('./email/email-widget-edit.component').then((c) => c.AXPEmailWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n column: {\n component: () => import('./email/email-widget-column.component').then((c) => c.AXPEmailWidgetColumnComponent),\n options: { allowResizing: true },\n },\n },\n name: widgetSchemas.email,\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n dataType: 'object',\n });\n // dateTime\n service.register({\n component: {\n view: {\n component: () =>\n import('./dateTime/dateTime-widget-view.component').then((c) => c.AXPDateTimeWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./dateTime/dateTime-widget-edit.component').then((c) => c.AXPDateTimeWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./dateTime/dateTime-widget-filter.component').then((c) => c.AXPDateTimeWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./dateTime/dateTime-widget-column.component').then((c) => c.AXPDateTimeWidgetColumnComponent),\n options: {\n width: '200px',\n allowResizing: true,\n },\n },\n },\n formats: {\n default: 'date',\n },\n filterOptions: {\n operators: [...DATE_OPERATORS],\n default: BETWEEN_OPER,\n },\n name: widgetSchemas.dateTime,\n dataType: 'date',\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.date,\n formats: {\n default: 'date',\n },\n component: {\n column: {\n options: {\n width: '120px',\n },\n },\n },\n });\n service.extend(widgetSchemas.dateTime, {\n name: widgetSchemas.time,\n formats: {\n default: 'time',\n },\n component: {\n column: {\n options: {\n width: '80px',\n },\n },\n },\n });\n //toggle\n service.register({\n component: {\n view: {\n component: () => import('./toggle/toggle-widget-view.component').then((c) => c.AXPToggleWidgetViewComponent),\n },\n edit: {\n component: () => import('./toggle/toggle-widget-edit.component').then((c) => c.AXPToggleWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./toggle/toggle-widget-column.component').then((c) => c.AXPToggleWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.toggle,\n dataType: 'boolean',\n });\n //checkbox\n service.register({\n component: {\n view: {\n component: () =>\n import('./checkbox/checkbox-widget-view.component').then((c) => c.AXPCheckboxWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./checkbox/checkbox-widget-edit.component').then((c) => c.AXPCheckboxWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./common-widget-filter/boolean-widget-filter.component').then(\n (c) => c.AXPBooleanWidgetFilterComponent\n ),\n },\n column: {\n component: () =>\n import('./checkbox/checkbox-widget-column.component').then((c) => c.AXPCheckboxWidgetColumnComponent),\n options: {\n width: '100px',\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.checkbox,\n dataType: 'boolean',\n });\n //password\n service.register({\n component: {\n view: {\n component: () =>\n import('./password/password-widget-view.component').then((c) => c.AXPPasswordWidgetViewComponent),\n },\n column: {\n component: () =>\n import('./password/password-widget-column.component').then((c) => c.AXPPasswordWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () =>\n import('./password/password-widget-edit.component').then((c) => c.AXPPasswordWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.password,\n dataType: 'string',\n });\n //file\n service.register({\n component: {\n view: {\n component: () => import('./file/file-widget-view.component').then((c) => c.AXPFileWidgetViewComponent),\n },\n column: {\n component: () => import('./file/file-widget-column.component').then((c) => c.AXPFileWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n edit: {\n component: () => import('./file/file-widget-edit.component').then((c) => c.AXPFileWidgetEditComponent),\n },\n filter: {\n component: () => import('./file/file-widget-filter.component').then((c) => c.AXPFileWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.file,\n dataType: 'object',\n });\n // look up\n service.register({\n component: {\n view: {\n component: () => import('./lookup/lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup/lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./lookup/lookup-widget-filter.component').then((c) => c.AXPLookupWidgetFilterComponent),\n },\n column: {\n component: () =>\n import('./lookup/lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.lookup,\n dataType: 'object',\n });\n // selection list\n service.register({\n component: {\n view: {\n component: () =>\n import('./selection-list/selection-list-widget-view.component').then(\n (c) => c.AXPSelectionListWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./selection-list/selection-list-widget-edit.component').then(\n (c) => c.AXPSelectionListWidgetEditComponent\n ),\n },\n column: {\n component: () =>\n import('./selection-list/selection-list-widget-column.component').then(\n (c) => c.AXPSelectionListWidgetColumnComponent\n ),\n options: {\n allowResizing: true,\n },\n },\n filter: {\n component: () =>\n import('./selection-list/selection-list-widget-filter.component').then(\n (c) => c.AXPSelectionListWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.selectionList,\n dataType: 'object',\n });\n // rich text\n service.register({\n component: {\n view: {\n component: () =>\n import('./rich-text/rich-text-widget-view.component').then((c) => c.AXPRichTextWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./rich-text/rich-text-widget-edit.component').then((c) => c.AXPRichTextWidgetEditComponent),\n options: {\n allowResizing: true,\n },\n },\n column: {\n component: () =>\n import('./rich-text/rich-text-widget-column.component').then((c) => c.AXPRichTextWidgetColumnComponent),\n options: {\n width: '400px',\n },\n },\n filter: {\n component: () =>\n import('./common-widget-filter/string-widget-filter.component').then(\n (c) => c.AXPStringWidgetFilterComponent\n ),\n },\n },\n filterOptions: {\n operators: [...STRING_OPERATORS],\n default: EQ_OPER,\n },\n name: widgetSchemas.richText,\n dataType: 'object',\n });\n // map\n service.register({\n component: {\n view: {\n component: () => import('./map/map-widget-view.component').then((c) => c.AXPMapWidgetViewComponent),\n },\n edit: {\n component: () => import('./map/map-widget-edit.component').then((c) => c.AXPMapWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.map,\n dataType: 'object',\n });\n // avatar\n service.register({\n component: {\n view: {\n component: () => import('./avatar/avatar-widget-view.component').then((c) => c.AXPAvatarWidgetViewComponent),\n },\n edit: {\n component: () => import('./avatar/avatar-widget-edit.component').then((c) => c.AXPAvatarWidgetEditComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.avatar,\n dataType: 'object',\n });\n // messenger\n service.register({\n component: {\n view: {\n component: () =>\n import('./messenger/messenger-widget-view.component').then((c) => c.AXPMessengerWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./messenger/messenger-widget-edit.component').then((c) => c.AXPMessengerWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./messenger/messenger-widget-column.component').then((c) => c.AXPMessengerWidgetColumnComponent),\n options: {\n allowResizing: true,\n },\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.messenger,\n dataType: 'object',\n });\n //\n // gallery\n service.register({\n component: {\n view: {\n component: () =>\n import('./gallery/gallery-widget-view.component').then((c) => c.AXPGalleryWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./gallery/gallery-widget-edit.component').then((c) => c.AXPGalleryWidgetEditComponent),\n },\n filter: {\n component: () =>\n import('./gallery/gallery-widget-filter.component').then((c) => c.AXPGalleryWidgetFilterComponent),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.gallery,\n dataType: 'object',\n });\n // signature-pad\n service.register({\n component: {\n view: {\n component: () =>\n import('./signature-pad/signature-pad-widget-view.component').then(\n (c) => c.AXPSignaturePadWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./signature-pad/signature-pad-widget-edit.component').then(\n (c) => c.AXPSignaturePadWidgetEditComponent\n ),\n },\n },\n filterOptions: {\n operators: [],\n default: EQ_OPER,\n },\n name: widgetSchemas.signaturePad,\n dataType: 'object',\n });\n //\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPErrorHandlerRegistryService","i3.AXPSettingsService","i1.AXPAppStartUpService","i2.AXPSettingsService","i3.AXPDataSeederService","i1.AXPComponentSlotRegistryService","i1.AXPComponentSlotLoaderService","i1","i3","i2","i1.AXPSchemaRegistryService"],"mappings":"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"}
|