@acorex/platform 18.0.11 → 18.0.13
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/auth/lib/session.service.d.ts +2 -2
- package/common/lib/app/application.types.d.ts +3 -2
- package/common/lib/layout/sticky.directive.d.ts +1 -1
- package/common/lib/schema/widget/widget-renderer.d.ts +1 -0
- package/core/utils/countdown-timer.d.ts +4 -2
- package/esm2022/auth/lib/session.service.mjs +23 -38
- package/esm2022/common/lib/app/application.types.mjs +1 -1
- package/esm2022/common/lib/layout/sticky.directive.mjs +2 -2
- package/esm2022/common/lib/schema/widget/widget-renderer.mjs +20 -16
- package/esm2022/common/lib/schema/widgets/text/text-widget-column.component.mjs +3 -3
- package/esm2022/core/utils/countdown-timer.mjs +10 -3
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +15 -12
- package/esm2022/layout/builder/lib/builder/index.mjs +7 -6
- package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +33 -0
- package/esm2022/layout/builder/lib/builder/widget-groups.mjs +27 -0
- package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +3 -3
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +7 -6
- package/esm2022/layout/designer/index.mjs +3 -3
- package/esm2022/layout/designer/lib/board/board.component.mjs +69 -45
- package/esm2022/layout/designer/lib/command.mjs +185 -0
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +64 -38
- package/esm2022/layout/designer/lib/designer.service.mjs +142 -115
- package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +24 -0
- package/esm2022/layout/designer/lib/helpers/add-widget-button/add-widget-button.component.mjs +37 -0
- package/esm2022/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.mjs +82 -0
- package/esm2022/layout/designer/lib/history/history.component.mjs +28 -0
- package/esm2022/layout/designer/lib/outline/outline.component.mjs +17 -17
- package/esm2022/layout/designer/lib/pages/pages.component.mjs +28 -0
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +5 -2
- package/esm2022/layout/designer/lib/widget-designer-renderer.component.mjs +3 -3
- package/esm2022/layout/designer/lib/widget-picker/widget-picker.component.mjs +80 -6
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +6 -4
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +17 -7
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +12 -6
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +1 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +1 -1
- package/esm2022/widgets/lib/properties/editors.props.mjs +114 -44
- package/esm2022/widgets/lib/properties/layout.props.mjs +60 -0
- package/esm2022/widgets/lib/properties/table-column.props.mjs +3 -2
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +52 -0
- package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +27 -0
- package/esm2022/widgets/lib/widgets/actions/button/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-edit.component.mjs +122 -0
- package/esm2022/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget-view.component.mjs +215 -0
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.config.mjs +51 -0
- package/esm2022/widgets/lib/widgets/advance/file/file-box-widget.service.mjs +3 -0
- package/esm2022/widgets/lib/widgets/advance/file/index.mjs +8 -0
- package/esm2022/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-types.mjs +2 -0
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.mjs +160 -0
- package/esm2022/widgets/lib/widgets/advance/gallery/gallery-widget.config.mjs +29 -0
- package/esm2022/widgets/lib/widgets/advance/gallery/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/advance/map/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/{editors/link-widget/link-widget-print.component.mjs → advance/map/map-box-widget-column.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +171 -0
- package/esm2022/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget.config.mjs +31 -0
- package/esm2022/widgets/lib/widgets/advance/qrcode/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.mjs +51 -0
- package/esm2022/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.mjs +62 -0
- package/esm2022/widgets/lib/widgets/advance/signature/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/{editors/select-box-widget/select-box-widget-print.component.mjs → advance/signature/signature-pad-widget-column.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.mjs +142 -0
- package/esm2022/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/advance/signature/signature-pad-widget.config.mjs +31 -0
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +10 -12
- package/esm2022/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-edit.component.mjs +48 -0
- package/esm2022/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget.config.mjs +31 -0
- package/esm2022/widgets/lib/widgets/editors/color/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-column.component.mjs +36 -0
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +297 -0
- package/esm2022/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-view.component.mjs +122 -0
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +81 -0
- package/esm2022/widgets/lib/widgets/editors/contact/contact.type.mjs +2 -0
- package/esm2022/widgets/lib/widgets/editors/contact/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{contact-widget → contact}/popup-component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +44 -0
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.mjs +133 -0
- package/esm2022/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.mjs +54 -0
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +40 -0
- package/esm2022/widgets/lib/widgets/editors/date-time/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-column.component.mjs +66 -0
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget-edit.component.mjs +249 -0
- package/esm2022/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/email/email-box-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets/editors/email/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/large-text/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{map-box-widget/map-box-widget-column.component.mjs → large-text/large-text-widget-print.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets/editors/link/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{link-widget → link}/link-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +391 -0
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-filter.component.mjs +20 -0
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/{link-widget → link}/link-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/link/link-widget.config.mjs +29 -0
- package/esm2022/widgets/lib/widgets/editors/number/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-column.component.mjs +38 -0
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +157 -0
- package/esm2022/widgets/lib/widgets/{layout/repeater-widget/repeater-widget-edit.component.mjs → editors/number/number-box-widget-filter.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-view.component.mjs +56 -0
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets/editors/password/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{phone-box-widget/phone-box-widget-print.component.mjs → password/password-box-widget-column.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget-view.component.mjs +76 -0
- package/esm2022/widgets/lib/widgets/editors/password/password-box-widget.config.mjs +38 -0
- package/esm2022/widgets/lib/widgets/editors/phone/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.mjs +66 -0
- package/esm2022/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/phone/phone-box-widget.config.mjs +32 -0
- package/esm2022/widgets/lib/widgets/editors/rich-text/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-popup.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.mjs +46 -0
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.mjs +67 -0
- package/esm2022/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.mjs +45 -0
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets/editors/select/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +85 -0
- package/esm2022/widgets/lib/widgets/editors/{gallery-widget/gallery-widget-print.component.mjs → select/select-box-widget-filter.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +60 -0
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +38 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.mjs +41 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +72 -0
- package/esm2022/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +44 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.mjs +29 -0
- package/esm2022/widgets/lib/widgets/editors/text/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-edit.component.mjs +121 -0
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-view.component.mjs +47 -0
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget.config.mjs +41 -0
- package/esm2022/widgets/lib/widgets/editors/toggle/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget.config.mjs +40 -0
- package/esm2022/widgets/lib/widgets/index.mjs +23 -22
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +65 -0
- package/esm2022/widgets/lib/widgets/layout/{block-widget → block}/block-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +26 -0
- package/esm2022/widgets/lib/widgets/layout/block/index.mjs +4 -0
- package/esm2022/widgets/lib/widgets/layout/document/document-widget.config.mjs +13 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +56 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +41 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +25 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/index.mjs +4 -0
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +101 -0
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +18 -0
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget.config.mjs +26 -0
- package/esm2022/widgets/lib/widgets/layout/grid/index.mjs +5 -0
- package/esm2022/widgets/lib/widgets/layout/page/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +65 -0
- package/esm2022/widgets/lib/widgets/layout/{page-widget → page}/page-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +27 -0
- package/esm2022/widgets/lib/widgets/layout/repeater/index.mjs +6 -0
- package/esm2022/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-designer.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/{editors/link-widget/link-widget-filter.component.mjs → layout/repeater/repeater-widget-edit.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.mjs +52 -0
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +24 -0
- package/esm2022/widgets/lib/widgets/layout/text-block/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.mjs +29 -0
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +42 -0
- package/esm2022/widgets/lib/widgets.module.mjs +17 -3
- package/fesm2022/acorex-platform-auth.mjs +22 -37
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-text-widget-column.component-D-mLfzKJ.mjs → acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs} +3 -3
- package/fesm2022/acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +21 -17
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +9 -2
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +163 -129
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs +100 -0
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer.mjs +640 -265
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +5 -4
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-B2XtNJo1.mjs → acorex-platform-layouts-entity-create-view.component-C2pYReAo.mjs} +17 -7
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-C2pYReAo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs → acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs} +12 -5
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +4 -4
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs → acorex-platform-themes-default-entity-master-create-view.component-DKNRxpQk.mjs} +1 -2
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKNRxpQk.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +4 -4
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DYb6bilD.mjs → acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs} +14 -4
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +3989 -3315
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/builder.service.d.ts +1 -1
- package/layout/builder/lib/builder/index.d.ts +6 -5
- package/layout/builder/lib/builder/widget-catalog.d.ts +3 -0
- package/layout/builder/lib/builder/widget-groups.d.ts +6 -0
- package/layout/builder/lib/builder/widget-registery.service.d.ts +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +44 -6
- package/layout/designer/index.d.ts +2 -2
- package/layout/designer/lib/board/board.component.d.ts +7 -2
- package/layout/designer/lib/command.d.ts +70 -0
- package/layout/designer/lib/designer/designer.component.d.ts +4 -10
- package/layout/designer/lib/designer.service.d.ts +34 -19
- package/layout/designer/lib/header-menu/header-menu.component.d.ts +7 -0
- package/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.d.ts +19 -0
- package/layout/designer/lib/history/history.component.d.ts +7 -0
- package/layout/designer/lib/outline/outline.component.d.ts +1 -0
- package/layout/designer/lib/pages/pages.component.d.ts +7 -0
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +1 -0
- package/layout/designer/lib/widget-picker/widget-picker.component.d.ts +22 -4
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +5 -0
- package/package.json +12 -12
- package/widgets/lib/properties/editors.props.d.ts +5 -1
- package/widgets/lib/properties/layout.props.d.ts +4 -0
- package/widgets/lib/widgets/actions/{button-widget → button}/button-widget-view.component.d.ts +1 -0
- package/widgets/lib/widgets/actions/button/button-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +37 -0
- package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/advance/qrcode/index.d.ts +2 -0
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +12 -0
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-edit.component.d.ts +2 -4
- package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/contact/contact-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/large-text/large-text-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/link/link-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/number/number-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/password/password-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/select/select-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget.config.d.ts +5 -0
- package/widgets/lib/widgets/editors/toggle/toggle-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/index.d.ts +21 -21
- package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/document/document-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +7 -0
- package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +7 -0
- package/widgets/lib/widgets/layout/form-field/form-field-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/form-field/index.d.ts +3 -0
- package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +20 -0
- package/widgets/lib/widgets/layout/grid/grid-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/grid/index.d.ts +4 -0
- package/widgets/lib/widgets/layout/{page-widget → page}/page-widget-designer.component.d.ts +2 -0
- package/widgets/lib/widgets/layout/page/page-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/repeater/repeater-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/text-block/text-block-widget.config.d.ts +7 -0
- package/esm2022/layout/builder/lib/builder/layout.types.mjs +0 -30
- package/esm2022/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.mjs +0 -37
- package/esm2022/layout/designer/lib/designer.module.mjs +0 -16
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget-view.component.mjs +0 -37
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget.config.mjs +0 -25
- package/esm2022/widgets/lib/widgets/actions/button-widget/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.mjs +0 -54
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget.config.mjs +0 -34
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-column.component.mjs +0 -36
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.mjs +0 -297
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.mjs +0 -122
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget.config.mjs +0 -78
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact.type.mjs +0 -2
- package/esm2022/widgets/lib/widgets/editors/contact-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +0 -44
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +0 -133
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +0 -54
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget.config.mjs +0 -38
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-column.component.mjs +0 -66
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-edit.component.mjs +0 -249
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget.config.mjs +0 -36
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-edit.component.mjs +0 -122
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-view.component.mjs +0 -215
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.config.mjs +0 -48
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.service.mjs +0 -3
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/index.mjs +0 -8
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-types.mjs +0 -2
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-view.component.mjs +0 -160
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget.config.mjs +0 -26
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-print.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget.config.mjs +0 -37
- package/esm2022/widgets/lib/widgets/editors/link-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-edit.component.mjs +0 -391
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget.config.mjs +0 -26
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.mjs +0 -96
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget.config.mjs +0 -28
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-column.component.mjs +0 -38
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-edit.component.mjs +0 -151
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-filter.component.mjs +0 -20
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-view.component.mjs +0 -56
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget.config.mjs +0 -37
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-view.component.mjs +0 -76
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget.config.mjs +0 -35
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-column.component.mjs +0 -66
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget.config.mjs +0 -29
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-column.component.mjs +0 -46
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.mjs +0 -67
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.mjs +0 -45
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget.config.mjs +0 -37
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.mjs +0 -75
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-filter.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-view.component.mjs +0 -60
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget.config.mjs +0 -28
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-column.component.mjs +0 -41
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-edit.component.mjs +0 -72
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-view.component.mjs +0 -44
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget.config.mjs +0 -25
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +0 -142
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget.config.mjs +0 -34
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.mjs +0 -119
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-view.component.mjs +0 -47
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget.config.mjs +0 -38
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget.config.mjs +0 -36
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget-designer.component.mjs +0 -65
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget.config.mjs +0 -27
- package/esm2022/widgets/lib/widgets/layout/block-widget/index.mjs +0 -4
- package/esm2022/widgets/lib/widgets/layout/page-widget/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.mjs +0 -55
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget.config.mjs +0 -27
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/index.mjs +0 -6
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-view.component.mjs +0 -52
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget.config.mjs +0 -20
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/index.mjs +0 -3
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget-view.component.mjs +0 -29
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.mjs +0 -39
- package/fesm2022/acorex-platform-common-text-widget-column.component-D-mLfzKJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs +0 -26
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-B2XtNJo1.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DYb6bilD.mjs.map +0 -1
- package/layout/builder/lib/builder/layout.types.d.ts +0 -1
- package/layout/designer/lib/designer.module.d.ts +0 -6
- package/widgets/lib/widgets/actions/button-widget/button-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/contact-widget/contact-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/link-widget/link-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/block-widget/block-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/page-widget/page-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.d.ts +0 -2
- /package/layout/designer/lib/{buttons → helpers}/add-widget-button/add-widget-button.component.d.ts +0 -0
- /package/widgets/lib/widgets/actions/{button-widget → button}/index.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/file-box-widget.service.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/file-box-widget → advance/file}/index.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-types.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/gallery-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/gallery-widget → advance/gallery}/index.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/index.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/map-box-widget → advance/map}/map-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/index.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/{editors/signature-pad-widget → advance/signature}/signature-pad-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{color-box-widget → color}/color-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{color-box-widget → color}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/contact-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/contact.type.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{contact-widget → contact}/popup-component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/date-time-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{date-time-box-widget → date-time}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/email-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{email-box-widget → email}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{large-text-widget → large-text}/large-text-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/link-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/link-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/link-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/link-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{link-widget → link}/link-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{number-box-widget → number}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{number-box-widget → number}/number-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{password-box-widget → password}/password-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{phone-box-widget → phone}/phone-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-popup.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{select-box-widget → select}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{text-box-widget → text}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/index.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-column.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-filter.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{block-widget → block}/block-widget-designer.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{block-widget → block}/block-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{block-widget → block}/index.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{page-widget → page}/index.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{page-widget → page}/page-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{repeater-widget → repeater}/index.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-designer.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-edit.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-print.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{repeater-widget → repeater}/repeater-widget-view.component.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{text-block-widget → text-block}/index.d.ts +0 -0
- /package/widgets/lib/widgets/layout/{text-block-widget → text-block}/text-block-widget-view.component.d.ts +0 -0
|
@@ -1,82 +1,259 @@
|
|
|
1
1
|
import * as i3$1 from '@acorex/platform/layout/builder';
|
|
2
|
-
import { AXPWidgetRegistryService, AXP_WIDGET_TOKEN, AXPLayoutBuilderModule, AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import { AXPWidgetRegistryService, AXPWidgetsCatalog, AXP_WIDGET_TOKEN, AXPLayoutBuilderModule, AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { signal, computed,
|
|
6
|
+
import { signal, computed, Injectable, inject, Injector, NgZone, ElementRef, input, effect, Component, ChangeDetectionStrategy, HostListener, ViewEncapsulation, model, output, HostBinding, EventEmitter, untracked, Output, ViewChild } from '@angular/core';
|
|
7
7
|
import * as i3 from '@acorex/components/skeleton';
|
|
8
8
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
9
9
|
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
10
10
|
import * as i2 from '@angular/cdk/portal';
|
|
11
11
|
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
12
|
-
import { merge, sortBy, set, get,
|
|
12
|
+
import { merge, cloneDeep, sortBy, set, get, capitalize, unionBy, isArray, isNil, isEmpty } from 'lodash-es';
|
|
13
13
|
import { Subject, first, merge as merge$1 } from 'rxjs';
|
|
14
14
|
import { AXPopupService } from '@acorex/components/popup';
|
|
15
|
-
import * as
|
|
15
|
+
import * as i2$1 from '@acorex/components/button';
|
|
16
16
|
import { AXButtonModule } from '@acorex/components/button';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i2$2 from '@acorex/components/decorators';
|
|
18
18
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
19
|
+
import * as i5 from '@acorex/components/button-group';
|
|
20
|
+
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
19
21
|
import * as i3$2 from '@acorex/components/drawer';
|
|
20
22
|
import { AXDrawerModule } from '@acorex/components/drawer';
|
|
21
|
-
import * as
|
|
23
|
+
import * as i4 from '@acorex/components/dropdown';
|
|
24
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
25
|
+
import * as i2$3 from '@acorex/components/menu';
|
|
26
|
+
import { AXMenuModule } from '@acorex/components/menu';
|
|
27
|
+
import * as i2$4 from '@acorex/components/tabs';
|
|
22
28
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
23
|
-
import * as i1$
|
|
29
|
+
import * as i1$1 from '@acorex/components/breadcrumbs';
|
|
24
30
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
|
25
|
-
import * as i1$
|
|
31
|
+
import * as i1$2 from '@acorex/components/collapse';
|
|
26
32
|
import { AXCollapseModule } from '@acorex/components/collapse';
|
|
27
|
-
|
|
28
|
-
|
|
33
|
+
|
|
34
|
+
// AddWidgetCommand
|
|
35
|
+
class AddWidgetCommand {
|
|
36
|
+
constructor(widget, parent, previousSelection) {
|
|
37
|
+
this.widget = widget;
|
|
38
|
+
this.parent = parent;
|
|
39
|
+
this.previousSelection = previousSelection;
|
|
40
|
+
}
|
|
41
|
+
execute() {
|
|
42
|
+
this.parent.children = this.parent.children || [];
|
|
43
|
+
this.parent.children.push(this.widget);
|
|
44
|
+
}
|
|
45
|
+
undo() {
|
|
46
|
+
this.parent.children = this.parent.children || [];
|
|
47
|
+
const index = this.parent.children.indexOf(this.widget);
|
|
48
|
+
if (index > -1) {
|
|
49
|
+
this.parent.children.splice(index, 1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
description() {
|
|
53
|
+
return `Added widget ${this.widget.name}`;
|
|
54
|
+
}
|
|
55
|
+
icon() {
|
|
56
|
+
return `fa-solid fa-square-plus`;
|
|
57
|
+
}
|
|
58
|
+
getExecutionSelection() {
|
|
59
|
+
return this.widget; // After executing, select the newly added widget
|
|
60
|
+
}
|
|
61
|
+
getUndoSelection() {
|
|
62
|
+
return this.previousSelection; // After undo, select the previously selected widget
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
class RemoveWidgetCommand {
|
|
66
|
+
constructor(widget, parent, previousSelection) {
|
|
67
|
+
this.widget = widget;
|
|
68
|
+
this.parent = parent;
|
|
69
|
+
this.previousSelection = previousSelection;
|
|
70
|
+
parent.children = parent.children || [];
|
|
71
|
+
this.index = parent.children.indexOf(widget); // Capture the index for undo purposes
|
|
72
|
+
}
|
|
73
|
+
execute() {
|
|
74
|
+
this.parent.children = this.parent.children || [];
|
|
75
|
+
this.index = this.parent.children.indexOf(this.widget); // Re-assert the index in case it has changed
|
|
76
|
+
this.parent.children.splice(this.index, 1);
|
|
77
|
+
}
|
|
78
|
+
undo() {
|
|
79
|
+
this.parent.children = this.parent.children || [];
|
|
80
|
+
this.parent.children.splice(this.index, 0, this.widget); // Reinsert at the original index
|
|
81
|
+
}
|
|
82
|
+
description() {
|
|
83
|
+
return `Removed widget ${this.widget.name}`;
|
|
84
|
+
}
|
|
85
|
+
icon() {
|
|
86
|
+
return `fa-solid fa-square-minus`;
|
|
87
|
+
}
|
|
88
|
+
getExecutionSelection() {
|
|
89
|
+
return this.previousSelection; // Typically the parent or a nearby sibling could be focused
|
|
90
|
+
}
|
|
91
|
+
getUndoSelection() {
|
|
92
|
+
return this.widget; // Select the widget itself when the operation is undone
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
class UpdateWidgetCommand {
|
|
96
|
+
constructor(widget, values, previousSelection) {
|
|
97
|
+
this.widget = widget;
|
|
98
|
+
this.newState = merge(cloneDeep(widget), values);
|
|
99
|
+
this.previousSelection = previousSelection;
|
|
100
|
+
this.previousState = cloneDeep(widget);
|
|
101
|
+
}
|
|
102
|
+
execute() {
|
|
103
|
+
merge(this.widget, this.newState);
|
|
104
|
+
}
|
|
105
|
+
undo() {
|
|
106
|
+
this.deepPruneAndRestore(this.widget, this.previousState);
|
|
107
|
+
}
|
|
108
|
+
description() {
|
|
109
|
+
return `Updated widget ${this.widget.name}`;
|
|
110
|
+
}
|
|
111
|
+
icon() {
|
|
112
|
+
return `fa-solid fa-pen-to-square`;
|
|
113
|
+
}
|
|
114
|
+
getExecutionSelection() {
|
|
115
|
+
return this.widget; // Focus the widget after it's updated
|
|
116
|
+
}
|
|
117
|
+
getUndoSelection() {
|
|
118
|
+
return this.previousSelection; // Restore the focus to where it was before the update
|
|
119
|
+
}
|
|
120
|
+
deepPruneAndRestore(current, original) {
|
|
121
|
+
Object.keys(current).forEach(key => {
|
|
122
|
+
if (original.hasOwnProperty(key)) {
|
|
123
|
+
if (typeof current[key] === 'object' && current[key] !== null && !(current[key] instanceof Array)) {
|
|
124
|
+
this.deepPruneAndRestore(current[key], original[key]);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
delete current[key]; // Remove properties not present in original
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
// Restore the original properties
|
|
132
|
+
merge(current, original);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
class CommandManager {
|
|
136
|
+
constructor() {
|
|
137
|
+
this.undoStack = signal([]);
|
|
138
|
+
this.currentIndex = signal(-1);
|
|
139
|
+
this.selectedNode = signal(null);
|
|
140
|
+
this.canUndo = computed(() => this.currentIndex() >= 0);
|
|
141
|
+
this.canRedo = computed(() => this.currentIndex() < this.undoStack().length - 1);
|
|
142
|
+
this.history = computed(() => this.undoStack().map((cmd, index) => ({
|
|
143
|
+
description: cmd.description(),
|
|
144
|
+
icon: cmd.icon(),
|
|
145
|
+
isPast: this.currentIndex() > index,
|
|
146
|
+
isFuture: this.currentIndex() < index,
|
|
147
|
+
isCurrent: this.currentIndex() == index
|
|
148
|
+
})));
|
|
149
|
+
}
|
|
150
|
+
executeCommand(command) {
|
|
151
|
+
// Check if the currentIndex is not at the end of the undoStack
|
|
152
|
+
if (this.currentIndex() !== this.undoStack().length - 1) {
|
|
153
|
+
// Remove all commands beyond the current index to discard the "future" commands
|
|
154
|
+
const newUndoStack = this.undoStack().slice(0, this.currentIndex() + 1);
|
|
155
|
+
this.undoStack.set(newUndoStack);
|
|
156
|
+
}
|
|
157
|
+
command.execute();
|
|
158
|
+
this.undoStack.set([...this.undoStack(), command]); // Add the new command to the stack
|
|
159
|
+
this.currentIndex.set(this.undoStack().length - 1); // Update currentIndex to the end of the stack
|
|
160
|
+
this.selectedNode.set(command.getExecutionSelection()); // Update the selected node
|
|
161
|
+
}
|
|
162
|
+
undo() {
|
|
163
|
+
if (this.currentIndex() >= 0) {
|
|
164
|
+
const command = this.undoStack()[this.currentIndex()];
|
|
165
|
+
command.undo();
|
|
166
|
+
this.currentIndex.set(this.currentIndex() - 1);
|
|
167
|
+
if (this.currentIndex() >= 0) {
|
|
168
|
+
this.selectedNode.set(this.undoStack()[this.currentIndex()].getUndoSelection());
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this.selectedNode.set(null); // No selection if all commands are undone
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
redo() {
|
|
176
|
+
if (this.currentIndex() < this.undoStack().length - 1) {
|
|
177
|
+
this.currentIndex.set(this.currentIndex() + 1);
|
|
178
|
+
const command = this.undoStack()[this.currentIndex()];
|
|
179
|
+
command.execute();
|
|
180
|
+
this.selectedNode.set(command.getExecutionSelection());
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
goToCommand(index) {
|
|
184
|
+
if (index < 0 || index >= this.undoStack().length || index === this.currentIndex()) {
|
|
185
|
+
return; // Out of bounds or already at the desired index
|
|
186
|
+
}
|
|
187
|
+
if (index > this.currentIndex()) {
|
|
188
|
+
// Need to redo until reaching the desired index
|
|
189
|
+
while (this.currentIndex() < index) {
|
|
190
|
+
this.redo();
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// Need to undo until reaching the desired index
|
|
195
|
+
while (this.currentIndex() > index) {
|
|
196
|
+
this.undo();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Optionally update any UI components or state here
|
|
200
|
+
this.selectedNode.set(this.undoStack()[this.currentIndex()].getExecutionSelection());
|
|
201
|
+
}
|
|
202
|
+
clear() {
|
|
203
|
+
this.undoStack.set([]);
|
|
204
|
+
this.currentIndex.set(-1);
|
|
205
|
+
}
|
|
206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CommandManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
207
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CommandManager, providedIn: 'root' }); }
|
|
208
|
+
}
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CommandManager, decorators: [{
|
|
210
|
+
type: Injectable,
|
|
211
|
+
args: [{
|
|
212
|
+
providedIn: 'root'
|
|
213
|
+
}]
|
|
214
|
+
}] });
|
|
29
215
|
|
|
30
216
|
class AXPDesignerService {
|
|
31
217
|
constructor() {
|
|
32
|
-
this.clipboard = signal(null);
|
|
33
|
-
this.undoStack = [];
|
|
34
|
-
this.redoStack = [];
|
|
35
|
-
this.maxHistorySize = 20;
|
|
36
|
-
this.canUndo = signal(false);
|
|
37
|
-
this.canRedo = signal(false);
|
|
38
|
-
this.canCutCopy = computed(() => this.selectedNode() != null && this.selectedNode()?.name != "page");
|
|
39
|
-
this.canPaste = computed(() => (this.clipboard() != null));
|
|
40
218
|
this.popupService = inject(AXPopupService);
|
|
41
219
|
this.widgetRegisteryService = inject(AXPWidgetRegistryService);
|
|
42
|
-
this.
|
|
220
|
+
this.document = signal(this.createDoc());
|
|
221
|
+
this.currentPageIndex = signal(0);
|
|
222
|
+
this.currentPage = signal(this.document().children?.[0]);
|
|
223
|
+
this.commandManager = inject(CommandManager);
|
|
224
|
+
this.clipboard = signal(null);
|
|
225
|
+
this.canCutCopy = computed(() => this.selectedNode() != null && this.selectedNode()?.name != 'page');
|
|
226
|
+
this.canPaste = computed(() => this.clipboard() != null);
|
|
227
|
+
this.history = computed(() => this.commandManager.history());
|
|
228
|
+
this.canUndo = computed(() => this.commandManager.canUndo());
|
|
229
|
+
this.canRedo = computed(() => this.commandManager.canRedo());
|
|
43
230
|
this.breadcrumbs = computed(() => {
|
|
44
|
-
return this.selectedNode() ? this.findBreadcrumbs(this.
|
|
231
|
+
return this.selectedNode() ? this.findBreadcrumbs(this.currentPage(), this.selectedNode()) ?? [] : [];
|
|
45
232
|
});
|
|
46
233
|
this.selectedNode = signal(null);
|
|
47
|
-
this._lastSelectedNode = null;
|
|
48
234
|
this._focusedNode = null;
|
|
49
235
|
this.focusedNode = () => this._focusedNode;
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
236
|
+
this.mode = signal('designer');
|
|
237
|
+
this.size = signal('xl');
|
|
52
238
|
this.onSelected = new Subject();
|
|
53
239
|
this.onRefresh = new Subject();
|
|
54
240
|
this.onUpdate = new Subject();
|
|
55
241
|
this.onFocused = new Subject();
|
|
56
242
|
}
|
|
57
|
-
setMode(mode) {
|
|
58
|
-
this._mode.set(mode);
|
|
59
|
-
}
|
|
60
243
|
register(command) {
|
|
61
|
-
|
|
62
|
-
this.select({ widget: command.widget });
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.select({ widget: this._lastSelectedNode });
|
|
66
|
-
}
|
|
244
|
+
this.select({ widget: command.widget });
|
|
67
245
|
}
|
|
68
246
|
select(command) {
|
|
69
247
|
this.selectedNode.set(command.widget);
|
|
70
|
-
this._lastSelectedNode = this.selectedNode();
|
|
71
248
|
this.onSelected.next(command);
|
|
72
249
|
}
|
|
73
250
|
update(command) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.
|
|
251
|
+
const node = command.widget ?? this.selectedNode();
|
|
252
|
+
if (command.mode == 'update' && node) {
|
|
253
|
+
this.commandManager.executeCommand(new UpdateWidgetCommand(node, command.values, node));
|
|
77
254
|
}
|
|
78
|
-
this.selectedNode.update(c => merge(
|
|
79
|
-
this.onUpdate.next({ widget:
|
|
255
|
+
this.selectedNode.update((c) => merge(node, command.values));
|
|
256
|
+
this.onUpdate.next({ widget: node, values: command.values });
|
|
80
257
|
}
|
|
81
258
|
focus(command) {
|
|
82
259
|
if (this._focusedNode != command.widget) {
|
|
@@ -107,35 +284,68 @@ class AXPDesignerService {
|
|
|
107
284
|
return undefined;
|
|
108
285
|
}
|
|
109
286
|
async showPicker(currentNode) {
|
|
110
|
-
const com = await import('./acorex-platform-layout-designer-widget-picker.component-
|
|
287
|
+
const com = await import('./acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs').then((c) => c.AXPDesignerWidgetPickerComponent);
|
|
111
288
|
const result = await this.popupService.open(com, {
|
|
112
|
-
title:
|
|
289
|
+
title: 'Widget Gallery',
|
|
113
290
|
size: 'md',
|
|
114
291
|
closeButton: true,
|
|
115
292
|
data: {
|
|
116
|
-
widgets: sortBy(this.widgetRegisteryService.all().filter(c => c.visible != false), c => c.title)
|
|
117
|
-
}
|
|
293
|
+
widgets: sortBy(this.widgetRegisteryService.all().filter((c) => c.visible != false), (c) => c.title),
|
|
294
|
+
},
|
|
118
295
|
});
|
|
119
296
|
if ((result.data?.widgets ?? []).length) {
|
|
120
297
|
const selected = result.data?.widgets;
|
|
121
|
-
selected.forEach(c => {
|
|
298
|
+
selected.forEach((c) => {
|
|
122
299
|
this.addWidget(currentNode, { type: c.name });
|
|
123
300
|
});
|
|
124
301
|
}
|
|
125
302
|
}
|
|
303
|
+
createDoc() {
|
|
304
|
+
const doc = {
|
|
305
|
+
type: AXPWidgetsCatalog.document,
|
|
306
|
+
children: [this.createPage()],
|
|
307
|
+
name: 'document',
|
|
308
|
+
};
|
|
309
|
+
set(doc, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
310
|
+
return doc;
|
|
311
|
+
}
|
|
126
312
|
createPage() {
|
|
127
|
-
const config = this.widgetRegisteryService.resolve('page');
|
|
313
|
+
const config = this.widgetRegisteryService.resolve('page-layout');
|
|
128
314
|
const page = {
|
|
129
|
-
type: 'page',
|
|
315
|
+
type: 'page-layout',
|
|
130
316
|
children: [],
|
|
131
|
-
name:
|
|
317
|
+
name: 'page-layout1',
|
|
132
318
|
};
|
|
133
319
|
set(page, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
134
320
|
set(page, '__meta__.config', config);
|
|
135
321
|
return page;
|
|
136
322
|
}
|
|
323
|
+
addNewPage() {
|
|
324
|
+
this.addWidget(this.document(), this.createPage());
|
|
325
|
+
this.goToPage(this.currentPageIndex() + 1);
|
|
326
|
+
}
|
|
327
|
+
removePage(index) {
|
|
328
|
+
const page = this.document().children?.[index];
|
|
329
|
+
this.removeWidget(page);
|
|
330
|
+
this.goToPage(index - 1);
|
|
331
|
+
}
|
|
332
|
+
clonePage(index) {
|
|
333
|
+
const page = this.document().children?.[index];
|
|
334
|
+
this.clone(page);
|
|
335
|
+
this.goToPage((this.document().children?.length ?? 1) - 1);
|
|
336
|
+
}
|
|
337
|
+
goToPage(index) {
|
|
338
|
+
this.currentPageIndex.set(index);
|
|
339
|
+
setTimeout(() => {
|
|
340
|
+
this.currentPage.set(this.document().children?.[this.currentPageIndex()]);
|
|
341
|
+
this.select({ widget: this.currentPage() });
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
reRenderPage() {
|
|
345
|
+
this.currentPage.set({ ...this.currentPage() });
|
|
346
|
+
}
|
|
137
347
|
findWidgetById(root, id) {
|
|
138
|
-
if (get(root,
|
|
348
|
+
if (get(root, '__meta__.id') === id) {
|
|
139
349
|
return root; // Return the root if it matches the ID
|
|
140
350
|
}
|
|
141
351
|
if (!root.children)
|
|
@@ -148,10 +358,10 @@ class AXPDesignerService {
|
|
|
148
358
|
}
|
|
149
359
|
return null; // Node not found
|
|
150
360
|
}
|
|
151
|
-
findParent(id, parent = this.
|
|
361
|
+
findParent(id, parent = this.currentPage()) {
|
|
152
362
|
if (!parent.children)
|
|
153
363
|
return null;
|
|
154
|
-
if (parent.children.some(child => get(child,
|
|
364
|
+
if (parent.children.some((child) => get(child, '__meta__.id') === id)) {
|
|
155
365
|
return parent; // Return this node as it's the parent of the node with the given ID
|
|
156
366
|
}
|
|
157
367
|
for (const child of parent.children) {
|
|
@@ -169,7 +379,7 @@ class AXPDesignerService {
|
|
|
169
379
|
if (config && config.container) {
|
|
170
380
|
return current;
|
|
171
381
|
}
|
|
172
|
-
current = this.findParent(get(current,
|
|
382
|
+
current = this.findParent(get(current, '__meta__.id')); // Use findParent to navigate upwards
|
|
173
383
|
}
|
|
174
384
|
}
|
|
175
385
|
else {
|
|
@@ -192,91 +402,69 @@ class AXPDesignerService {
|
|
|
192
402
|
if (!currentNode)
|
|
193
403
|
return null;
|
|
194
404
|
//
|
|
195
|
-
|
|
196
|
-
//
|
|
197
|
-
if (!currentNode.children) {
|
|
198
|
-
currentNode.children = [];
|
|
199
|
-
}
|
|
405
|
+
const cloned = cloneDeep(node);
|
|
200
406
|
const config = this.widgetRegisteryService.resolve(node.type);
|
|
201
407
|
//
|
|
202
|
-
|
|
408
|
+
this.commandManager.executeCommand(new AddWidgetCommand(cloned, currentNode, currentNode));
|
|
409
|
+
//
|
|
203
410
|
cloned.name = this.generateUniqueName(node.type);
|
|
204
411
|
set(cloned, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
205
412
|
set(cloned, '__meta__.config', config);
|
|
206
413
|
//
|
|
207
|
-
|
|
208
|
-
//
|
|
414
|
+
this.reRenderPage();
|
|
209
415
|
//
|
|
210
416
|
this.refresh({ widget: currentNode });
|
|
211
417
|
this.select({ widget: cloned });
|
|
212
418
|
return cloned;
|
|
213
419
|
}
|
|
214
420
|
removeWidget(node) {
|
|
215
|
-
if (node.type ===
|
|
216
|
-
console.error(
|
|
217
|
-
return; // Prevent removing the root page node
|
|
421
|
+
if (node.type === 'document-layout' || (node.type === 'page-layout' && (this.document().children?.length ?? 1) == 1)) {
|
|
422
|
+
console.error('Cannot remove the page node.');
|
|
423
|
+
return; // Prevent removing the root page node or document
|
|
218
424
|
}
|
|
219
|
-
|
|
220
|
-
const nodeIdToRemove = get(node, "__meta__.id");
|
|
425
|
+
const nodeIdToRemove = get(node, '__meta__.id');
|
|
221
426
|
if (!nodeIdToRemove) {
|
|
222
|
-
throw new Error(
|
|
427
|
+
throw new Error('Node does not have a valid __meta__.id to identify it for removal.');
|
|
223
428
|
}
|
|
224
429
|
// Find the parent of the node to remove it
|
|
225
|
-
const parent = this.findParent(nodeIdToRemove, this.
|
|
430
|
+
const parent = this.findParent(nodeIdToRemove, this.document());
|
|
226
431
|
if (!parent) {
|
|
227
|
-
throw new Error(
|
|
228
|
-
}
|
|
229
|
-
const index = parent.children?.findIndex(child => get(child, "__meta__.id") === nodeIdToRemove) ?? -1;
|
|
230
|
-
if (index > -1) {
|
|
231
|
-
parent.children.splice(index, 1);
|
|
232
|
-
this.refresh({ widget: parent }); // Refresh the UI to reflect changes
|
|
233
|
-
this.select({ widget: parent }); // Select the parent node after removal
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
throw new Error("Node to remove not found in the widget tree.");
|
|
432
|
+
throw new Error('Parent node not found. The node might be the root node or does not exist.');
|
|
237
433
|
}
|
|
434
|
+
const previousSelection = this.selectedNode(); // Capture the currently selected node before removal
|
|
435
|
+
const command = new RemoveWidgetCommand(node, parent, previousSelection);
|
|
436
|
+
this.commandManager.executeCommand(command);
|
|
437
|
+
this.refresh({ widget: parent }); // Refresh the UI to reflect changes
|
|
438
|
+
this.select({ widget: parent }); // Select the parent node after removal
|
|
238
439
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
this.
|
|
244
|
-
this.
|
|
245
|
-
// Clear the redo stack whenever a new change is made after undo
|
|
246
|
-
if (this.redoStack.length > 0) {
|
|
247
|
-
this.redoStack = [];
|
|
248
|
-
this.canRedo.set(false);
|
|
249
|
-
}
|
|
440
|
+
navigateTo(index) {
|
|
441
|
+
this.commandManager.goToCommand(index);
|
|
442
|
+
this.reRenderPage();
|
|
443
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
444
|
+
this.refresh({ widget: this.currentPage() });
|
|
445
|
+
this.select({ widget: currentSelection });
|
|
250
446
|
}
|
|
251
|
-
|
|
252
|
-
this.
|
|
253
|
-
this.
|
|
254
|
-
|
|
255
|
-
this.
|
|
447
|
+
redo() {
|
|
448
|
+
this.commandManager.redo();
|
|
449
|
+
this.reRenderPage();
|
|
450
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
451
|
+
this.refresh({ widget: this.currentPage() });
|
|
452
|
+
this.select({ widget: currentSelection });
|
|
256
453
|
}
|
|
257
454
|
undo() {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
this.canUndo.set(this.undoStack.length > 0);
|
|
264
|
-
this.canRedo.set(true); // There is at least one action to redo now
|
|
265
|
-
}
|
|
455
|
+
this.commandManager.undo();
|
|
456
|
+
this.reRenderPage();
|
|
457
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
458
|
+
this.refresh({ widget: this.currentPage() });
|
|
459
|
+
this.select({ widget: currentSelection });
|
|
266
460
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const nextState = this.redoStack.pop();
|
|
270
|
-
this.undoStack.push(cloneDeep(this.root()));
|
|
271
|
-
this.applyState(nextState);
|
|
272
|
-
this.canRedo.set(this.redoStack.length > 0);
|
|
273
|
-
this.canUndo.set(true); // Undo is always available after a redo
|
|
274
|
-
}
|
|
461
|
+
clearHistory() {
|
|
462
|
+
this.commandManager.clear();
|
|
275
463
|
}
|
|
276
464
|
formatOutputJSON(obj, nodeName) {
|
|
277
465
|
// Check if the object is an array
|
|
278
466
|
if (Array.isArray(obj)) {
|
|
279
|
-
return obj.map(item => this.formatOutputJSON(item, nodeName));
|
|
467
|
+
return obj.map((item) => this.formatOutputJSON(item, nodeName));
|
|
280
468
|
}
|
|
281
469
|
else if (typeof obj === 'object' && obj !== null) {
|
|
282
470
|
// Create a new object to store the result
|
|
@@ -303,44 +491,57 @@ class AXPDesignerService {
|
|
|
303
491
|
this.copy(widget); // Copy the widget to the clipboard
|
|
304
492
|
this.removeWidget(widget); // Reuse the removeWidget method which should handle undo internally
|
|
305
493
|
}
|
|
306
|
-
|
|
494
|
+
clone(widget = this.selectedNode()) {
|
|
495
|
+
if (!widget)
|
|
496
|
+
return;
|
|
497
|
+
this.copy(widget); // Copy the widget to the clipboard
|
|
498
|
+
if (widget.type == 'page-layout') {
|
|
499
|
+
this.paste(this.document());
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
this.paste(widget);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
paste(parentNode = this.selectedNode() ?? this.currentPage()) {
|
|
307
506
|
if (!this.clipboard() || !this.selectedNode()) {
|
|
308
|
-
console.error(
|
|
507
|
+
console.error('Clipboard is empty or no node is selected.');
|
|
309
508
|
return;
|
|
310
509
|
}
|
|
510
|
+
const newNode = cloneDeep(this.clipboard());
|
|
311
511
|
const nearestContainer = this.findNearestContainer(parentNode, true);
|
|
312
512
|
if (!nearestContainer) {
|
|
313
|
-
console.error(
|
|
513
|
+
console.error('No suitable container found.');
|
|
314
514
|
return;
|
|
315
515
|
}
|
|
316
516
|
//
|
|
317
|
-
this.saveStateForUndo(); // Prepare for undo functionality
|
|
318
|
-
//
|
|
319
517
|
if (!nearestContainer.children) {
|
|
320
518
|
nearestContainer.children = [];
|
|
321
519
|
}
|
|
322
|
-
|
|
323
|
-
set(newNode,
|
|
520
|
+
newNode.name = this.generateUniqueName(newNode.type);
|
|
521
|
+
set(newNode, '__meta__.id', Math.random() * Math.pow(10, 18)); // Ensure a unique ID
|
|
522
|
+
//
|
|
523
|
+
this.commandManager.executeCommand(new AddWidgetCommand(newNode, nearestContainer, nearestContainer));
|
|
324
524
|
//
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
525
|
+
setTimeout(() => {
|
|
526
|
+
this.refresh({ widget: nearestContainer }); // Refresh the UI
|
|
527
|
+
this.select({ widget: newNode }); // Select the newly pasted node
|
|
528
|
+
});
|
|
328
529
|
}
|
|
329
530
|
export() {
|
|
330
|
-
const json = this.formatOutputJSON(this.
|
|
531
|
+
const json = this.formatOutputJSON(this.document(), '__meta__');
|
|
331
532
|
return JSON.stringify(json);
|
|
332
533
|
}
|
|
333
534
|
download() {
|
|
334
535
|
// Convert the object to a JSON string
|
|
335
536
|
const jsonStr = this.export();
|
|
336
537
|
// Create a blob object from the JSON string
|
|
337
|
-
const blob = new Blob([jsonStr], { type:
|
|
538
|
+
const blob = new Blob([jsonStr], { type: 'application/json' });
|
|
338
539
|
// Create a URL for the blob object
|
|
339
540
|
const url = URL.createObjectURL(blob);
|
|
340
541
|
// Create a temporary <a> element to trigger the download
|
|
341
|
-
const a = document.createElement(
|
|
542
|
+
const a = document.createElement('a');
|
|
342
543
|
a.href = url;
|
|
343
|
-
a.download =
|
|
544
|
+
a.download = 'export.json';
|
|
344
545
|
// Append the <a> element to the document body (necessary for some browsers)
|
|
345
546
|
document.body.appendChild(a);
|
|
346
547
|
// Trigger the download by clicking the <a> element
|
|
@@ -361,7 +562,7 @@ class AXPDesignerService {
|
|
|
361
562
|
let uniqueName = `${baseName}${index}`;
|
|
362
563
|
// Gather all existing names to check against
|
|
363
564
|
const existingNames = new Set();
|
|
364
|
-
this.collectAllNames(this.
|
|
565
|
+
this.collectAllNames(this.document(), existingNames);
|
|
365
566
|
// Increment the index until a unique name is found
|
|
366
567
|
while (existingNames.has(uniqueName)) {
|
|
367
568
|
index++;
|
|
@@ -384,6 +585,17 @@ class AXPDesignerService {
|
|
|
384
585
|
}
|
|
385
586
|
}
|
|
386
587
|
}
|
|
588
|
+
async openPreview() {
|
|
589
|
+
const com = await import('./acorex-platform-layout-designer-widget-picker.component-CaMaBGON.mjs').then((c) => c.AXPDesignerWidgetPickerComponent);
|
|
590
|
+
await this.popupService.open(com, {
|
|
591
|
+
title: 'Widget Gallery',
|
|
592
|
+
size: 'full',
|
|
593
|
+
closeButton: true,
|
|
594
|
+
data: {
|
|
595
|
+
widgets: sortBy(this.widgetRegisteryService.all().filter((c) => c.visible != false), (c) => c.title),
|
|
596
|
+
},
|
|
597
|
+
});
|
|
598
|
+
}
|
|
387
599
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
388
600
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService }); }
|
|
389
601
|
}
|
|
@@ -438,7 +650,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
438
650
|
//
|
|
439
651
|
this.service.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
|
|
440
652
|
if (this.isCurrentWidget(c.widget)) {
|
|
441
|
-
this.instance
|
|
653
|
+
this.instance?.setChildren(this.node().children ?? []);
|
|
442
654
|
}
|
|
443
655
|
});
|
|
444
656
|
//
|
|
@@ -553,7 +765,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
553
765
|
});
|
|
554
766
|
}
|
|
555
767
|
applyOptions(values) {
|
|
556
|
-
if (this.node().defaultValue != null) {
|
|
768
|
+
if (this.instance && this.node().defaultValue != null) {
|
|
557
769
|
this.instance.setValue(this.node().defaultValue);
|
|
558
770
|
}
|
|
559
771
|
this.mergedOptions.update((currentOptions) => {
|
|
@@ -624,48 +836,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
624
836
|
class AXPDesignerBoardComponent {
|
|
625
837
|
constructor() {
|
|
626
838
|
this.context = {};
|
|
627
|
-
this.
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
839
|
+
this.elementRef = inject((ElementRef));
|
|
840
|
+
this.breakpointMap = {
|
|
841
|
+
'sm': 640,
|
|
842
|
+
'md': 768,
|
|
843
|
+
'lg': 1024,
|
|
844
|
+
'xl': 1280,
|
|
845
|
+
'xxl': 1536
|
|
633
846
|
};
|
|
847
|
+
this.service = inject(AXPDesignerService);
|
|
848
|
+
this.width = computed(() => {
|
|
849
|
+
switch (this.service.size()) {
|
|
850
|
+
case 'sm':
|
|
851
|
+
return '340px';
|
|
852
|
+
case 'md':
|
|
853
|
+
case 'lg':
|
|
854
|
+
return '768px';
|
|
855
|
+
default:
|
|
856
|
+
return '100%';
|
|
857
|
+
}
|
|
858
|
+
});
|
|
859
|
+
this.ef = effect(() => {
|
|
860
|
+
this.removeCustomClass();
|
|
861
|
+
if (this.service.size() != 'xl') {
|
|
862
|
+
this.applyResponsiveStyles(this.service.size());
|
|
863
|
+
}
|
|
864
|
+
});
|
|
634
865
|
}
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
}
|
|
651
|
-
break;
|
|
652
|
-
case 'x':
|
|
653
|
-
if (this.service.canCutCopy()) {
|
|
654
|
-
event.preventDefault(); // Prevent the browser's default cut action
|
|
655
|
-
this.service.cut();
|
|
656
|
-
}
|
|
657
|
-
break;
|
|
658
|
-
case 'v':
|
|
659
|
-
if (this.service.canPaste()) {
|
|
660
|
-
event.preventDefault(); // Prevent the browser's default paste action
|
|
661
|
-
this.service.paste();
|
|
866
|
+
// Unified method to extract media queries and create a custom class
|
|
867
|
+
applyResponsiveStyles(breakpoint) {
|
|
868
|
+
const minWidth = get(this.breakpointMap, breakpoint);
|
|
869
|
+
const mediaRules = [];
|
|
870
|
+
// Loop through all the stylesheets
|
|
871
|
+
for (let sheet of Array.from(document.styleSheets)) {
|
|
872
|
+
try {
|
|
873
|
+
// Loop through CSS rules
|
|
874
|
+
for (let rule of Array.from(sheet.cssRules)) {
|
|
875
|
+
// Check if the rule is a CSSMediaRule
|
|
876
|
+
if (rule instanceof CSSMediaRule && rule.media.mediaText.includes(`min-width: ${minWidth}px`)) {
|
|
877
|
+
// Loop through the media rule's CSS rules
|
|
878
|
+
for (let subRule of Array.from(rule.cssRules)) {
|
|
879
|
+
mediaRules.push(subRule.cssText);
|
|
880
|
+
}
|
|
662
881
|
}
|
|
663
|
-
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
catch (e) {
|
|
885
|
+
console.error('Error accessing stylesheet:', e);
|
|
664
886
|
}
|
|
665
887
|
}
|
|
888
|
+
// Create a dynamic class for the media queries
|
|
889
|
+
this.createCustomClass(`axp-preview-${breakpoint}`, mediaRules, breakpoint);
|
|
890
|
+
}
|
|
891
|
+
createCustomClass(className, styles, breakpoint) {
|
|
892
|
+
const styleSheet = document.createElement('style');
|
|
893
|
+
styleSheet.setAttribute("data-screen", breakpoint);
|
|
894
|
+
// Construct a pure CSS string, dynamically replacing the breakpoint prefix
|
|
895
|
+
let styleString = "";
|
|
896
|
+
styles.forEach(style => {
|
|
897
|
+
// Replace any prefixed classes like 'lg:' or 'md:' dynamically
|
|
898
|
+
const dynamicPrefix = new RegExp(`\\.${breakpoint}\\\\:`, 'g');
|
|
899
|
+
styleString += `.${className} ${style.replace(dynamicPrefix, '.')}`; // Replace the breakpoint prefix
|
|
900
|
+
});
|
|
901
|
+
styleSheet.innerText = styleString;
|
|
902
|
+
this.removeCustomClass();
|
|
903
|
+
this.elementRef.nativeElement.appendChild(styleSheet);
|
|
904
|
+
}
|
|
905
|
+
removeCustomClass() {
|
|
906
|
+
this.elementRef.nativeElement.querySelectorAll('style').forEach(s => s.remove());
|
|
666
907
|
}
|
|
667
908
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
668
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerBoardComponent, isStandalone: true, selector: "axp-designer-board",
|
|
909
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerBoardComponent, isStandalone: true, selector: "axp-designer-board", ngImport: i0, template: "<div class=\"axp-designer-board axp-state-design axp-preview-{{service.size()}}\" [style.width]=\"width()\">\n <axp-widgets-container [(context)]=\"context\">\n <axp-widget-designer-renderer [node]=\"service.currentPage()\" [mode]=\"service.mode()\">\n </axp-widget-designer-renderer>\n </axp-widgets-container>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: AXPWidgetDesignerRendererComponent, selector: "axp-widget-designer-renderer", inputs: ["parentNode", "index", "mode", "node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
669
910
|
}
|
|
670
911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{
|
|
671
912
|
type: Component,
|
|
@@ -673,14 +914,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
673
914
|
CommonModule,
|
|
674
915
|
AXPLayoutBuilderModule,
|
|
675
916
|
AXPWidgetDesignerRendererComponent
|
|
676
|
-
], template: "<axp-widgets-container [(context)]=\"context\">\n
|
|
677
|
-
}]
|
|
678
|
-
type: HostBinding,
|
|
679
|
-
args: ['class']
|
|
680
|
-
}], handleKeyboardEvent: [{
|
|
681
|
-
type: HostListener,
|
|
682
|
-
args: ['document:keydown', ['$event']]
|
|
683
|
-
}] } });
|
|
917
|
+
], template: "<div class=\"axp-designer-board axp-state-design axp-preview-{{service.size()}}\" [style.width]=\"width()\">\n <axp-widgets-container [(context)]=\"context\">\n <axp-widget-designer-renderer [node]=\"service.currentPage()\" [mode]=\"service.mode()\">\n </axp-widget-designer-renderer>\n </axp-widgets-container>\n</div>" }]
|
|
918
|
+
}] });
|
|
684
919
|
|
|
685
920
|
class AXPDesignerAddWidgetButtonComponent {
|
|
686
921
|
constructor() {
|
|
@@ -693,37 +928,103 @@ class AXPDesignerAddWidgetButtonComponent {
|
|
|
693
928
|
}
|
|
694
929
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
695
930
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerAddWidgetButtonComponent, isStandalone: true, selector: "axp-designer-add-widget-button", ngImport: i0, template: `
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
931
|
+
<div class="ax-container">
|
|
932
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
933
|
+
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
934
|
+
</ax-button>
|
|
935
|
+
</div>
|
|
936
|
+
`, isInline: true, styles: ["axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
702
937
|
}
|
|
703
938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{
|
|
704
939
|
type: Component,
|
|
705
940
|
args: [{ selector: 'axp-designer-add-widget-button', template: `
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
941
|
+
<div class="ax-container">
|
|
942
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
943
|
+
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
944
|
+
</ax-button>
|
|
945
|
+
</div>
|
|
946
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule], encapsulation: ViewEncapsulation.None, styles: ["axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\n"] }]
|
|
712
947
|
}] });
|
|
713
948
|
|
|
714
|
-
class
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
949
|
+
class AXPDesignerGridDrawerComponent {
|
|
950
|
+
constructor() {
|
|
951
|
+
this.rowsCount = model(5, { alias: "rows" });
|
|
952
|
+
this.colsCount = model(12, { alias: "columns" });
|
|
953
|
+
this.onSelect = output();
|
|
954
|
+
this.rows = computed(() => Array.from({ length: this.rowsCount() }).map((v, index) => index + 1));
|
|
955
|
+
this.columns = computed(() => Array.from({ length: this.colsCount() }).map((v, index) => index + 1));
|
|
956
|
+
this.rangeR = signal(0);
|
|
957
|
+
this.rangeC = signal(0);
|
|
958
|
+
}
|
|
959
|
+
handleMouseHover(r, c) {
|
|
960
|
+
this.rangeR.set(r);
|
|
961
|
+
this.rangeC.set(c);
|
|
962
|
+
}
|
|
963
|
+
handleClick(r, c) {
|
|
964
|
+
this.onSelect.emit({ rows: r, cols: c });
|
|
965
|
+
}
|
|
966
|
+
handleMouseLeave(event) {
|
|
967
|
+
this.rangeR.set(0);
|
|
968
|
+
this.rangeC.set(0);
|
|
969
|
+
}
|
|
970
|
+
get __style() {
|
|
971
|
+
return {
|
|
972
|
+
"--cols-width": `${this.colsCount() == 0 ? 0 : (100 / this.colsCount())}%`
|
|
973
|
+
};
|
|
974
|
+
}
|
|
975
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
976
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerGridDrawerComponent, isStandalone: true, selector: "axp-designer-grid-drawer", inputs: { rowsCount: { classPropertyName: "rowsCount", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, colsCount: { classPropertyName: "colsCount", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowsCount: "rowsChange", colsCount: "columnsChange", onSelect: "onSelect" }, host: { listeners: { "mouseleave": "handleMouseLeave($event)" }, properties: { "style": "this.__style" } }, ngImport: i0, template: `
|
|
977
|
+
<table class="table-picker" >
|
|
978
|
+
<tbody>
|
|
979
|
+
@for(r of rows();track $index)
|
|
980
|
+
{
|
|
981
|
+
<tr >
|
|
982
|
+
@for(c of columns();track $index)
|
|
983
|
+
{
|
|
984
|
+
<td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
|
|
985
|
+
</td>
|
|
986
|
+
}
|
|
987
|
+
</tr>
|
|
988
|
+
}
|
|
989
|
+
<tr>
|
|
990
|
+
<td [attr.colspan]="columns().length" class="ax-text-center">
|
|
991
|
+
<small >{{rangeR()}}*{{rangeC()}}</small>
|
|
992
|
+
</td>
|
|
993
|
+
</tr>
|
|
994
|
+
</tbody>
|
|
995
|
+
</table>
|
|
996
|
+
`, isInline: true, styles: [":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));width:var(--cols-width)}:host table td:after{content:\"\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
718
997
|
}
|
|
719
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
720
|
-
type:
|
|
721
|
-
args: [{
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
998
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, decorators: [{
|
|
999
|
+
type: Component,
|
|
1000
|
+
args: [{ selector: 'axp-designer-grid-drawer', template: `
|
|
1001
|
+
<table class="table-picker" >
|
|
1002
|
+
<tbody>
|
|
1003
|
+
@for(r of rows();track $index)
|
|
1004
|
+
{
|
|
1005
|
+
<tr >
|
|
1006
|
+
@for(c of columns();track $index)
|
|
1007
|
+
{
|
|
1008
|
+
<td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
|
|
1009
|
+
</td>
|
|
1010
|
+
}
|
|
1011
|
+
</tr>
|
|
1012
|
+
}
|
|
1013
|
+
<tr>
|
|
1014
|
+
<td [attr.colspan]="columns().length" class="ax-text-center">
|
|
1015
|
+
<small >{{rangeR()}}*{{rangeC()}}</small>
|
|
1016
|
+
</td>
|
|
1017
|
+
</tr>
|
|
1018
|
+
</tbody>
|
|
1019
|
+
</table>
|
|
1020
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));width:var(--cols-width)}:host table td:after{content:\"\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity))}\n"] }]
|
|
1021
|
+
}], propDecorators: { handleMouseLeave: [{
|
|
1022
|
+
type: HostListener,
|
|
1023
|
+
args: ['mouseleave', ['$event']]
|
|
1024
|
+
}], __style: [{
|
|
1025
|
+
type: HostBinding,
|
|
1026
|
+
args: ['style']
|
|
1027
|
+
}] } });
|
|
727
1028
|
|
|
728
1029
|
class AXPDesignerBreadcrumbsComponent {
|
|
729
1030
|
constructor() {
|
|
@@ -750,7 +1051,7 @@ class AXPDesignerBreadcrumbsComponent {
|
|
|
750
1051
|
<i class="ax-icon ax-icon-chevron-right"></i>
|
|
751
1052
|
</ng-template>
|
|
752
1053
|
</ax-breadcrumbs>
|
|
753
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1$
|
|
1054
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1$1.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i1$1.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
754
1055
|
}
|
|
755
1056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{
|
|
756
1057
|
type: Component,
|
|
@@ -780,6 +1081,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
780
1081
|
}]
|
|
781
1082
|
}] });
|
|
782
1083
|
|
|
1084
|
+
class AXPDesignerHeaderMenuComponent {
|
|
1085
|
+
constructor() {
|
|
1086
|
+
this.service = inject(AXPDesignerService);
|
|
1087
|
+
}
|
|
1088
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1089
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPDesignerHeaderMenuComponent, isStandalone: true, selector: "axp-designer-header-menu", ngImport: i0, template: "<ax-menu [openOn]=\"'hover'\">\n <ax-menu-item text=\"Home\">\n <ax-menu-item text=\"New\"></ax-menu-item>\n <ax-menu-item text=\"Export\">\n <ax-menu-item text=\"Download JSON\" (onClick)=\"service.download()\">\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Edit\">\n <ax-menu-item text=\"Undo\" [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Redo\" [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item text=\"Cut\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Copy\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Paste\" [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Help\">\n <ax-menu-item text=\"About\"></ax-menu-item>\n </ax-menu-item>\n</ax-menu>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i2$3.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["disabled", "text", "active"], outputs: ["activeChange", "onClick"] }, { kind: "component", type: i2$3.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn"] }] }); }
|
|
1090
|
+
}
|
|
1091
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{
|
|
1092
|
+
type: Component,
|
|
1093
|
+
args: [{ standalone: true, imports: [
|
|
1094
|
+
CommonModule,
|
|
1095
|
+
AXDecoratorModule,
|
|
1096
|
+
AXMenuModule,
|
|
1097
|
+
], selector: 'axp-designer-header-menu', template: "<ax-menu [openOn]=\"'hover'\">\n <ax-menu-item text=\"Home\">\n <ax-menu-item text=\"New\"></ax-menu-item>\n <ax-menu-item text=\"Export\">\n <ax-menu-item text=\"Download JSON\" (onClick)=\"service.download()\">\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Edit\">\n <ax-menu-item text=\"Undo\" [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Redo\" [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item text=\"Cut\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Copy\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Paste\" [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Help\">\n <ax-menu-item text=\"About\"></ax-menu-item>\n </ax-menu-item>\n</ax-menu>" }]
|
|
1098
|
+
}] });
|
|
1099
|
+
|
|
1100
|
+
class AXPDesignerOutlineComponent {
|
|
1101
|
+
constructor() {
|
|
1102
|
+
this.service = inject(AXPDesignerService);
|
|
1103
|
+
this.collapsedStates = new Map();
|
|
1104
|
+
this.root = signal(this.getTree());
|
|
1105
|
+
merge$1(this.service.onRefresh, this.service.onUpdate).subscribe(() => {
|
|
1106
|
+
this.root.update((c) => ({ ...this.getTree() }));
|
|
1107
|
+
});
|
|
1108
|
+
}
|
|
1109
|
+
getTree() {
|
|
1110
|
+
return {
|
|
1111
|
+
type: AXPWidgetsCatalog.document,
|
|
1112
|
+
children: [this.service.currentPage()],
|
|
1113
|
+
};
|
|
1114
|
+
}
|
|
1115
|
+
toggleCollapse(node) {
|
|
1116
|
+
// Toggle the current state or set to true if undefined
|
|
1117
|
+
this.collapsedStates.set(node, !this.collapsedStates.get(node));
|
|
1118
|
+
}
|
|
1119
|
+
isCollapsed(node) {
|
|
1120
|
+
// Return the collapsed state, default is false (expanded)
|
|
1121
|
+
return !!this.collapsedStates.get(node);
|
|
1122
|
+
}
|
|
1123
|
+
getConfig(node) {
|
|
1124
|
+
return get(node, '__meta__.config');
|
|
1125
|
+
}
|
|
1126
|
+
handleClick(e, node) {
|
|
1127
|
+
e.stopPropagation();
|
|
1128
|
+
this.service.select({ widget: node });
|
|
1129
|
+
}
|
|
1130
|
+
handleToggleClick(event, item) {
|
|
1131
|
+
event.stopPropagation(); // Prevents the event from bubbling up to parent elements
|
|
1132
|
+
this.toggleCollapse(item);
|
|
1133
|
+
}
|
|
1134
|
+
handleMouseOver(e, node) {
|
|
1135
|
+
e.stopPropagation();
|
|
1136
|
+
this.service.focus({ widget: node });
|
|
1137
|
+
}
|
|
1138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerOutlineComponent, isStandalone: true, selector: "axp-designer-outline", ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Outline</span>\n </div>\n <ax-close-button></ax-close-button>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @if(root().children?.length)\n {\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for( node of root().children;track $index)\n {\n <ng-container [ngTemplateOutlet]=\"sideMenu\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n }\n </ul>\n <ng-template #sideMenu let-item>\n <li (click)=\"handleClick($event,item)\" (mouseover)=\"handleMouseOver($event,item)\">\n <div [class.ax-bg-neutral-700]=\"item === service.selectedNode()\"\n class=\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm\">\n <span class=\"ax-w-5\">\n @if(item.children?.length)\n {\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"isCollapsed(item)\"\n (click)=\"handleToggleClick($event, item)\" [class.fa-chevron-down]=\"!isCollapsed(item)\"></i>\n }\n </span>\n @let config = getConfig(item);\n <span class=\"ax-w-5\">\n @if(config.icon)\n {\n <i [ngClass]=\"config.icon\"></i>\n }\n </span>\n <span class=\"ax-truncate\">{{config.title}} : {{item.name}}</span>\n </div>\n @if(item.children?.length && !isCollapsed(item)) {\n <ul class=\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ul>\n }\n </li>\n </ng-template>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No widgets found in the page\n </div>\n }\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1140
|
+
}
|
|
1141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{
|
|
1142
|
+
type: Component,
|
|
1143
|
+
args: [{ selector: 'axp-designer-outline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, AXPLayoutBuilderModule, AXDecoratorModule], template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Outline</span>\n </div>\n <ax-close-button></ax-close-button>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @if(root().children?.length)\n {\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for( node of root().children;track $index)\n {\n <ng-container [ngTemplateOutlet]=\"sideMenu\" [ngTemplateOutletContext]=\"{ $implicit: node }\">\n </ng-container>\n }\n </ul>\n <ng-template #sideMenu let-item>\n <li (click)=\"handleClick($event,item)\" (mouseover)=\"handleMouseOver($event,item)\">\n <div [class.ax-bg-neutral-700]=\"item === service.selectedNode()\"\n class=\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm\">\n <span class=\"ax-w-5\">\n @if(item.children?.length)\n {\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"isCollapsed(item)\"\n (click)=\"handleToggleClick($event, item)\" [class.fa-chevron-down]=\"!isCollapsed(item)\"></i>\n }\n </span>\n @let config = getConfig(item);\n <span class=\"ax-w-5\">\n @if(config.icon)\n {\n <i [ngClass]=\"config.icon\"></i>\n }\n </span>\n <span class=\"ax-truncate\">{{config.title}} : {{item.name}}</span>\n </div>\n @if(item.children?.length && !isCollapsed(item)) {\n <ul class=\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\">\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\n </ng-container>\n </ul>\n }\n </li>\n </ng-template>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No widgets found in the page\n </div>\n }\n </div>\n</div>" }]
|
|
1144
|
+
}], ctorParameters: () => [] });
|
|
1145
|
+
|
|
783
1146
|
class AXPWidgetPropertyViewerComponent {
|
|
784
1147
|
constructor() {
|
|
785
1148
|
this.widget = input.required();
|
|
@@ -808,6 +1171,9 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
808
1171
|
}
|
|
809
1172
|
}, { allowSignalWrites: true });
|
|
810
1173
|
}
|
|
1174
|
+
update(values) {
|
|
1175
|
+
this.context.set(merge(cloneDeep(this.context()), values));
|
|
1176
|
+
}
|
|
811
1177
|
fillTabs() {
|
|
812
1178
|
const tabs = [
|
|
813
1179
|
{
|
|
@@ -854,8 +1220,8 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
854
1220
|
handleContextChange(e) {
|
|
855
1221
|
untracked(() => {
|
|
856
1222
|
this.context.set(e.data);
|
|
1223
|
+
this.onChanged.emit({ values: this.context(), mode: e.init ? 'init' : 'update' });
|
|
857
1224
|
});
|
|
858
|
-
this.onChanged.emit({ values: e.data, mode: 'update' });
|
|
859
1225
|
}
|
|
860
1226
|
handleTabChange(event) {
|
|
861
1227
|
const indx = event.index;
|
|
@@ -864,7 +1230,7 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
864
1230
|
}
|
|
865
1231
|
}
|
|
866
1232
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
867
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetPropertyViewerComponent, isStandalone: true, selector: "axp-widget-property-viewer", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChanged: "onChanged" }, ngImport: i0, template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1$
|
|
1233
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetPropertyViewerComponent, isStandalone: true, selector: "axp-widget-property-viewer", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChanged: "onChanged" }, ngImport: i0, template: "<axp-widgets-container [context]=\"context()\" (onChanged)=\"handleContextChange($event)\">\n <div class=\"ax-flex ax-flex-col\">\n <div class=\"ax-pb-2\">\n <ax-tabs look=\"default\" (onActiveTabChanged)=\"handleTabChange($event)\" [look]=\"'with-line'\">\n @for( tab of tabs();track $index){\n <ax-tab-item [text]=\"tab.title\" [key]=\"$index.toString()\" [active]=\"currentTabIndex() === $index\">\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-collapse-group class=\"ax-h-fit\" look=\"blank\">\n @for( group of groups();track $index){\n <ax-collapse [caption]=\"group.title\" look=\"solid\" [(isCollapsed)]=\"group.isCollapsed\">\n <div class=\"ax-flex ax-flex-col ax-divide-y\">\n @for( p of group.props;track $index){\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-py-2 first:ax-pt-0 last:ax-pb-0\">\n <span class=\"ax-font-semibold\">{{p.title}}</span>\n @if(p.schema.interface)\n {\n <axp-widget-renderer [node]=\"p.schema.interface\" [mode]=\"'edit'\">\n </axp-widget-renderer>\n }\n </div>\n }\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n </div>\n </div>\n</axp-widgets-container>", styles: ["ax-collapse .ax-collapse-header{font-weight:600}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1$2.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i1$2.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$4.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$4.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i3$1.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
868
1234
|
}
|
|
869
1235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, decorators: [{
|
|
870
1236
|
type: Component,
|
|
@@ -873,88 +1239,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
873
1239
|
type: Output
|
|
874
1240
|
}] } });
|
|
875
1241
|
|
|
876
|
-
class
|
|
1242
|
+
class AXPDesignerHistoryComponent {
|
|
877
1243
|
constructor() {
|
|
878
1244
|
this.service = inject(AXPDesignerService);
|
|
879
|
-
this.collapsedStates = new Map();
|
|
880
|
-
this.root = signal(this.service.root());
|
|
881
|
-
merge$1(this.service.onRefresh, this.service.onUpdate)
|
|
882
|
-
.subscribe(() => {
|
|
883
|
-
this.root.update(c => ({ ...this.service.root() }));
|
|
884
|
-
});
|
|
885
|
-
}
|
|
886
|
-
toggleCollapse(node) {
|
|
887
|
-
// Toggle the current state or set to true if undefined
|
|
888
|
-
this.collapsedStates.set(node, !this.collapsedStates.get(node));
|
|
889
|
-
}
|
|
890
|
-
isCollapsed(node) {
|
|
891
|
-
// Return the collapsed state, default is false (expanded)
|
|
892
|
-
return !!this.collapsedStates.get(node);
|
|
893
|
-
}
|
|
894
|
-
getConfig(node) {
|
|
895
|
-
return get(node, "__meta__.config");
|
|
896
|
-
}
|
|
897
|
-
handleClick(e, node) {
|
|
898
|
-
e.stopPropagation();
|
|
899
|
-
this.service.select({ widget: node });
|
|
900
|
-
}
|
|
901
|
-
handleToggleClick(event, item) {
|
|
902
|
-
event.stopPropagation(); // Prevents the event from bubbling up to parent elements
|
|
903
|
-
this.toggleCollapse(item);
|
|
904
1245
|
}
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
1246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerHistoryComponent, isStandalone: true, selector: "axp-designer-history", ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <!-- Header -->\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">History</span>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ax-button look=\"ghost\" class=\"ax-xs\">\n <ax-icon class=\"fa-light fa-ellipsis\"></ax-icon>\n <ax-dropdown-panel class=\"ax-xs\">\n <ax-button-item-list>\n <ax-button-item text=\"Clear\" name=\"add\" (onClick)=\"service.clearHistory()\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-close-button></ax-close-button>\n </div>\n </div>\n\n <!-- History List or Empty State -->\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @if(service.history().length)\n {\n <!-- History Items -->\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for (step of service.history(); track $index) {\n <li (click)=\"service.navigateTo($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm\"\n [class.ax-italic]=\"step.isFuture\" [class.ax-text-neutral-400]=\"step.isFuture\"\n [class.ax-bg-neutral-700]=\"step.isCurrent\">\n <i class=\"ax-me-1\" [ngClass]=\"step.icon\"></i>\n {{ step.description }}\n </li>\n }\n </ul>\n }\n @else {\n <!-- No History Found -->\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">\n No changes have been made yet.\n </div>\n }\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1248
|
+
}
|
|
1249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{
|
|
1250
|
+
type: Component,
|
|
1251
|
+
args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1252
|
+
CommonModule,
|
|
1253
|
+
AXDecoratorModule,
|
|
1254
|
+
AXButtonModule,
|
|
1255
|
+
AXDropdownModule
|
|
1256
|
+
], template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <!-- Header -->\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">History</span>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ax-button look=\"ghost\" class=\"ax-xs\">\n <ax-icon class=\"fa-light fa-ellipsis\"></ax-icon>\n <ax-dropdown-panel class=\"ax-xs\">\n <ax-button-item-list>\n <ax-button-item text=\"Clear\" name=\"add\" (onClick)=\"service.clearHistory()\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-close-button></ax-close-button>\n </div>\n </div>\n\n <!-- History List or Empty State -->\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @if(service.history().length)\n {\n <!-- History Items -->\n <ul class=\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\">\n @for (step of service.history(); track $index) {\n <li (click)=\"service.navigateTo($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm\"\n [class.ax-italic]=\"step.isFuture\" [class.ax-text-neutral-400]=\"step.isFuture\"\n [class.ax-bg-neutral-700]=\"step.isCurrent\">\n <i class=\"ax-me-1\" [ngClass]=\"step.icon\"></i>\n {{ step.description }}\n </li>\n }\n </ul>\n }\n @else {\n <!-- No History Found -->\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">\n No changes have been made yet.\n </div>\n }\n </div>\n</div>" }]
|
|
1257
|
+
}] });
|
|
1258
|
+
|
|
1259
|
+
class AXPDesignerPagesComponent {
|
|
1260
|
+
constructor() {
|
|
1261
|
+
this.service = inject(AXPDesignerService);
|
|
908
1262
|
}
|
|
909
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
910
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type:
|
|
1263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPDesignerPagesComponent, isStandalone: true, selector: "axp-designer-pages", ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Pages</span>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ax-button look=\"ghost\" class=\"ax-xs\" (onClick)=\"service.addNewPage()\" title=\"Add New Page\">\n <ax-icon class=\"fa-light fa-file-circle-plus\"></ax-icon>\n </ax-button>\n <ax-close-button></ax-close-button>\n </div>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @let count = service.document().children?.length ?? 0;\n @if(count)\n {\n <ul class=\"ax-text-white ax-text-sm ax-bg-gray-800 ax-p-2 ax-rounded-md ax-space-y-1\">\n @for( page of service.document().children;track $index)\n {\n <li (click)=\"service.goToPage($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\"\n [class.ax-bg-neutral-700]=\"$index==service.currentPageIndex()\">\n <div>\n <i class=\"fa-light fa-file ax-me-1\"></i>\n Page {{$index + 1}}\n </div>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\">\n @if(count>1)\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removePage($index)\"></i>\n }\n <i class=\"fa-light fa-clone hover:ax-text-primary-500\" (click)=\"service.clonePage($index)\"></i>\n </div>\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No pages found in the document\n </div>\n }\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: AXDropdownModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
911
1265
|
}
|
|
912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
1266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{
|
|
913
1267
|
type: Component,
|
|
914
|
-
args: [{ selector: 'axp-designer-
|
|
1268
|
+
args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
915
1269
|
CommonModule,
|
|
916
1270
|
AXPLayoutBuilderModule,
|
|
917
|
-
AXBreadcrumbsModule,
|
|
918
1271
|
AXDecoratorModule,
|
|
919
|
-
|
|
920
|
-
|
|
1272
|
+
AXButtonModule,
|
|
1273
|
+
AXDropdownModule
|
|
1274
|
+
], template: "<div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Pages</span>\n </div>\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ax-button look=\"ghost\" class=\"ax-xs\" (onClick)=\"service.addNewPage()\" title=\"Add New Page\">\n <ax-icon class=\"fa-light fa-file-circle-plus\"></ax-icon>\n </ax-button>\n <ax-close-button></ax-close-button>\n </div>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n @let count = service.document().children?.length ?? 0;\n @if(count)\n {\n <ul class=\"ax-text-white ax-text-sm ax-bg-gray-800 ax-p-2 ax-rounded-md ax-space-y-1\">\n @for( page of service.document().children;track $index)\n {\n <li (click)=\"service.goToPage($index)\"\n class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\"\n [class.ax-bg-neutral-700]=\"$index==service.currentPageIndex()\">\n <div>\n <i class=\"fa-light fa-file ax-me-1\"></i>\n Page {{$index + 1}}\n </div>\n <div class=\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\">\n @if(count>1)\n {\n <i class=\"fa-light fa-xmark hover:ax-text-danger-500\" (click)=\"service.removePage($index)\"></i>\n }\n <i class=\"fa-light fa-clone hover:ax-text-primary-500\" (click)=\"service.clonePage($index)\"></i>\n </div>\n </li>\n }\n </ul>\n }\n @else {\n <div class=\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\">No pages found in the document\n </div>\n }\n </div>\n</div>" }]
|
|
1275
|
+
}] });
|
|
921
1276
|
|
|
922
1277
|
class AXPLayoutDesignerComponent {
|
|
923
1278
|
constructor() {
|
|
924
|
-
this.currentTabIndex = signal(0);
|
|
925
1279
|
this.service = inject(AXPDesignerService);
|
|
926
|
-
this.tabs = [
|
|
927
|
-
{
|
|
928
|
-
mode: 'designer',
|
|
929
|
-
title: 'Designer',
|
|
930
|
-
},
|
|
931
|
-
{
|
|
932
|
-
mode: 'edit',
|
|
933
|
-
title: 'Edit',
|
|
934
|
-
},
|
|
935
|
-
{
|
|
936
|
-
mode: 'view',
|
|
937
|
-
title: 'View',
|
|
938
|
-
},
|
|
939
|
-
{
|
|
940
|
-
mode: 'print',
|
|
941
|
-
title: 'Print',
|
|
942
|
-
},
|
|
943
|
-
];
|
|
944
1280
|
this.nodeConfig = computed(() => this.service.selectedNode() ? get(this.service.selectedNode(), '__meta__.config') : null);
|
|
1281
|
+
this.service.onUpdate.subscribe((e) => {
|
|
1282
|
+
this.propertyViewer.update(e.values);
|
|
1283
|
+
});
|
|
945
1284
|
}
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
1285
|
+
handleKeyboardEvent(event) {
|
|
1286
|
+
if (event.ctrlKey) {
|
|
1287
|
+
switch (event.key.toLowerCase()) { // Convert the key to lowercase to ensure case insensitivity
|
|
1288
|
+
case 'z':
|
|
1289
|
+
event.preventDefault(); // Prevent the browser's default undo action
|
|
1290
|
+
this.service.undo();
|
|
1291
|
+
break;
|
|
1292
|
+
case 'y':
|
|
1293
|
+
event.preventDefault(); // Prevent the browser's default redo action
|
|
1294
|
+
this.service.redo();
|
|
1295
|
+
break;
|
|
1296
|
+
case 'c':
|
|
1297
|
+
if (this.service.canCutCopy()) {
|
|
1298
|
+
event.preventDefault(); // Prevent the browser's default copy action
|
|
1299
|
+
this.service.copy();
|
|
1300
|
+
}
|
|
1301
|
+
break;
|
|
1302
|
+
case 'd':
|
|
1303
|
+
if (this.service.canCutCopy()) {
|
|
1304
|
+
event.preventDefault(); // Prevent the browser's default copy action
|
|
1305
|
+
this.service.clone();
|
|
1306
|
+
}
|
|
1307
|
+
break;
|
|
1308
|
+
case 'x':
|
|
1309
|
+
if (this.service.canCutCopy()) {
|
|
1310
|
+
event.preventDefault(); // Prevent the browser's default cut action
|
|
1311
|
+
this.service.cut();
|
|
1312
|
+
}
|
|
1313
|
+
break;
|
|
1314
|
+
case 'v':
|
|
1315
|
+
if (this.service.canPaste()) {
|
|
1316
|
+
event.preventDefault(); // Prevent the browser's default paste action
|
|
1317
|
+
this.service.paste();
|
|
1318
|
+
}
|
|
1319
|
+
break;
|
|
1320
|
+
}
|
|
951
1321
|
}
|
|
952
1322
|
}
|
|
953
|
-
get __class() {
|
|
954
|
-
return 'ax-h-full';
|
|
955
|
-
}
|
|
956
1323
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
957
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPLayoutDesignerComponent, isStandalone: true, selector: "axp-layout-designer", host: { properties: { "class": "this.__class" } }, providers: [AXPDesignerService], ngImport: i0, template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center ax-dark\">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-plus ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-dark ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <ax-menu [openOn]=\"'hover'\">\n <ax-menu-item text=\"Home\">\n <ax-menu-item text=\"New\"></ax-menu-item>\n <ax-menu-item text=\"Export\">\n <ax-menu-item text=\"Download JSON\" (onClick)=\"service.download()\">\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Edit\">\n <ax-menu-item text=\"Undo\" [disabled]=\"!service.canUndo()\" (onClick)=\"service.undo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-left\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Z\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Redo\" [disabled]=\"!service.canRedo()\" (onClick)=\"service.redo()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-rotate-right\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+Y\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-divider></ax-divider>\n <ax-menu-item text=\"Cut\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.cut()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-cut\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+X\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Copy\" [disabled]=\"!service.canCutCopy()\" (onClick)=\"service.copy()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-copy\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+C\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n <ax-menu-item text=\"Paste\" [disabled]=\"!service.canPaste()\" (onClick)=\"service.paste()\">\n <ax-prefix>\n <ax-icon>\n <i class=\"fa-solid fa-paste\"></i>\n </ax-icon>\n </ax-prefix>\n <ax-suffix>\n <ax-text>\n Ctrl+V\n </ax-text>\n </ax-suffix>\n </ax-menu-item>\n </ax-menu-item>\n <ax-menu-item text=\"Help\">\n <ax-menu-item text=\"About\"></ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button color=\"success\" look=\"twotone\" text=\"Preview\">\n <ax-icon class=\"fa-solid fa-eye \"> </ax-icon>\n </ax-button>\n <!-- <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"service.undo()\" [disabled]=\"!service.canUndo()\">\n <ax-icon class=\"fa-solid fa-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"service.redo()\" [disabled]=\"!service.canRedo()\">\n <ax-icon class=\"fa-solid fa-rotate-right ax-text-sm\"> </ax-icon>\n </ax-button> -->\n </div>\n </div>\n\n <!-- Board -->\n <div class=\"ax-h-full\">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <ax-drawer #bd location=\"start\" mode=\"push\" class=\"ax-dark\">\n <ax-content>\n <div class=\"ax-min-w-80 ax-h-full ax-overflow-auto ax-border-e\">\n </div>\n </ax-content>\n </ax-drawer>\n <ax-drawer #outline location=\"start\" mode=\"push\" class=\"ax-dark\">\n <ax-content>\n <div class=\"ax-flex ax-flex-col ax-border-e ax-w-72\">\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-p-2 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <span class=\"ax-font-semibold\">Outline</span>\n </div>\n <ax-close-button></ax-close-button>\n </div>\n <div class=\"ax-flex-1 ax-h-full ax-overflow-auto\">\n <axp-designer-outline></axp-designer-outline>\n </div>\n </div>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content>\n <div class=\"ax-bg-white ax-h-full ax-block\">\n <axp-designer-board class=\"ax-w-full ax-border-default ax-border ax-flex-1 ax-overflow-auto ax-p-3\">\n </axp-designer-board>\n </div>\n </ax-content>\n </ax-drawer-container>\n </div>\n\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-dark ax-flex ax-items-center\">\n @if(currentTabIndex()==0) {\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n }\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s ax-dark \" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{nodeConfig()?.title}}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values,mode:$event.mode})\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1);position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:rgba(var(--ax-color-primary-500),1)}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:9999;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: AXPDesignerBoardComponent, selector: "axp-designer-board" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }, { kind: "component", type: AXPDesignerBreadcrumbsComponent, selector: "axp-designer-breadcrumbs" }, { kind: "component", type: AXPDesignerOutlineComponent, selector: "axp-designer-outline" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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: AXDrawerModule }, { kind: "component", type: i3$2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.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: AXMenuModule }, { kind: "component", type: i5.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["disabled", "text", "active"], outputs: ["activeChange", "onClick"] }, { kind: "component", type: i5.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLayoutDesignerComponent, isStandalone: true, selector: "axp-layout-designer", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, providers: [AXPDesignerService], viewQueries: [{ propertyName: "propertyViewer", first: true, predicate: AXPWidgetPropertyViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden ax-dark\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center \">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <!-- <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button> -->\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"pages.toggle()\" title=\"Pages\">\n <ax-icon class=\"fa-solid fa-page ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"datasources.toggle()\" title=\"Data Sources\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\" title=\"Outline\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"history.toggle()\" title=\"History\">\n <ax-icon class=\"fa-solid fa-clock-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <!-- <ax-button color=\"ghost\" look=\"twotone\" title=\"Timeline\">\n <ax-icon class=\"fa-solid fa-diagram-sankey ax-text-sm\"> </ax-icon>\n </ax-button> -->\n </div>\n </div>\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <axp-designer-header-menu></axp-designer-header-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button-group color=\"ghost\" look=\"twotone\" [selection]=\"'single'\">\n <ax-button-item [selected]=\"service.size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"service.size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"service.size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"service.size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile\"></ax-icon>\n </ax-button-item>\n </ax-button-group>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button text=\"Design\" look=\"outline\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-suffix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Print\" name=\"print\"> </ax-button-item>\n <ax-button-item text=\"View\" name=\"view\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-button color=\"success\" look=\"outline\" text=\"Preview\" class=\"ax-xs\" (onClick)=\"service.openPreview()\">\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-play\"></ax-icon>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n <!-- Board -->\n <div class=\"ax-h-full \">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <!-- Pages -->\n <ax-drawer #pages location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-pages></axp-designer-pages>\n </ax-content>\n </ax-drawer>\n <!-- Datasources -->\n <ax-drawer #datasources location=\"start\" mode=\"push\">\n <ax-content>\n Datasources\n </ax-content>\n </ax-drawer>\n <!-- Outline Pnael -->\n <ax-drawer #outline location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-outline></axp-designer-outline>\n </ax-content>\n </ax-drawer>\n <!-- History Pnael -->\n <ax-drawer #history location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-history></axp-designer-history>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content class=\"ax-light\">\n <axp-designer-board class=\"ax-h-full ax-bg-on-surface ax-flex ax-justify-center\"> </axp-designer-board>\n </ax-content>\n </ax-drawer-container>\n </div>\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-flex ax-items-center\">\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s\" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{ nodeConfig()?.title }}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values, mode: $event.mode })\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity));padding:.75rem}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:#8b5cf6;position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:#8b5cf6}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:10;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}.axp-designer-board .axp-empty-space{background-color:rgba(var(--ax-color-primary-400),10%);background-image:linear-gradient(135deg,rgba(var(--ax-color-primary-400),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-color-primary-400),50%) 0,rgba(var(--ax-color-primary-400),50%) 60%,transparent 0,transparent);background-size:6px 6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: AXPDesignerBoardComponent, selector: "axp-designer-board" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget"], outputs: ["onChanged"] }, { kind: "component", type: AXPDesignerBreadcrumbsComponent, selector: "axp-designer-breadcrumbs" }, { kind: "component", type: AXPDesignerOutlineComponent, selector: "axp-designer-outline" }, { kind: "component", type: AXPDesignerHeaderMenuComponent, selector: "axp-designer-header-menu" }, { kind: "component", type: AXPDesignerHistoryComponent, selector: "axp-designer-history" }, { kind: "component", type: AXPDesignerPagesComponent, selector: "axp-designer-pages" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2$1.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: "component", type: i2$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed", "closeOthers"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXMenuModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i5.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "selectionChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
958
1325
|
}
|
|
959
1326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{
|
|
960
1327
|
type: Component,
|
|
@@ -965,20 +1332,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
965
1332
|
AXPWidgetPropertyViewerComponent,
|
|
966
1333
|
AXPDesignerBreadcrumbsComponent,
|
|
967
1334
|
AXPDesignerOutlineComponent,
|
|
1335
|
+
AXPDesignerHeaderMenuComponent,
|
|
1336
|
+
AXPDesignerHistoryComponent,
|
|
1337
|
+
AXPDesignerPagesComponent,
|
|
968
1338
|
AXTabsModule,
|
|
969
1339
|
AXButtonModule,
|
|
970
1340
|
AXDrawerModule,
|
|
971
1341
|
AXDecoratorModule,
|
|
972
|
-
AXMenuModule
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1342
|
+
AXMenuModule,
|
|
1343
|
+
AXButtonGroupModule,
|
|
1344
|
+
AXDropdownModule,
|
|
1345
|
+
], providers: [AXPDesignerService], template: "<ax-drawer-container class=\"ax-h-full ax-w-full ax-flex ax-relative child:ax-h-full ax-overflow-hidden ax-dark\">\n <ax-content class=\"ax-contents\">\n <!-- Toolbar Side -->\n <div class=\"ax-min-w-10 ax-bg-surface ax-border-e ax-xs ax-flex ax-flex-col ax-items-center \">\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\">\n <img src=\"assets/logos/logo.png\" class=\"ax-w-6\" />\n </div>\n <div class=\"ax-py-1\"></div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <!-- <ax-button color=\"ghost\" look=\"twotone\">\n <ax-icon class=\"fa-solid fa-puzzle ax-text-sm\"> </ax-icon>\n </ax-button> -->\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"pages.toggle()\" title=\"Pages\">\n <ax-icon class=\"fa-solid fa-page ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"datasources.toggle()\" title=\"Data Sources\">\n <ax-icon class=\"fa-solid fa-database ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"outline.toggle()\" title=\"Outline\">\n <ax-icon class=\"fa-solid fa-list-tree ax-text-sm\"> </ax-icon>\n </ax-button>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"history.toggle()\" title=\"History\">\n <ax-icon class=\"fa-solid fa-clock-rotate-left ax-text-sm\"> </ax-icon>\n </ax-button>\n <!-- <ax-button color=\"ghost\" look=\"twotone\" title=\"Timeline\">\n <ax-icon class=\"fa-solid fa-diagram-sankey ax-text-sm\"> </ax-icon>\n </ax-button> -->\n </div>\n </div>\n <!-- Main Side -->\n <div class=\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\">\n <!-- Header Toolbar -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-b ax-flex ax-flex-grow ax-justify-between ax-px-2\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-text-white\">\n <axp-designer-header-menu></axp-designer-header-menu>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button-group color=\"ghost\" look=\"twotone\" [selection]=\"'single'\">\n <ax-button-item [selected]=\"service.size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"service.size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"service.size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet\"></ax-icon>\n </ax-button-item>\n <ax-button-item [selected]=\"service.size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"service.size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile\"></ax-icon>\n </ax-button-item>\n </ax-button-group>\n </div>\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-xs ax-items-center\">\n <ax-button text=\"Design\" look=\"outline\" class=\"ax-xs\">\n <ax-suffix>\n <ax-icon class=\"fa-light fa-chevron-down\"></ax-icon>\n </ax-suffix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Print\" name=\"print\"> </ax-button-item>\n <ax-button-item text=\"View\" name=\"view\"> </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <ax-button color=\"success\" look=\"outline\" text=\"Preview\" class=\"ax-xs\" (onClick)=\"service.openPreview()\">\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-play\"></ax-icon>\n </ax-suffix>\n </ax-button>\n </div>\n </div>\n <!-- Board -->\n <div class=\"ax-h-full \">\n <ax-drawer-container class=\"ax-w-full ax-h-full\">\n <!-- Pages -->\n <ax-drawer #pages location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-pages></axp-designer-pages>\n </ax-content>\n </ax-drawer>\n <!-- Datasources -->\n <ax-drawer #datasources location=\"start\" mode=\"push\">\n <ax-content>\n Datasources\n </ax-content>\n </ax-drawer>\n <!-- Outline Pnael -->\n <ax-drawer #outline location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-outline></axp-designer-outline>\n </ax-content>\n </ax-drawer>\n <!-- History Pnael -->\n <ax-drawer #history location=\"start\" mode=\"push\">\n <ax-content>\n <axp-designer-history></axp-designer-history>\n </ax-content>\n </ax-drawer>\n <!-- Content of board -->\n <ax-content class=\"ax-light\">\n <axp-designer-board class=\"ax-h-full ax-bg-on-surface ax-flex ax-justify-center\"> </axp-designer-board>\n </ax-content>\n </ax-drawer-container>\n </div>\n <!-- Footer -->\n <div class=\"ax-min-h-10 ax-bg-surface ax-border-t ax-flex ax-items-center\">\n <axp-designer-breadcrumbs class=\"ax-border-default ax-border-t ax-p-2 ax-font-normal\">\n </axp-designer-breadcrumbs>\n </div>\n </div>\n </ax-content>\n <!-- Property Side -->\n <ax-drawer class=\"ax-w-80 ax-border-s\" location=\"end\" mode=\"push\" [collapsed]=\"false\" #pd>\n <ax-content>\n <div class=\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-py-2 ax-px-4 ax-border-b\">\n <div class=\"ax-flex ax-flex-row ax-gap-2 ax-items-center\">\n <i [ngClass]=\"nodeConfig()?.icon\"></i>\n <span class=\"ax-font-semibold\">{{ nodeConfig()?.title }}</span>\n </div>\n </div>\n <axp-widget-property-viewer [widget]=\"service.selectedNode()!\"\n (onChanged)=\"service.update({ values: $event.values, mode: $event.mode })\" class=\"ax-w-1/4\">\n </axp-widget-property-viewer>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>", styles: [".axp-designer-board{display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity));padding:.75rem}.axp-designer-board.axp-state-design .axp-widget-host{position:relative;display:block;cursor:pointer;padding:.25rem}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:#8b5cf6;position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:1px;outline-offset:1px;outline-color:#8b5cf6}.axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:10;height:100%;width:100%;background:rgba(202,123,123,.39)}@keyframes moveLight{0%{background-position:0% 50%}to{background-position:100% 50%}}.axp-designer-board .axp-empty-space{background-color:rgba(var(--ax-color-primary-400),10%);background-image:linear-gradient(135deg,rgba(var(--ax-color-primary-400),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-color-primary-400),50%) 0,rgba(var(--ax-color-primary-400),50%) 60%,transparent 0,transparent);background-size:6px 6px}\n"] }]
|
|
1346
|
+
}], ctorParameters: () => [], propDecorators: { propertyViewer: [{
|
|
1347
|
+
type: ViewChild,
|
|
1348
|
+
args: [AXPWidgetPropertyViewerComponent, { static: true }]
|
|
1349
|
+
}], handleKeyboardEvent: [{
|
|
1350
|
+
type: HostListener,
|
|
1351
|
+
args: ['document:keydown', ['$event']]
|
|
977
1352
|
}] } });
|
|
978
1353
|
|
|
979
1354
|
/**
|
|
980
1355
|
* Generated bundle index. Do not edit.
|
|
981
1356
|
*/
|
|
982
1357
|
|
|
983
|
-
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent,
|
|
1358
|
+
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent, AXPDesignerGridDrawerComponent, AXPDesignerService, AXPLayoutDesignerComponent, AXPWidgetDesignerRendererComponent, AXPWidgetPropertyViewerComponent };
|
|
984
1359
|
//# sourceMappingURL=acorex-platform-layout-designer.mjs.map
|