@acorex/platform 18.0.12 → 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/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/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/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 +5 -5
- package/esm2022/layout/designer/index.mjs +3 -3
- package/esm2022/layout/designer/lib/board/board.component.mjs +5 -40
- package/esm2022/layout/designer/lib/command.mjs +185 -0
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +54 -5
- package/esm2022/layout/designer/lib/designer.service.mjs +136 -95
- package/esm2022/layout/designer/lib/{buttons → helpers}/add-widget-button/add-widget-button.component.mjs +5 -5
- package/esm2022/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.mjs +82 -0
- package/esm2022/layout/designer/lib/history/history.component.mjs +11 -4
- package/esm2022/layout/designer/lib/outline/outline.component.mjs +16 -15
- 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 +10 -5
- 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 +80 -45
- 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 +9 -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-box-widget → color}/color-box-widget-edit.component.mjs +1 -1
- 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-widget → rich-text}/rich-text-widget-edit.component.mjs +1 -1
- 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-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-layout-builder.mjs +162 -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 +484 -272
- 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-C9L8cyBm.mjs → acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs} +10 -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-DlfG4EP1.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +3796 -3187
- 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 +43 -5
- package/layout/designer/index.d.ts +2 -2
- package/layout/designer/lib/board/board.component.d.ts +0 -1
- package/layout/designer/lib/command.d.ts +70 -0
- package/layout/designer/lib/designer/designer.component.d.ts +3 -0
- package/layout/designer/lib/designer.service.d.ts +20 -9
- package/layout/designer/lib/helpers/grid-drawer/grid-drawer.component.d.ts +19 -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 +7 -7
- package/widgets/lib/properties/editors.props.d.ts +4 -1
- package/widgets/lib/properties/layout.props.d.ts +4 -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.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/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.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/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/designer.module.mjs +0 -16
- package/esm2022/layout/designer/lib/history-manager.service.mjs +0 -117
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget-view.component.mjs +0 -52
- 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.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-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 -85
- 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 -35
- 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 -26
- 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 -39
- 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 -37
- 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 -65
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget.config.mjs +0 -28
- 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 -21
- 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-C9L8cyBm.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.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/layout/designer/lib/history-manager.service.d.ts +0 -31
- 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}/button-widget-view.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-edit.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-edit.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-edit.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-designer.component.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,147 +1,215 @@
|
|
|
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, Injectable, inject, Injector, NgZone, ElementRef, input, effect, Component, ChangeDetectionStrategy, HostListener, ViewEncapsulation,
|
|
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 {
|
|
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
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
19
|
import * as i5 from '@acorex/components/button-group';
|
|
20
20
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
21
21
|
import * as i3$2 from '@acorex/components/drawer';
|
|
22
22
|
import { AXDrawerModule } from '@acorex/components/drawer';
|
|
23
|
-
import * as
|
|
23
|
+
import * as i4 from '@acorex/components/dropdown';
|
|
24
24
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
25
|
-
import * as i2$
|
|
25
|
+
import * as i2$3 from '@acorex/components/menu';
|
|
26
26
|
import { AXMenuModule } from '@acorex/components/menu';
|
|
27
|
-
import * as i2$
|
|
27
|
+
import * as i2$4 from '@acorex/components/tabs';
|
|
28
28
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
29
|
-
import * as i1$
|
|
29
|
+
import * as i1$1 from '@acorex/components/breadcrumbs';
|
|
30
30
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
|
31
|
-
import * as i1$
|
|
31
|
+
import * as i1$2 from '@acorex/components/collapse';
|
|
32
32
|
import { AXCollapseModule } from '@acorex/components/collapse';
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
40
|
-
this.revertedIndex = null; // Track the index when reverting
|
|
41
|
-
this.currentState = this._currentState.asReadonly();
|
|
42
|
-
this.canUndo = computed(() => this.undoStack().length > 0);
|
|
43
|
-
this.canRedo = computed(() => this.redoStack().length > 0);
|
|
44
|
-
// Get the undo history for UI with disabled future states
|
|
45
|
-
this.history = computed(() => {
|
|
46
|
-
const undoHistory = this.undoStack();
|
|
47
|
-
return undoHistory.map((state, index) => ({
|
|
48
|
-
...state,
|
|
49
|
-
index,
|
|
50
|
-
disabled: this.revertedIndex !== null && index > this.revertedIndex
|
|
51
|
-
}));
|
|
52
|
-
});
|
|
34
|
+
// AddWidgetCommand
|
|
35
|
+
class AddWidgetCommand {
|
|
36
|
+
constructor(widget, parent, previousSelection) {
|
|
37
|
+
this.widget = widget;
|
|
38
|
+
this.parent = parent;
|
|
39
|
+
this.previousSelection = previousSelection;
|
|
53
40
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
this.undoStack.set(this.undoStack().slice(1)); // Remove oldest state
|
|
64
|
-
}
|
|
65
|
-
// Add the current state to the undo stack
|
|
66
|
-
//if (this._currentState()) {
|
|
67
|
-
this.undoStack.set([...this.undoStack(), this._currentState()]);
|
|
68
|
-
//}
|
|
69
|
-
// Set the new state as the current state
|
|
70
|
-
this._currentState.set(newHistoryState);
|
|
71
|
-
// Clear the redo stack if a new state is saved after undoing
|
|
72
|
-
if (this.revertedIndex !== null) {
|
|
73
|
-
this.redoStack.set([]);
|
|
74
|
-
this.revertedIndex = null; // Reset reverted index
|
|
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);
|
|
75
50
|
}
|
|
76
51
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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);
|
|
95
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
|
|
96
161
|
}
|
|
97
|
-
// Undo the last action and update the current state
|
|
98
162
|
undo() {
|
|
99
|
-
if (this.
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
this.
|
|
103
|
-
|
|
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
|
+
}
|
|
104
173
|
}
|
|
105
174
|
}
|
|
106
|
-
// Redo the last undone action and update the current state
|
|
107
175
|
redo() {
|
|
108
|
-
if (this.
|
|
109
|
-
|
|
110
|
-
this.undoStack
|
|
111
|
-
|
|
112
|
-
this.
|
|
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());
|
|
113
181
|
}
|
|
114
182
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
+
}
|
|
119
198
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const statesToRedo = this.undoStack().slice(index + 1);
|
|
124
|
-
this.redoStack.set([currentStateSnapshot, ...statesToRedo]);
|
|
125
|
-
// Update the undo stack to the reverted point
|
|
126
|
-
this.undoStack.set(this.undoStack().slice(0, index + 1));
|
|
127
|
-
// Set the reverted state as the current state
|
|
128
|
-
this._currentState.set(targetState);
|
|
129
|
-
this.revertedIndex = index; // Track the reverted index
|
|
130
|
-
}
|
|
131
|
-
// Clear all history
|
|
199
|
+
// Optionally update any UI components or state here
|
|
200
|
+
this.selectedNode.set(this.undoStack()[this.currentIndex()].getExecutionSelection());
|
|
201
|
+
}
|
|
132
202
|
clear() {
|
|
133
203
|
this.undoStack.set([]);
|
|
134
|
-
this.
|
|
135
|
-
this.revertedIndex = null;
|
|
136
|
-
this._currentState.set(null);
|
|
204
|
+
this.currentIndex.set(-1);
|
|
137
205
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
139
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
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' }); }
|
|
140
208
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CommandManager, decorators: [{
|
|
142
210
|
type: Injectable,
|
|
143
211
|
args: [{
|
|
144
|
-
providedIn: 'root'
|
|
212
|
+
providedIn: 'root'
|
|
145
213
|
}]
|
|
146
214
|
}] });
|
|
147
215
|
|
|
@@ -149,19 +217,20 @@ class AXPDesignerService {
|
|
|
149
217
|
constructor() {
|
|
150
218
|
this.popupService = inject(AXPopupService);
|
|
151
219
|
this.widgetRegisteryService = inject(AXPWidgetRegistryService);
|
|
152
|
-
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);
|
|
153
224
|
this.clipboard = signal(null);
|
|
154
|
-
this.canCutCopy = computed(() => this.selectedNode() != null && this.selectedNode()?.name !=
|
|
155
|
-
this.canPaste = computed(() =>
|
|
156
|
-
this.history = computed(() => this.
|
|
157
|
-
this.canUndo = computed(() => this.
|
|
158
|
-
this.canRedo = computed(() => this.
|
|
159
|
-
this.root = signal(this.createPage());
|
|
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());
|
|
160
230
|
this.breadcrumbs = computed(() => {
|
|
161
|
-
return this.selectedNode() ? this.findBreadcrumbs(this.
|
|
231
|
+
return this.selectedNode() ? this.findBreadcrumbs(this.currentPage(), this.selectedNode()) ?? [] : [];
|
|
162
232
|
});
|
|
163
233
|
this.selectedNode = signal(null);
|
|
164
|
-
this._lastSelectedNode = null;
|
|
165
234
|
this._focusedNode = null;
|
|
166
235
|
this.focusedNode = () => this._focusedNode;
|
|
167
236
|
this.mode = signal('designer');
|
|
@@ -172,24 +241,19 @@ class AXPDesignerService {
|
|
|
172
241
|
this.onFocused = new Subject();
|
|
173
242
|
}
|
|
174
243
|
register(command) {
|
|
175
|
-
|
|
176
|
-
this.select({ widget: command.widget });
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
this.select({ widget: this._lastSelectedNode });
|
|
180
|
-
}
|
|
244
|
+
this.select({ widget: command.widget });
|
|
181
245
|
}
|
|
182
246
|
select(command) {
|
|
183
247
|
this.selectedNode.set(command.widget);
|
|
184
|
-
this._lastSelectedNode = this.selectedNode();
|
|
185
248
|
this.onSelected.next(command);
|
|
186
249
|
}
|
|
187
250
|
update(command) {
|
|
188
|
-
|
|
189
|
-
|
|
251
|
+
const node = command.widget ?? this.selectedNode();
|
|
252
|
+
if (command.mode == 'update' && node) {
|
|
253
|
+
this.commandManager.executeCommand(new UpdateWidgetCommand(node, command.values, node));
|
|
190
254
|
}
|
|
191
|
-
this.selectedNode.update(c => merge(
|
|
192
|
-
this.onUpdate.next({ widget:
|
|
255
|
+
this.selectedNode.update((c) => merge(node, command.values));
|
|
256
|
+
this.onUpdate.next({ widget: node, values: command.values });
|
|
193
257
|
}
|
|
194
258
|
focus(command) {
|
|
195
259
|
if (this._focusedNode != command.widget) {
|
|
@@ -220,36 +284,68 @@ class AXPDesignerService {
|
|
|
220
284
|
return undefined;
|
|
221
285
|
}
|
|
222
286
|
async showPicker(currentNode) {
|
|
223
|
-
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);
|
|
224
288
|
const result = await this.popupService.open(com, {
|
|
225
|
-
title:
|
|
289
|
+
title: 'Widget Gallery',
|
|
226
290
|
size: 'md',
|
|
227
291
|
closeButton: true,
|
|
228
292
|
data: {
|
|
229
|
-
widgets: sortBy(this.widgetRegisteryService.all().filter(c => c.visible != false), c => c.title)
|
|
230
|
-
}
|
|
293
|
+
widgets: sortBy(this.widgetRegisteryService.all().filter((c) => c.visible != false), (c) => c.title),
|
|
294
|
+
},
|
|
231
295
|
});
|
|
232
296
|
if ((result.data?.widgets ?? []).length) {
|
|
233
297
|
const selected = result.data?.widgets;
|
|
234
|
-
selected.forEach(c => {
|
|
298
|
+
selected.forEach((c) => {
|
|
235
299
|
this.addWidget(currentNode, { type: c.name });
|
|
236
300
|
});
|
|
237
301
|
}
|
|
238
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
|
+
}
|
|
239
312
|
createPage() {
|
|
240
|
-
const config = this.widgetRegisteryService.resolve('page');
|
|
313
|
+
const config = this.widgetRegisteryService.resolve('page-layout');
|
|
241
314
|
const page = {
|
|
242
|
-
type: 'page',
|
|
315
|
+
type: 'page-layout',
|
|
243
316
|
children: [],
|
|
244
|
-
name:
|
|
317
|
+
name: 'page-layout1',
|
|
245
318
|
};
|
|
246
319
|
set(page, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
247
320
|
set(page, '__meta__.config', config);
|
|
248
|
-
this.historyManager.saveState(page, "New");
|
|
249
321
|
return page;
|
|
250
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
|
+
}
|
|
251
347
|
findWidgetById(root, id) {
|
|
252
|
-
if (get(root,
|
|
348
|
+
if (get(root, '__meta__.id') === id) {
|
|
253
349
|
return root; // Return the root if it matches the ID
|
|
254
350
|
}
|
|
255
351
|
if (!root.children)
|
|
@@ -262,10 +358,10 @@ class AXPDesignerService {
|
|
|
262
358
|
}
|
|
263
359
|
return null; // Node not found
|
|
264
360
|
}
|
|
265
|
-
findParent(id, parent = this.
|
|
361
|
+
findParent(id, parent = this.currentPage()) {
|
|
266
362
|
if (!parent.children)
|
|
267
363
|
return null;
|
|
268
|
-
if (parent.children.some(child => get(child,
|
|
364
|
+
if (parent.children.some((child) => get(child, '__meta__.id') === id)) {
|
|
269
365
|
return parent; // Return this node as it's the parent of the node with the given ID
|
|
270
366
|
}
|
|
271
367
|
for (const child of parent.children) {
|
|
@@ -283,7 +379,7 @@ class AXPDesignerService {
|
|
|
283
379
|
if (config && config.container) {
|
|
284
380
|
return current;
|
|
285
381
|
}
|
|
286
|
-
current = this.findParent(get(current,
|
|
382
|
+
current = this.findParent(get(current, '__meta__.id')); // Use findParent to navigate upwards
|
|
287
383
|
}
|
|
288
384
|
}
|
|
289
385
|
else {
|
|
@@ -307,76 +403,68 @@ class AXPDesignerService {
|
|
|
307
403
|
return null;
|
|
308
404
|
//
|
|
309
405
|
const cloned = cloneDeep(node);
|
|
310
|
-
this.historyManager.saveState(cloneDeep(this.root()), `Added ${cloned.type}`);
|
|
311
|
-
//
|
|
312
|
-
if (!currentNode.children) {
|
|
313
|
-
currentNode.children = [];
|
|
314
|
-
}
|
|
315
406
|
const config = this.widgetRegisteryService.resolve(node.type);
|
|
316
407
|
//
|
|
408
|
+
this.commandManager.executeCommand(new AddWidgetCommand(cloned, currentNode, currentNode));
|
|
409
|
+
//
|
|
317
410
|
cloned.name = this.generateUniqueName(node.type);
|
|
318
411
|
set(cloned, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
319
412
|
set(cloned, '__meta__.config', config);
|
|
320
413
|
//
|
|
321
|
-
|
|
322
|
-
//
|
|
323
|
-
this.historyManager.updateState(this.root());
|
|
414
|
+
this.reRenderPage();
|
|
324
415
|
//
|
|
325
416
|
this.refresh({ widget: currentNode });
|
|
326
417
|
this.select({ widget: cloned });
|
|
327
418
|
return cloned;
|
|
328
419
|
}
|
|
329
420
|
removeWidget(node) {
|
|
330
|
-
if (node.type ===
|
|
331
|
-
console.error(
|
|
332
|
-
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
|
|
333
424
|
}
|
|
334
|
-
|
|
335
|
-
const nodeIdToRemove = get(node, "__meta__.id");
|
|
425
|
+
const nodeIdToRemove = get(node, '__meta__.id');
|
|
336
426
|
if (!nodeIdToRemove) {
|
|
337
|
-
throw new Error(
|
|
427
|
+
throw new Error('Node does not have a valid __meta__.id to identify it for removal.');
|
|
338
428
|
}
|
|
339
429
|
// Find the parent of the node to remove it
|
|
340
|
-
const parent = this.findParent(nodeIdToRemove, this.
|
|
430
|
+
const parent = this.findParent(nodeIdToRemove, this.document());
|
|
341
431
|
if (!parent) {
|
|
342
|
-
throw new Error(
|
|
343
|
-
}
|
|
344
|
-
const index = parent.children?.findIndex(child => get(child, "__meta__.id") === nodeIdToRemove) ?? -1;
|
|
345
|
-
if (index > -1) {
|
|
346
|
-
parent.children.splice(index, 1);
|
|
347
|
-
//
|
|
348
|
-
this.historyManager.updateState(this.root());
|
|
349
|
-
//
|
|
350
|
-
this.refresh({ widget: parent }); // Refresh the UI to reflect changes
|
|
351
|
-
this.select({ widget: parent }); // Select the parent node after removal
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
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.');
|
|
355
433
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
this.
|
|
359
|
-
this.
|
|
360
|
-
this.
|
|
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
|
|
439
|
+
}
|
|
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 });
|
|
361
446
|
}
|
|
362
447
|
redo() {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
}
|
|
448
|
+
this.commandManager.redo();
|
|
449
|
+
this.reRenderPage();
|
|
450
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
451
|
+
this.refresh({ widget: this.currentPage() });
|
|
452
|
+
this.select({ widget: currentSelection });
|
|
368
453
|
}
|
|
369
454
|
undo() {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
}
|
|
455
|
+
this.commandManager.undo();
|
|
456
|
+
this.reRenderPage();
|
|
457
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
458
|
+
this.refresh({ widget: this.currentPage() });
|
|
459
|
+
this.select({ widget: currentSelection });
|
|
460
|
+
}
|
|
461
|
+
clearHistory() {
|
|
462
|
+
this.commandManager.clear();
|
|
375
463
|
}
|
|
376
464
|
formatOutputJSON(obj, nodeName) {
|
|
377
465
|
// Check if the object is an array
|
|
378
466
|
if (Array.isArray(obj)) {
|
|
379
|
-
return obj.map(item => this.formatOutputJSON(item, nodeName));
|
|
467
|
+
return obj.map((item) => this.formatOutputJSON(item, nodeName));
|
|
380
468
|
}
|
|
381
469
|
else if (typeof obj === 'object' && obj !== null) {
|
|
382
470
|
// Create a new object to store the result
|
|
@@ -403,47 +491,57 @@ class AXPDesignerService {
|
|
|
403
491
|
this.copy(widget); // Copy the widget to the clipboard
|
|
404
492
|
this.removeWidget(widget); // Reuse the removeWidget method which should handle undo internally
|
|
405
493
|
}
|
|
406
|
-
|
|
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()) {
|
|
407
506
|
if (!this.clipboard() || !this.selectedNode()) {
|
|
408
|
-
console.error(
|
|
507
|
+
console.error('Clipboard is empty or no node is selected.');
|
|
409
508
|
return;
|
|
410
509
|
}
|
|
411
510
|
const newNode = cloneDeep(this.clipboard());
|
|
412
511
|
const nearestContainer = this.findNearestContainer(parentNode, true);
|
|
413
512
|
if (!nearestContainer) {
|
|
414
|
-
console.error(
|
|
513
|
+
console.error('No suitable container found.');
|
|
415
514
|
return;
|
|
416
515
|
}
|
|
417
516
|
//
|
|
418
|
-
this.historyManager.saveState(newNode, `Pasted ${newNode.name}`); // Prepare for undo functionality
|
|
419
|
-
//
|
|
420
517
|
if (!nearestContainer.children) {
|
|
421
518
|
nearestContainer.children = [];
|
|
422
519
|
}
|
|
423
|
-
|
|
520
|
+
newNode.name = this.generateUniqueName(newNode.type);
|
|
521
|
+
set(newNode, '__meta__.id', Math.random() * Math.pow(10, 18)); // Ensure a unique ID
|
|
424
522
|
//
|
|
425
|
-
|
|
523
|
+
this.commandManager.executeCommand(new AddWidgetCommand(newNode, nearestContainer, nearestContainer));
|
|
426
524
|
//
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
525
|
+
setTimeout(() => {
|
|
526
|
+
this.refresh({ widget: nearestContainer }); // Refresh the UI
|
|
527
|
+
this.select({ widget: newNode }); // Select the newly pasted node
|
|
528
|
+
});
|
|
431
529
|
}
|
|
432
530
|
export() {
|
|
433
|
-
const json = this.formatOutputJSON(this.
|
|
531
|
+
const json = this.formatOutputJSON(this.document(), '__meta__');
|
|
434
532
|
return JSON.stringify(json);
|
|
435
533
|
}
|
|
436
534
|
download() {
|
|
437
535
|
// Convert the object to a JSON string
|
|
438
536
|
const jsonStr = this.export();
|
|
439
537
|
// Create a blob object from the JSON string
|
|
440
|
-
const blob = new Blob([jsonStr], { type:
|
|
538
|
+
const blob = new Blob([jsonStr], { type: 'application/json' });
|
|
441
539
|
// Create a URL for the blob object
|
|
442
540
|
const url = URL.createObjectURL(blob);
|
|
443
541
|
// Create a temporary <a> element to trigger the download
|
|
444
|
-
const a = document.createElement(
|
|
542
|
+
const a = document.createElement('a');
|
|
445
543
|
a.href = url;
|
|
446
|
-
a.download =
|
|
544
|
+
a.download = 'export.json';
|
|
447
545
|
// Append the <a> element to the document body (necessary for some browsers)
|
|
448
546
|
document.body.appendChild(a);
|
|
449
547
|
// Trigger the download by clicking the <a> element
|
|
@@ -464,7 +562,7 @@ class AXPDesignerService {
|
|
|
464
562
|
let uniqueName = `${baseName}${index}`;
|
|
465
563
|
// Gather all existing names to check against
|
|
466
564
|
const existingNames = new Set();
|
|
467
|
-
this.collectAllNames(this.
|
|
565
|
+
this.collectAllNames(this.document(), existingNames);
|
|
468
566
|
// Increment the index until a unique name is found
|
|
469
567
|
while (existingNames.has(uniqueName)) {
|
|
470
568
|
index++;
|
|
@@ -487,6 +585,17 @@ class AXPDesignerService {
|
|
|
487
585
|
}
|
|
488
586
|
}
|
|
489
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
|
+
}
|
|
490
599
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
491
600
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService }); }
|
|
492
601
|
}
|
|
@@ -541,7 +650,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
541
650
|
//
|
|
542
651
|
this.service.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
|
|
543
652
|
if (this.isCurrentWidget(c.widget)) {
|
|
544
|
-
this.instance
|
|
653
|
+
this.instance?.setChildren(this.node().children ?? []);
|
|
545
654
|
}
|
|
546
655
|
});
|
|
547
656
|
//
|
|
@@ -656,7 +765,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
656
765
|
});
|
|
657
766
|
}
|
|
658
767
|
applyOptions(values) {
|
|
659
|
-
if (this.node().defaultValue != null) {
|
|
768
|
+
if (this.instance && this.node().defaultValue != null) {
|
|
660
769
|
this.instance.setValue(this.node().defaultValue);
|
|
661
770
|
}
|
|
662
771
|
this.mergedOptions.update((currentOptions) => {
|
|
@@ -796,40 +905,8 @@ class AXPDesignerBoardComponent {
|
|
|
796
905
|
removeCustomClass() {
|
|
797
906
|
this.elementRef.nativeElement.querySelectorAll('style').forEach(s => s.remove());
|
|
798
907
|
}
|
|
799
|
-
handleKeyboardEvent(event) {
|
|
800
|
-
if (event.ctrlKey) {
|
|
801
|
-
switch (event.key.toLowerCase()) { // Convert the key to lowercase to ensure case insensitivity
|
|
802
|
-
case 'z':
|
|
803
|
-
event.preventDefault(); // Prevent the browser's default undo action
|
|
804
|
-
this.service.undo();
|
|
805
|
-
break;
|
|
806
|
-
case 'y':
|
|
807
|
-
event.preventDefault(); // Prevent the browser's default redo action
|
|
808
|
-
this.service.redo();
|
|
809
|
-
break;
|
|
810
|
-
case 'c':
|
|
811
|
-
if (this.service.canCutCopy()) {
|
|
812
|
-
event.preventDefault(); // Prevent the browser's default copy action
|
|
813
|
-
this.service.copy();
|
|
814
|
-
}
|
|
815
|
-
break;
|
|
816
|
-
case 'x':
|
|
817
|
-
if (this.service.canCutCopy()) {
|
|
818
|
-
event.preventDefault(); // Prevent the browser's default cut action
|
|
819
|
-
this.service.cut();
|
|
820
|
-
}
|
|
821
|
-
break;
|
|
822
|
-
case 'v':
|
|
823
|
-
if (this.service.canPaste()) {
|
|
824
|
-
event.preventDefault(); // Prevent the browser's default paste action
|
|
825
|
-
this.service.paste();
|
|
826
|
-
}
|
|
827
|
-
break;
|
|
828
|
-
}
|
|
829
|
-
}
|
|
830
|
-
}
|
|
831
908
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
832
|
-
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 }); }
|
|
833
910
|
}
|
|
834
911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{
|
|
835
912
|
type: Component,
|
|
@@ -837,11 +914,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
837
914
|
CommonModule,
|
|
838
915
|
AXPLayoutBuilderModule,
|
|
839
916
|
AXPWidgetDesignerRendererComponent
|
|
840
|
-
], 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.
|
|
841
|
-
}]
|
|
842
|
-
type: HostListener,
|
|
843
|
-
args: ['document:keydown', ['$event']]
|
|
844
|
-
}] } });
|
|
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
|
+
}] });
|
|
845
919
|
|
|
846
920
|
class AXPDesignerAddWidgetButtonComponent {
|
|
847
921
|
constructor() {
|
|
@@ -854,37 +928,103 @@ class AXPDesignerAddWidgetButtonComponent {
|
|
|
854
928
|
}
|
|
855
929
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
856
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: `
|
|
857
|
-
<div class="ax-container
|
|
931
|
+
<div class="ax-container">
|
|
858
932
|
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
859
933
|
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
860
934
|
</ax-button>
|
|
861
935
|
</div>
|
|
862
|
-
`, isInline: true, styles: ["axp-designer-add-widget-button .ax-container{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:
|
|
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 }); }
|
|
863
937
|
}
|
|
864
938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{
|
|
865
939
|
type: Component,
|
|
866
940
|
args: [{ selector: 'axp-designer-add-widget-button', template: `
|
|
867
|
-
<div class="ax-container
|
|
941
|
+
<div class="ax-container">
|
|
868
942
|
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'twotone'">
|
|
869
943
|
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
870
944
|
</ax-button>
|
|
871
945
|
</div>
|
|
872
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule], encapsulation: ViewEncapsulation.None, styles: ["axp-designer-add-widget-button .ax-container{display:flex;justify-content:center;padding:.5rem}\n"] }]
|
|
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"] }]
|
|
873
947
|
}] });
|
|
874
948
|
|
|
875
|
-
class
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
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 }); }
|
|
879
997
|
}
|
|
880
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
881
|
-
type:
|
|
882
|
-
args: [{
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
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
|
+
}] } });
|
|
888
1028
|
|
|
889
1029
|
class AXPDesignerBreadcrumbsComponent {
|
|
890
1030
|
constructor() {
|
|
@@ -911,7 +1051,7 @@ class AXPDesignerBreadcrumbsComponent {
|
|
|
911
1051
|
<i class="ax-icon ax-icon-chevron-right"></i>
|
|
912
1052
|
</ng-template>
|
|
913
1053
|
</ax-breadcrumbs>
|
|
914
|
-
`, 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 }); }
|
|
915
1055
|
}
|
|
916
1056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{
|
|
917
1057
|
type: Component,
|
|
@@ -946,7 +1086,7 @@ class AXPDesignerHeaderMenuComponent {
|
|
|
946
1086
|
this.service = inject(AXPDesignerService);
|
|
947
1087
|
}
|
|
948
1088
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
949
|
-
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:
|
|
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"] }] }); }
|
|
950
1090
|
}
|
|
951
1091
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{
|
|
952
1092
|
type: Component,
|
|
@@ -961,12 +1101,17 @@ class AXPDesignerOutlineComponent {
|
|
|
961
1101
|
constructor() {
|
|
962
1102
|
this.service = inject(AXPDesignerService);
|
|
963
1103
|
this.collapsedStates = new Map();
|
|
964
|
-
this.root = signal(this.
|
|
965
|
-
merge$1(this.service.onRefresh, this.service.onUpdate)
|
|
966
|
-
.
|
|
967
|
-
this.root.update(c => ({ ...this.service.root() }));
|
|
1104
|
+
this.root = signal(this.getTree());
|
|
1105
|
+
merge$1(this.service.onRefresh, this.service.onUpdate).subscribe(() => {
|
|
1106
|
+
this.root.update((c) => ({ ...this.getTree() }));
|
|
968
1107
|
});
|
|
969
1108
|
}
|
|
1109
|
+
getTree() {
|
|
1110
|
+
return {
|
|
1111
|
+
type: AXPWidgetsCatalog.document,
|
|
1112
|
+
children: [this.service.currentPage()],
|
|
1113
|
+
};
|
|
1114
|
+
}
|
|
970
1115
|
toggleCollapse(node) {
|
|
971
1116
|
// Toggle the current state or set to true if undefined
|
|
972
1117
|
this.collapsedStates.set(node, !this.collapsedStates.get(node));
|
|
@@ -976,7 +1121,7 @@ class AXPDesignerOutlineComponent {
|
|
|
976
1121
|
return !!this.collapsedStates.get(node);
|
|
977
1122
|
}
|
|
978
1123
|
getConfig(node) {
|
|
979
|
-
return get(node,
|
|
1124
|
+
return get(node, '__meta__.config');
|
|
980
1125
|
}
|
|
981
1126
|
handleClick(e, node) {
|
|
982
1127
|
e.stopPropagation();
|
|
@@ -991,15 +1136,11 @@ class AXPDesignerOutlineComponent {
|
|
|
991
1136
|
this.service.focus({ widget: node });
|
|
992
1137
|
}
|
|
993
1138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
994
|
-
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
|
|
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 }); }
|
|
995
1140
|
}
|
|
996
1141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{
|
|
997
1142
|
type: Component,
|
|
998
|
-
args: [{ selector: 'axp-designer-outline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
999
|
-
CommonModule,
|
|
1000
|
-
AXPLayoutBuilderModule,
|
|
1001
|
-
AXDecoratorModule,
|
|
1002
|
-
], 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\n @if(root().children?.length)\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( 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 class=\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700\"\n (click)=\"handleClick($event,item)\" (mouseover)=\"handleMouseOver($event,item)\">\n <div [class.ax-bg-blue-200]=\"item === service.selectedNode()\"\n [class.ax-text-blue-900]=\"item === service.selectedNode()\"\n class=\"ax-flex ax-flex-row ax-items-center ax-p-1 ax-px-2\">\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>{{config.title}} : {{item.name}}</span>\n </div>\n @if(item.children?.length && !isCollapsed(item)) {\n <ul class=\"ax-pl-5 ax-space-y-1\">\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>" }]
|
|
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>" }]
|
|
1003
1144
|
}], ctorParameters: () => [] });
|
|
1004
1145
|
|
|
1005
1146
|
class AXPWidgetPropertyViewerComponent {
|
|
@@ -1030,6 +1171,9 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1030
1171
|
}
|
|
1031
1172
|
}, { allowSignalWrites: true });
|
|
1032
1173
|
}
|
|
1174
|
+
update(values) {
|
|
1175
|
+
this.context.set(merge(cloneDeep(this.context()), values));
|
|
1176
|
+
}
|
|
1033
1177
|
fillTabs() {
|
|
1034
1178
|
const tabs = [
|
|
1035
1179
|
{
|
|
@@ -1076,8 +1220,8 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1076
1220
|
handleContextChange(e) {
|
|
1077
1221
|
untracked(() => {
|
|
1078
1222
|
this.context.set(e.data);
|
|
1223
|
+
this.onChanged.emit({ values: this.context(), mode: e.init ? 'init' : 'update' });
|
|
1079
1224
|
});
|
|
1080
|
-
this.onChanged.emit({ values: this.context(), mode: 'update', });
|
|
1081
1225
|
}
|
|
1082
1226
|
handleTabChange(event) {
|
|
1083
1227
|
const indx = event.index;
|
|
@@ -1086,7 +1230,7 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1086
1230
|
}
|
|
1087
1231
|
}
|
|
1088
1232
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1089
|
-
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 }); }
|
|
1090
1234
|
}
|
|
1091
1235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, decorators: [{
|
|
1092
1236
|
type: Component,
|
|
@@ -1100,23 +1244,84 @@ class AXPDesignerHistoryComponent {
|
|
|
1100
1244
|
this.service = inject(AXPDesignerService);
|
|
1101
1245
|
}
|
|
1102
1246
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1103
|
-
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 <ax-close-button></ax-close-button>\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-
|
|
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 }); }
|
|
1104
1248
|
}
|
|
1105
1249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{
|
|
1106
1250
|
type: Component,
|
|
1107
1251
|
args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1108
1252
|
CommonModule,
|
|
1109
1253
|
AXDecoratorModule,
|
|
1110
|
-
|
|
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);
|
|
1262
|
+
}
|
|
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 }); }
|
|
1265
|
+
}
|
|
1266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{
|
|
1267
|
+
type: Component,
|
|
1268
|
+
args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1269
|
+
CommonModule,
|
|
1270
|
+
AXPLayoutBuilderModule,
|
|
1271
|
+
AXDecoratorModule,
|
|
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>" }]
|
|
1111
1275
|
}] });
|
|
1112
1276
|
|
|
1113
1277
|
class AXPLayoutDesignerComponent {
|
|
1114
1278
|
constructor() {
|
|
1115
1279
|
this.service = inject(AXPDesignerService);
|
|
1116
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
|
+
});
|
|
1284
|
+
}
|
|
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
|
+
}
|
|
1321
|
+
}
|
|
1117
1322
|
}
|
|
1118
1323
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1119
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPLayoutDesignerComponent, isStandalone: true, selector: "axp-layout-designer", 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 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\">\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()\" 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\">\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 <ax-drawer #bd location=\"start\" mode=\"push\">\n <ax-content>\n <div class=\"ax-min-w-80 ax-h-full ax-overflow-auto ax-border-e\"></div>\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: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:10;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: "component", type: AXPDesignerHeaderMenuComponent, selector: "axp-designer-header-menu" }, { kind: "component", type: AXPDesignerHistoryComponent, selector: "axp-designer-history" }, { 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"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1$1.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: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], 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 }); }
|
|
1120
1325
|
}
|
|
1121
1326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{
|
|
1122
1327
|
type: Component,
|
|
@@ -1129,6 +1334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1129
1334
|
AXPDesignerOutlineComponent,
|
|
1130
1335
|
AXPDesignerHeaderMenuComponent,
|
|
1131
1336
|
AXPDesignerHistoryComponent,
|
|
1337
|
+
AXPDesignerPagesComponent,
|
|
1132
1338
|
AXTabsModule,
|
|
1133
1339
|
AXButtonModule,
|
|
1134
1340
|
AXDrawerModule,
|
|
@@ -1136,12 +1342,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1136
1342
|
AXMenuModule,
|
|
1137
1343
|
AXButtonGroupModule,
|
|
1138
1344
|
AXDropdownModule,
|
|
1139
|
-
], 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
|
|
1140
|
-
}]
|
|
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']]
|
|
1352
|
+
}] } });
|
|
1141
1353
|
|
|
1142
1354
|
/**
|
|
1143
1355
|
* Generated bundle index. Do not edit.
|
|
1144
1356
|
*/
|
|
1145
1357
|
|
|
1146
|
-
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent,
|
|
1358
|
+
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent, AXPDesignerGridDrawerComponent, AXPDesignerService, AXPLayoutDesignerComponent, AXPWidgetDesignerRendererComponent, AXPWidgetPropertyViewerComponent };
|
|
1147
1359
|
//# sourceMappingURL=acorex-platform-layout-designer.mjs.map
|