@acorex/platform 18.2.1 → 18.2.3
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/application.types.d.ts +8 -0
- package/common/lib/app/operators.d.ts +1 -0
- package/common/lib/common.module.d.ts +6 -7
- package/common/lib/data/entity-storage-service.d.ts +0 -1
- package/common/lib/data/filter-middleware.service.d.ts +28 -0
- package/common/lib/data/index.d.ts +3 -1
- package/common/lib/data/operators.service.d.ts +14 -0
- package/common/lib/layout/index.d.ts +0 -2
- package/common/lib/layout/menu/index.d.ts +0 -1
- package/common/lib/layout/menu/menu.provider.d.ts +11 -4
- package/common/lib/layout/menu/menu.service.d.ts +8 -2
- package/common/lib/layout/menu/menu.types.d.ts +9 -6
- package/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.d.ts +0 -2
- package/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.d.ts +1 -0
- package/common/lib/schema/widgets/email/email-widget-edit.component.d.ts +0 -2
- package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +0 -2
- package/common/lib/schema/widgets/text/text-widget-edit.component.d.ts +0 -2
- package/common/lib/settings/index.d.ts +2 -1
- package/common/lib/settings/setting-definition.provider.d.ts +19 -0
- package/common/lib/settings/settings.types.d.ts +51 -0
- package/common/lib/utils/index.d.ts +0 -1
- package/esm2022/common/lib/app/application.types.mjs +4 -4
- package/esm2022/common/lib/app/operators.mjs +16 -1
- package/esm2022/common/lib/common.module.mjs +23 -12
- package/esm2022/common/lib/data/entity-storage-service.mjs +4 -4
- package/esm2022/common/lib/data/filter-middleware.service.mjs +53 -0
- package/esm2022/common/lib/data/index.mjs +4 -2
- package/esm2022/common/lib/data/operators.service.mjs +15 -0
- package/esm2022/common/lib/layout/index.mjs +1 -3
- package/esm2022/common/lib/layout/menu/index.mjs +1 -2
- package/esm2022/common/lib/layout/menu/menu.provider.mjs +105 -24
- package/esm2022/common/lib/layout/menu/menu.service.mjs +43 -11
- package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +22 -22
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +7 -8
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +47 -25
- package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +6 -7
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +6 -7
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/text/text-widget-edit.component.mjs +6 -7
- package/esm2022/common/lib/settings/index.mjs +3 -2
- package/esm2022/common/lib/settings/setting-definition.provider.mjs +183 -0
- package/esm2022/common/lib/settings/settings.types.mjs +1 -1
- package/esm2022/common/lib/utils/data-generator.mjs +1 -1
- package/esm2022/common/lib/utils/index.mjs +1 -2
- package/esm2022/common/lib/workflows/common.workflow.mjs +5 -3
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +3 -2
- package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +3 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +7 -5
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +17 -8
- package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +61 -34
- package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +27 -32
- package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +2 -2
- package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +34 -14
- package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +23 -23
- package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +3 -3
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +10 -4
- package/esm2022/layout/designer/lib/designer/index.mjs +2 -1
- package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +5 -6
- package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +158 -61
- package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/shared/generic-commands.types.mjs +52 -0
- package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +32 -38
- package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +3 -3
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
- package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +10 -9
- package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +4 -3
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +26 -20
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +5 -3
- package/esm2022/layout/entity/lib/entity-master-update.viewmodel.mjs +3 -3
- package/esm2022/layout/entity/lib/entity.module.mjs +12 -1
- package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -5
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +10 -4
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +42 -32
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +3 -3
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +1 -2
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +79 -40
- package/esm2022/layout/setting/acorex-platform-layout-setting.mjs +5 -0
- package/esm2022/layout/setting/index.mjs +2 -0
- package/esm2022/layout/setting/lib/setting.viewmodel.mjs +50 -0
- package/esm2022/layouts/lib/admin/admin.module.mjs +17 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +8 -23
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +8 -11
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +12 -10
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +1 -3
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +2 -2
- package/esm2022/themes/default/index.mjs +2 -1
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +39 -25
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +6 -9
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +2 -6
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +24 -18
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -8
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +6 -8
- package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +11 -40
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +3 -2
- package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +49 -0
- package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -0
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +104 -0
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +44 -0
- package/esm2022/themes/shared/lib/services/theme.service.mjs +183 -19
- package/esm2022/widgets/lib/properties/editors.props.mjs +2 -2
- package/esm2022/widgets/lib/properties/layout.props.mjs +13 -13
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.mjs +20 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.mjs +18 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +24 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.mjs +20 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.mjs +22 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +31 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/index.mjs +8 -0
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +2 -2
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +44 -20
- package/esm2022/widgets/lib/widgets/editors/contact/popup-component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +18 -25
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +7 -11
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +7 -12
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +24 -15
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +14 -7
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +29 -67
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +32 -17
- package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +6 -7
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +1 -22
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +76 -78
- package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +9 -9
- package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs +120 -0
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +65 -24
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +27 -7
- package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +18 -1
- package/esm2022/widgets/lib/widgets.module.mjs +5 -2
- package/fesm2022/acorex-platform-auth.mjs +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs} +4 -6
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs.map → acorex-platform-common-avatar-widget-edit.component-DtC2IaE8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs → acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs} +5 -7
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-BOIV0Be1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs → acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs} +5 -7
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-S4-3SmKA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs → acorex-platform-common-change-password.component-g_GEw3IZ.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs.map → acorex-platform-common-change-password.component-g_GEw3IZ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs.map → acorex-platform-common-checkbox-widget-column.component-DOoneR7g.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs → acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs} +6 -8
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-PFRq-XS-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs.map → acorex-platform-common-checkbox-widget-view.component-CKz8XnjT.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs → acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs} +5 -7
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-DG0leXAo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs → acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs} +10 -14
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-D8W-XEcx.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs → acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs} +50 -30
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DngCKwFY.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs.map → acorex-platform-common-dateTime-widget-view.component-KGgJkiKB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs → acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs} +5 -7
- package/fesm2022/acorex-platform-common-email-widget-column.component-CLNqSuB7.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs → acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs} +10 -13
- package/fesm2022/acorex-platform-common-email-widget-edit.component--0gaRm4s.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs} +4 -6
- package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs.map → acorex-platform-common-email-widget-view.component-C3AUr1HO.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-column.component-GtbElxmS.mjs → acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs} +5 -7
- package/fesm2022/acorex-platform-common-file-widget-column.component-C9AHk2UP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs.map → acorex-platform-common-file-widget-edit.component-L7bln9k0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs → acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs} +5 -7
- package/fesm2022/acorex-platform-common-file-widget-filter.component-Ce35mqny.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs.map → acorex-platform-common-file-widget-view.component-BvMzrs5C.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs} +4 -6
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs.map → acorex-platform-common-gallery-widget-edit.component-BVuV2Ib8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs → acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs} +5 -7
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-C8tdM6PX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs} +4 -6
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs.map → acorex-platform-common-gallery-widget-view.component-D8YmSi9C.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs → acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs} +4 -6
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DGMxpnsr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs → acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs} +5 -7
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-B-cEaNjv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs.map → acorex-platform-common-lookup-widget-edit.component-DqB_g9Zz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs → acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs} +5 -7
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-0TPWNWSd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs → acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs} +5 -7
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-DYAg76YH.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs → acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs} +5 -7
- package/fesm2022/acorex-platform-common-map-widget-edit.component-C3cpsXD5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-Deos8gVy.mjs → acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs} +5 -7
- package/fesm2022/acorex-platform-common-map-widget-view.component-C-DCNaJi.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs → acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs} +5 -7
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-B2A7ZBEP.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs → acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs} +5 -7
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-DC8vQDo0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs.map → acorex-platform-common-messenger-widget-view.component-B6FavkmG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs → acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs} +5 -7
- package/fesm2022/acorex-platform-common-number-widget-edit.component-Bc5-ZUw4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs → acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs} +6 -8
- package/fesm2022/acorex-platform-common-number-widget-filter.component-DxfJ90n4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs → acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs} +5 -7
- package/fesm2022/acorex-platform-common-number-widget-view.component-DGfLSGw1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs.map → acorex-platform-common-password-widget-column.component-DEHaVLGK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs → acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs} +5 -7
- package/fesm2022/acorex-platform-common-password-widget-edit.component-DrYyu5v-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs} +6 -7
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs.map → acorex-platform-common-password-widget-view.component-B_HU-3J1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs.map → acorex-platform-common-phone-widget-column.component-D99ncxxJ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs → acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs} +9 -12
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-a5EAI9FK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs.map → acorex-platform-common-phone-widget-view.component-BlFVuoNN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs.map → acorex-platform-common-rich-text-widget-column.component-DOdv5I2s.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs → acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs} +5 -7
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DL5UyAqe.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs → acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs} +5 -7
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B9WB-mx9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs.map → acorex-platform-common-selection-list-widget-column.component-CkOuYy0Z.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs → acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs} +6 -8
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-BmbDQ1LH.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs → acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs} +4 -6
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-Dm_1-7eT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs → acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs} +5 -7
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-3hinF85C.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs} +4 -6
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DmmPbw-A.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs → acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs} +5 -7
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-DkFaMNk8.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs → acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs} +6 -8
- package/fesm2022/acorex-platform-common-string-widget-filter.component-DAqR2PUN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs.map → acorex-platform-common-text-widget-column.component-DVczwvKA.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs → acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs} +10 -14
- package/fesm2022/acorex-platform-common-text-widget-edit.component-DC_GnFhe.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs.map → acorex-platform-common-text-widget-view.component-BK3HZGgb.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs.map → acorex-platform-common-toggle-widget-column.component-Bp1d7SAE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs → acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs} +5 -7
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-D64m4agx.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs} +5 -7
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs.map → acorex-platform-common-toggle-widget-view.component-BTaXXZ88.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +1203 -1069
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +25 -11
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +396 -211
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +186 -113
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-setting.mjs +57 -0
- package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs} +3 -3
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs} +2 -2
- package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs} +3 -3
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layouts.mjs +47 -55
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs +301 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs +148 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +240 -79
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +184 -20
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs} +3 -3
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs → acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs} +76 -78
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs +123 -0
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs +136 -0
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +431 -269
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +4 -3
- package/layout/designer/lib/designer/components/board/board.component.d.ts +8 -0
- package/layout/designer/lib/designer/designer.component.d.ts +3 -1
- package/layout/designer/lib/designer/index.d.ts +1 -0
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +10 -6
- package/layout/designer/lib/designer/shared/designer.service.d.ts +18 -3
- package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +9 -0
- package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +8 -5
- package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +3 -1
- package/layout/entity/lib/entity-master-create.viewmodel.d.ts +2 -2
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +3 -3
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
- package/layout/entity/lib/entity.viewmodel.d.ts +5 -3
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +14 -12
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +13 -10
- package/layout/setting/README.md +4 -0
- package/layout/setting/index.d.ts +1 -0
- package/layout/setting/lib/setting.viewmodel.d.ts +13 -0
- package/layouts/lib/admin/admin.module.d.ts +6 -3
- package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +42 -9
- package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -3
- package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +4 -2
- package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +0 -1
- package/package.json +18 -18
- package/themes/default/index.d.ts +1 -0
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +47 -9
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +42 -4
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -2
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +1 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +42 -3
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +42 -2
- package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +8 -2
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +42 -14
- package/themes/default/lib/layouts/setting-layout/convert-setting-data.d.ts +21 -0
- package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -0
- package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +24 -0
- package/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.d.ts +20 -0
- package/themes/shared/lib/components/theme-slot.component.d.ts +31 -5
- package/themes/shared/lib/services/theme.service.d.ts +45 -5
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +6 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +6 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +8 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +7 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/advance/cron-job/index.d.ts +7 -0
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +2 -3
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -2
- package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +8 -9
- package/widgets/lib/widgets/layout/template/template-picker/template-picker.component.d.ts +30 -0
- package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +3 -0
- package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +1 -0
- package/widgets/lib/widgets/layout/template/template.provider.d.ts +3 -0
- package/common/lib/layout/layout.service.d.ts +0 -19
- package/common/lib/layout/menu/menu.loader.d.ts +0 -17
- package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -7
- package/common/lib/layout/theme/store/admin-layout.effects.d.ts +0 -9
- package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -19
- package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -4
- package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -11
- package/common/lib/layout/theme/store/index.d.ts +0 -5
- package/common/lib/utils/router-util.service.d.ts +0 -12
- package/esm2022/common/lib/layout/layout.service.mjs +0 -79
- package/esm2022/common/lib/layout/menu/menu.loader.mjs +0 -39
- package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +0 -11
- package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +0 -21
- package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +0 -63
- package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +0 -7
- package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +0 -13
- package/esm2022/common/lib/layout/theme/store/index.mjs +0 -6
- package/esm2022/common/lib/utils/router-util.service.mjs +0 -43
- package/esm2022/mocks/acorex-platform-mocks.mjs +0 -5
- package/esm2022/mocks/index.mjs +0 -7
- package/esm2022/mocks/lib/mocks.module.mjs +0 -15
- package/esm2022/mocks/lib/services/mocker.service.mjs +0 -114
- package/esm2022/mocks/lib/storage/storage.mock.service.mjs +0 -183
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-column.component-GtbElxmS.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-Deos8gVy.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs.map +0 -1
- package/fesm2022/acorex-platform-mocks.mjs +0 -319
- package/fesm2022/acorex-platform-mocks.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs +0 -299
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs +0 -150
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs +0 -96
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs.map +0 -1
- package/mocks/README.md +0 -3
- package/mocks/index.d.ts +0 -3
- package/mocks/lib/mocks.module.d.ts +0 -7
- package/mocks/lib/services/mocker.service.d.ts +0 -29
- package/mocks/lib/storage/storage.mock.service.d.ts +0 -25
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as i5 from '@acorex/components/button';
|
|
2
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
3
|
+
import * as i2 from '@acorex/components/common';
|
|
4
|
+
import { AXCommonModule } from '@acorex/components/common';
|
|
5
|
+
import * as i3 from '@acorex/components/decorators';
|
|
6
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
7
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
8
|
+
import * as i7 from '@acorex/components/search-box';
|
|
9
|
+
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
10
|
+
import * as i6 from '@acorex/components/tabs';
|
|
11
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
12
|
+
import { AXPSettingsService, AXPStickyDirective } from '@acorex/platform/common';
|
|
13
|
+
import * as i1 from '@angular/common';
|
|
14
|
+
import { CommonModule } from '@angular/common';
|
|
15
|
+
import * as i0 from '@angular/core';
|
|
16
|
+
import { inject, model, signal, computed, ViewEncapsulation, Component } from '@angular/core';
|
|
17
|
+
import * as i1$1 from '@angular/forms';
|
|
18
|
+
import { FormsModule } from '@angular/forms';
|
|
19
|
+
import { orderBy } from 'lodash-es';
|
|
20
|
+
|
|
21
|
+
class AXPTemplateWidgetPickerComponent extends AXBasePageComponent {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.settingService = inject(AXPSettingsService);
|
|
25
|
+
this.pinnedSettingKey = 'forms:templates:picker:pinned';
|
|
26
|
+
this.searchTerm = model('');
|
|
27
|
+
// Signals
|
|
28
|
+
this.widgets = [];
|
|
29
|
+
this.displayWidgets = signal([]);
|
|
30
|
+
// Signal to track selected widgets
|
|
31
|
+
this.selectedWidgets = signal([]);
|
|
32
|
+
// Computed for filtered and ordered widget list
|
|
33
|
+
this.orderedList = computed(() => {
|
|
34
|
+
const search = this.searchTerm().toLowerCase();
|
|
35
|
+
const selectedTabName = this.selectedTab().name;
|
|
36
|
+
return orderBy(this.displayWidgets().filter((w) => {
|
|
37
|
+
const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;
|
|
38
|
+
const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);
|
|
39
|
+
return matchesTab && matchesSearch;
|
|
40
|
+
}), ['pinned', 'title'], ['desc', 'asc']);
|
|
41
|
+
});
|
|
42
|
+
// Pinned and regular lists
|
|
43
|
+
this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned));
|
|
44
|
+
this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned));
|
|
45
|
+
// Tabs for the widget groups
|
|
46
|
+
this.tabs = orderBy([{ name: 'all', title: 'All', order: 0 }, ...this.widgets.map(c => c.group)], (c) => c.order);
|
|
47
|
+
this.currentTabIndex = signal(0);
|
|
48
|
+
this.selectedTab = computed(() => this.tabs[this.currentTabIndex()]);
|
|
49
|
+
}
|
|
50
|
+
async ngOnInit() {
|
|
51
|
+
super.ngOnInit();
|
|
52
|
+
const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
|
|
53
|
+
this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.id) })));
|
|
54
|
+
}
|
|
55
|
+
handleTabChange(event) {
|
|
56
|
+
const indx = event.index;
|
|
57
|
+
if (this.currentTabIndex() != indx) {
|
|
58
|
+
this.currentTabIndex.set(indx);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
handleClick(event, widget) {
|
|
62
|
+
if (event.ctrlKey) {
|
|
63
|
+
const currentSelection = this.selectedWidgets();
|
|
64
|
+
const isAlreadySelected = currentSelection.some((w) => w === widget);
|
|
65
|
+
if (isAlreadySelected) {
|
|
66
|
+
// Deselect widget if already selected
|
|
67
|
+
this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Add widget to selection
|
|
71
|
+
this.selectedWidgets.set([...currentSelection, widget]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// If CTRL is not pressed, select only the clicked widget
|
|
76
|
+
this.close({ widgets: [widget] });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async handlePinClick(e, widget) {
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
widget.pinned = !widget.pinned;
|
|
82
|
+
// Get the current list of pinned widgets from settings
|
|
83
|
+
let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
|
|
84
|
+
// Update the list of pinned widgets based on the pinned status
|
|
85
|
+
if (widget.pinned) {
|
|
86
|
+
if (!pinnedWidgets.includes(widget.id)) {
|
|
87
|
+
pinnedWidgets.push(widget.id);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.id);
|
|
92
|
+
}
|
|
93
|
+
// Save the updated list of pinned widgets
|
|
94
|
+
await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
|
|
95
|
+
// Trigger a re-render of the widgets
|
|
96
|
+
this.displayWidgets.set([...this.displayWidgets()]);
|
|
97
|
+
}
|
|
98
|
+
// Check if a widget is selected
|
|
99
|
+
isWidgetSelected(widget) {
|
|
100
|
+
return this.selectedWidgets().includes(widget);
|
|
101
|
+
}
|
|
102
|
+
handleConfirmSelection() {
|
|
103
|
+
this.close({ widgets: this.selectedWidgets() });
|
|
104
|
+
}
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPTemplateWidgetPickerComponent, isStandalone: true, selector: "ng-component", inputs: { searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: "searchTermChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ standalone: true, imports: [
|
|
111
|
+
CommonModule,
|
|
112
|
+
AXCommonModule,
|
|
113
|
+
FormsModule,
|
|
114
|
+
AXButtonModule,
|
|
115
|
+
AXDecoratorModule,
|
|
116
|
+
AXTabsModule,
|
|
117
|
+
AXSearchBoxModule,
|
|
118
|
+
AXPStickyDirective,
|
|
119
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"] }]
|
|
120
|
+
}] });
|
|
121
|
+
|
|
122
|
+
export { AXPTemplateWidgetPickerComponent };
|
|
123
|
+
//# sourceMappingURL=acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/layout/template/template-picker/template-picker.component.ts","../../../../libs/platform/widgets/src/lib/widgets/layout/template/template-picker/template-picker.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXPSettingsService, AXPStickyDirective } from '@acorex/platform/common';\nimport { AXP_WIDGETS_GROUPS, AXPWidgetGroup } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { orderBy } from 'lodash-es';\nimport { AXPTemplateWidgetProvided, AXPTemplateWidgetProviderService } from '../template.provider';\n\nexport interface AXPDisplayWidgetProvided extends AXPTemplateWidgetProvided {\n pinned: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTabsModule,\n AXSearchBoxModule,\n AXPStickyDirective,\n ],\n templateUrl: './template-picker.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./template-picker.component.scss'],\n})\nexport class AXPTemplateWidgetPickerComponent extends AXBasePageComponent {\n private settingService = inject(AXPSettingsService);\n\n private readonly pinnedSettingKey = 'forms:templates:picker:pinned';\n\n protected searchTerm = model('');\n\n // Signals\n private widgets: AXPDisplayWidgetProvided[] = [];\n private displayWidgets = signal<AXPDisplayWidgetProvided[]>([]);\n\n // Signal to track selected widgets\n protected selectedWidgets = signal<AXPDisplayWidgetProvided[]>([]);\n\n // Computed for filtered and ordered widget list\n private orderedList = computed(() => {\n const search = this.searchTerm().toLowerCase();\n const selectedTabName = this.selectedTab().name;\n\n return orderBy(\n this.displayWidgets().filter((w) => {\n const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;\n const matchesSearch =\n !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);\n return matchesTab && matchesSearch;\n }),\n ['pinned', 'title'],\n ['desc', 'asc']\n );\n });\n\n // Pinned and regular lists\n protected pinnedList = computed(() => this.orderedList().filter((c) => c.pinned));\n protected regularList = computed(() => this.orderedList().filter((c) => !c.pinned));\n\n // Tabs for the widget groups\n protected tabs: AXPWidgetGroup[] = orderBy(\n [{ name: 'all', title: 'All', order: 0 }, ...this.widgets.map(c => c.group)],\n (c) => c.order\n );\n protected currentTabIndex = signal(0);\n protected selectedTab = computed(() => this.tabs[this.currentTabIndex()]);\n\n protected override async ngOnInit() {\n super.ngOnInit();\n const pinnedWidgets = (await this.settingService.get<string[]>(this.pinnedSettingKey)) || [];\n this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.id) })));\n }\n\n protected handleTabChange(event: AXTabStripChangedEvent): void {\n const indx = event.index;\n if (this.currentTabIndex() != indx) {\n this.currentTabIndex.set(indx);\n }\n }\n\n protected handleClick(event: MouseEvent, widget: AXPDisplayWidgetProvided) {\n if (event.ctrlKey) {\n const currentSelection = this.selectedWidgets();\n const isAlreadySelected = currentSelection.some((w) => w === widget);\n\n if (isAlreadySelected) {\n // Deselect widget if already selected\n this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));\n } else {\n // Add widget to selection\n this.selectedWidgets.set([...currentSelection, widget]);\n }\n } else {\n // If CTRL is not pressed, select only the clicked widget\n this.close({ widgets: [widget] });\n }\n }\n\n protected async handlePinClick(e: MouseEvent, widget: AXPDisplayWidgetProvided) {\n e.stopPropagation();\n widget.pinned = !widget.pinned;\n // Get the current list of pinned widgets from settings\n let pinnedWidgets = (await this.settingService.get<string[]>(this.pinnedSettingKey)) || [];\n\n // Update the list of pinned widgets based on the pinned status\n if (widget.pinned) {\n if (!pinnedWidgets.includes(widget.id)) {\n pinnedWidgets.push(widget.id);\n }\n } else {\n pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.id);\n }\n\n // Save the updated list of pinned widgets\n await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);\n\n // Trigger a re-render of the widgets\n this.displayWidgets.set([...this.displayWidgets()]);\n }\n\n // Check if a widget is selected\n protected isWidgetSelected(widget: AXPDisplayWidgetProvided): boolean {\n return this.selectedWidgets().includes(widget);\n }\n\n protected handleConfirmSelection(): void {\n this.close({ widgets: this.selectedWidgets() });\n }\n}\n","<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}"],"names":["i3","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCM,MAAO,gCAAiC,SAAQ,mBAAmB,CAAA;AAhBzE,IAAA,WAAA,GAAA;;AAiBU,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAElC,IAAgB,CAAA,gBAAA,GAAG,+BAA+B;AAEzD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;;QAGxB,IAAO,CAAA,OAAA,GAA+B,EAAE;AACxC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAA6B,EAAE,CAAC;;AAGrD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAA6B,EAAE,CAAC;;AAG1D,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE;YAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI;AAE/C,YAAA,OAAO,OAAO,CACZ,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AACjC,gBAAA,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;AAChF,gBAAA,MAAM,aAAa,GACjB,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpG,OAAO,UAAU,IAAI,aAAa;AACpC,aAAC,CAAC,EACF,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnB,CAAC,MAAM,EAAE,KAAK,CAAC,CAChB;AACH,SAAC,CAAC;;QAGQ,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;;QAGzE,IAAI,CAAA,IAAA,GAAqB,OAAO,CACxC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAC5E,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CACf;AACS,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AA+D1E;AA7DoB,IAAA,MAAM,QAAQ,GAAA;QAC/B,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAW,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC5F,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAG1F,IAAA,eAAe,CAAC,KAA6B,EAAA;AACrD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;;;IAIxB,WAAW,CAAC,KAAiB,EAAE,MAAgC,EAAA;AACvE,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE;AAC/C,YAAA,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;YAEpE,IAAI,iBAAiB,EAAE;;AAErB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;;iBACjE;;AAEL,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC;;;aAEpD;;YAEL,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;;;AAI3B,IAAA,MAAM,cAAc,CAAC,CAAa,EAAE,MAAgC,EAAA;QAC5E,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM;;AAE9B,QAAA,IAAI,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAW,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;;AAG1F,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AACtC,gBAAA,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;;;aAE1B;AACL,YAAA,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;;;AAIpE,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC;;AAGnE,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;;;AAI3C,IAAA,gBAAgB,CAAC,MAAgC,EAAA;QACzD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;;IAGtC,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;;8GAtGtC,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,+RClC7C,k1HA0EC,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrDG,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,uZACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,+IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,4XACjB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMT,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAhB5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,cAAc;wBACd,iBAAiB;wBACjB,YAAY;wBACZ,iBAAiB;wBACjB,kBAAkB;qBACnB,EAEc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,k1HAAA,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as i3 from '@acorex/core/translation';
|
|
2
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
3
|
+
import * as i1$1 from '@acorex/platform/layout/builder';
|
|
4
|
+
import { AXPWidgetComponent, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i0 from '@angular/core';
|
|
8
|
+
import { inject, computed, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
+
import { get, set } from 'lodash-es';
|
|
10
|
+
import { AXPTemplateWidgetProviderService } from './acorex-platform-widgets.mjs';
|
|
11
|
+
import '@acorex/components/badge';
|
|
12
|
+
import '@acorex/components/button';
|
|
13
|
+
import '@acorex/components/decorators';
|
|
14
|
+
import '@acorex/components/loading';
|
|
15
|
+
import '@acorex/components/common';
|
|
16
|
+
import '@acorex/components/check-box';
|
|
17
|
+
import '@acorex/components/form';
|
|
18
|
+
import '@acorex/components/label';
|
|
19
|
+
import '@acorex/core/validation';
|
|
20
|
+
import '@angular/forms';
|
|
21
|
+
import '@acorex/platform/common';
|
|
22
|
+
import '@acorex/components/popup';
|
|
23
|
+
import '@acorex/components/select-box';
|
|
24
|
+
import '@acorex/components/text-box';
|
|
25
|
+
import '@acorex/components/page';
|
|
26
|
+
import '@acorex/core/date-time';
|
|
27
|
+
import '@acorex/components/datetime-box';
|
|
28
|
+
import '@acorex/components/text-area';
|
|
29
|
+
import '@acorex/core/format';
|
|
30
|
+
import '@acorex/components/number-box';
|
|
31
|
+
import '@acorex/components/password-box';
|
|
32
|
+
import '@acorex/core/platform';
|
|
33
|
+
import '@acorex/platform/core';
|
|
34
|
+
import '@acorex/components/wysiwyg';
|
|
35
|
+
import '@acorex/components/selection-list';
|
|
36
|
+
import 'rxjs';
|
|
37
|
+
import '@acorex/components/switch';
|
|
38
|
+
import '@acorex/components/uploader';
|
|
39
|
+
import '@acorex/components/loading-dialog';
|
|
40
|
+
import '@acorex/components/image';
|
|
41
|
+
import '@acorex/components/map';
|
|
42
|
+
import '@acorex/platform/layout/designer';
|
|
43
|
+
import '@acorex/components/cron-job';
|
|
44
|
+
import '@acorex/components/qrcode';
|
|
45
|
+
import '@acorex/core/utils';
|
|
46
|
+
import '@acorex/components/color-box';
|
|
47
|
+
import '@angular/platform-browser';
|
|
48
|
+
|
|
49
|
+
class AXPTemplateWidgetEditComponent extends AXPWidgetComponent {
|
|
50
|
+
constructor() {
|
|
51
|
+
super();
|
|
52
|
+
this.metaKey = '__meta__';
|
|
53
|
+
this.templateProvider = inject(AXPTemplateWidgetProviderService);
|
|
54
|
+
this.templateId = computed(() => this.options()['templateId']);
|
|
55
|
+
this.nodeToRender = signal(null);
|
|
56
|
+
//
|
|
57
|
+
effect(async () => {
|
|
58
|
+
const value = this.getValue();
|
|
59
|
+
const templateId = get(value, `${this.metaKey}.templateId`) ?? this.templateId();
|
|
60
|
+
if (templateId) {
|
|
61
|
+
const node = await this.templateProvider.get(templateId);
|
|
62
|
+
if (node) {
|
|
63
|
+
this.nodeToRender.set(node);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.nodeToRender.set(null);
|
|
68
|
+
}
|
|
69
|
+
}, { allowSignalWrites: true });
|
|
70
|
+
}
|
|
71
|
+
async handleSelectClick() {
|
|
72
|
+
const result = await this.templateProvider.chooseTemplate();
|
|
73
|
+
if (result) {
|
|
74
|
+
this.setOptions({ templateId: result.id });
|
|
75
|
+
const value = this.getValue() ?? {};
|
|
76
|
+
set(value, this.metaKey, { templateId: result.id });
|
|
77
|
+
this.setValue(value);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async handleRemoveClick() {
|
|
81
|
+
this.setOptions({ templateId: null });
|
|
82
|
+
this.setValue(null);
|
|
83
|
+
}
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPTemplateWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
86
|
+
@if(nodeToRender()) {
|
|
87
|
+
<ng-container>
|
|
88
|
+
<ng-container axp-widget-renderer [node]="nodeToRender()!" [parentNode]="this" [mode]="this.mode"> </ng-container>
|
|
89
|
+
<div
|
|
90
|
+
class="ax-text-danger-500 hover:ax-text-danger-800 ax-mt-2 ax-text-xs ax-cursor-pointer"
|
|
91
|
+
(click)="handleRemoveClick()"
|
|
92
|
+
>
|
|
93
|
+
{{ 'remove-template' | translate : { scope: 'form-template-management' } | async }}
|
|
94
|
+
</div>
|
|
95
|
+
</ng-container>
|
|
96
|
+
} @else {
|
|
97
|
+
<span
|
|
98
|
+
class="ax-underline ax-decoration-dotted ax-underline-offset-8 hover:ax-text-primary-500 ax-cursor-pointer"
|
|
99
|
+
(click)="handleSelectClick()"
|
|
100
|
+
>
|
|
101
|
+
{{ 'choose-template' | translate : { scope: 'form-template-management' } | async }}
|
|
102
|
+
</span>
|
|
103
|
+
}
|
|
104
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
|
+
}
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetEditComponent, decorators: [{
|
|
107
|
+
type: Component,
|
|
108
|
+
args: [{
|
|
109
|
+
template: `
|
|
110
|
+
@if(nodeToRender()) {
|
|
111
|
+
<ng-container>
|
|
112
|
+
<ng-container axp-widget-renderer [node]="nodeToRender()!" [parentNode]="this" [mode]="this.mode"> </ng-container>
|
|
113
|
+
<div
|
|
114
|
+
class="ax-text-danger-500 hover:ax-text-danger-800 ax-mt-2 ax-text-xs ax-cursor-pointer"
|
|
115
|
+
(click)="handleRemoveClick()"
|
|
116
|
+
>
|
|
117
|
+
{{ 'remove-template' | translate : { scope: 'form-template-management' } | async }}
|
|
118
|
+
</div>
|
|
119
|
+
</ng-container>
|
|
120
|
+
} @else {
|
|
121
|
+
<span
|
|
122
|
+
class="ax-underline ax-decoration-dotted ax-underline-offset-8 hover:ax-text-primary-500 ax-cursor-pointer"
|
|
123
|
+
(click)="handleSelectClick()"
|
|
124
|
+
>
|
|
125
|
+
{{ 'choose-template' | translate : { scope: 'form-template-management' } | async }}
|
|
126
|
+
</span>
|
|
127
|
+
}
|
|
128
|
+
`,
|
|
129
|
+
standalone: true,
|
|
130
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
131
|
+
imports: [CommonModule, AXPLayoutBuilderModule, AXTranslationModule],
|
|
132
|
+
}]
|
|
133
|
+
}], ctorParameters: () => [] });
|
|
134
|
+
|
|
135
|
+
export { AXPTemplateWidgetEditComponent };
|
|
136
|
+
//# sourceMappingURL=acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-template-widget-edit.component-DwPYeF0y.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/layout/template/template-widget-edit.component.ts"],"sourcesContent":["import { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBuilderModule, AXPWidgetComponent, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\nimport { get, set } from 'lodash-es';\nimport { AXPTemplateWidgetProviderService } from './template.provider';\n\n@Component({\n template: `\n @if(nodeToRender()) {\n <ng-container>\n <ng-container axp-widget-renderer [node]=\"nodeToRender()!\" [parentNode]=\"this\" [mode]=\"this.mode\"> </ng-container>\n <div\n class=\"ax-text-danger-500 hover:ax-text-danger-800 ax-mt-2 ax-text-xs ax-cursor-pointer\"\n (click)=\"handleRemoveClick()\"\n >\n {{ 'remove-template' | translate : { scope: 'form-template-management' } | async }}\n </div>\n </ng-container>\n } @else {\n <span\n class=\"ax-underline ax-decoration-dotted ax-underline-offset-8 hover:ax-text-primary-500 ax-cursor-pointer\"\n (click)=\"handleSelectClick()\"\n >\n {{ 'choose-template' | translate : { scope: 'form-template-management' } | async }}\n </span>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXPLayoutBuilderModule, AXTranslationModule],\n})\nexport class AXPTemplateWidgetEditComponent extends AXPWidgetComponent<any> {\n private metaKey = '__meta__';\n\n private templateProvider = inject(AXPTemplateWidgetProviderService);\n protected templateId = computed<string>(() => this.options()['templateId'] as string);\n protected nodeToRender = signal<AXPWidgetNode | null>(null);\n\n constructor() {\n super();\n //\n effect(\n async () => {\n const value = this.getValue();\n const templateId = get(value, `${this.metaKey}.templateId`) ?? this.templateId();\n if (templateId) {\n const node = await this.templateProvider.get(templateId);\n if (node) {\n this.nodeToRender.set(node);\n }\n } else {\n this.nodeToRender.set(null);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n protected async handleSelectClick() {\n const result = await this.templateProvider.chooseTemplate();\n if (result) {\n this.setOptions({ templateId: result.id });\n const value = this.getValue() ?? {};\n set(value, this.metaKey, { templateId: result.id });\n this.setValue(value);\n }\n }\n\n protected async handleRemoveClick() {\n this.setOptions({ templateId: null });\n this.setValue(null);\n }\n}\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { inject, computed,
|
|
4
|
+
import { inject, computed, HostBinding, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
5
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
6
|
|
|
7
7
|
class AXPTextBlockWidgetDesignerComponent extends AXPWidgetComponent {
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
38
38
|
}] } });
|
|
39
39
|
|
|
40
40
|
export { AXPTextBlockWidgetDesignerComponent };
|
|
41
|
-
//# sourceMappingURL=acorex-platform-widgets-text-block-widget-designer.component-
|
|
41
|
+
//# sourceMappingURL=acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-widgets-text-block-widget-designer.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/layout/text-block/text-block-widget-designer.component.ts"],"sourcesContent":["import { AXPWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: \"axp-text-block-widget\",\n template: `\n <div [innerHTML]=\"innerContent()\"></div>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class AXPTextBlockWidgetDesignerComponent extends AXPWidgetComponent<void> {\n sanitizer = inject(DomSanitizer);\n\n protected content = computed<string>(() => this.options()['content'] as string);\n\n protected innerContent = computed(() =>\n this.sanitizer.bypassSecurityTrustHtml(this.content())\n );\n\n @HostBinding('class')\n private get __class(): any {\n return {\n 'ax-block': true\n };\n }\n}"],"names":[],"mappings":";;;;;;AAcM,MAAO,mCAAoC,SAAQ,kBAAwB,CAAA;AATjF,IAAA,WAAA,GAAA;;AAUE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAEtB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAW,CAAC;AAErE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAChC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CACvD;AAQF;AANC,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,UAAU,EAAE;SACb;;8GAbQ,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,EAPpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGS,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEX,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAT/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;8BAWa,OAAO,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;;;;;"}
|