@acorex/platform 18.0.12 → 18.0.14
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 +34 -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 +6 -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 +55 -5
- package/esm2022/layout/designer/lib/designer.service.mjs +139 -96
- package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +1 -1
- package/esm2022/layout/designer/lib/{buttons → helpers}/add-widget-button/add-widget-button.component.mjs +7 -7
- 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/preview/preview.component.mjs +20 -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 +16 -8
- 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 +81 -45
- package/esm2022/widgets/lib/properties/layout.props.mjs +165 -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/rich-text-widget-edit.component.mjs +67 -0
- package/esm2022/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{rich-text-widget → rich-text}/rich-text-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.mjs +45 -0
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets/editors/select/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{select-box-widget → select}/select-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +85 -0
- package/esm2022/widgets/lib/widgets/editors/{gallery-widget/gallery-widget-print.component.mjs → select/select-box-widget-filter.component.mjs} +5 -5
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +60 -0
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget.config.mjs +38 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.mjs +41 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +72 -0
- package/esm2022/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{selection-list-widget → selection-list}/selection-list-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +44 -0
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.mjs +29 -0
- package/esm2022/widgets/lib/widgets/editors/text/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-edit.component.mjs +121 -0
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{text-box-widget → text}/text-box-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget-view.component.mjs +47 -0
- package/esm2022/widgets/lib/widgets/editors/text/text-box-widget.config.mjs +41 -0
- package/esm2022/widgets/lib/widgets/editors/toggle/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-column.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-filter.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-print.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/{toggle-widget → toggle}/toggle-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget.config.mjs +40 -0
- package/esm2022/widgets/lib/widgets/index.mjs +23 -22
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +65 -0
- package/esm2022/widgets/lib/widgets/layout/{block-widget → block}/block-widget-view.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +26 -0
- package/esm2022/widgets/lib/widgets/layout/block/index.mjs +4 -0
- package/esm2022/widgets/lib/widgets/layout/document/document-widget.config.mjs +13 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +56 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +41 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +25 -0
- package/esm2022/widgets/lib/widgets/layout/form-field/index.mjs +4 -0
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +95 -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/grid-item/grid-item-widget-designer.component.mjs +97 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +18 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.mjs +34 -0
- package/esm2022/widgets/lib/widgets/layout/grid-item/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 +20 -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 +164 -129
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs +23 -0
- package/fesm2022/acorex-platform-layout-designer-preview.component-xkvSLydm.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs +100 -0
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DXgcm-fP.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer.mjs +501 -278
- 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 +4186 -3318
- 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 +49 -9
- 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 +21 -10
- 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/preview/preview.component.d.ts +8 -0
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +1 -0
- package/layout/designer/lib/widget-designer-renderer.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 +14 -13
- package/widgets/lib/properties/editors.props.d.ts +4 -1
- package/widgets/lib/properties/layout.props.d.ts +9 -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 +16 -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/grid-item/grid-item-widget-designer.component.d.ts +15 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +6 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/layout/grid-item/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-edit.component.mjs +0 -67
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.mjs +0 -45
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget.config.mjs +0 -37
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/index.mjs +0 -7
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.mjs +0 -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,
|
|
2
|
+
import { AXPWidgetRegistryService, AXPWidgetsCatalog, AXP_WIDGET_TOKEN, AXPContainerWidgetComponent, AXPLayoutBuilderModule } 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, HostBinding, HostListener, ViewEncapsulation, model, output, 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,70 @@ 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-DXgcm-fP.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
|
});
|
|
296
|
+
const widgets = [];
|
|
232
297
|
if ((result.data?.widgets ?? []).length) {
|
|
233
298
|
const selected = result.data?.widgets;
|
|
234
|
-
selected.forEach(c => {
|
|
235
|
-
this.addWidget(currentNode, { type: c.name });
|
|
299
|
+
selected.forEach((c) => {
|
|
300
|
+
widgets.push(this.addWidget(currentNode, { type: c.name }));
|
|
236
301
|
});
|
|
237
302
|
}
|
|
303
|
+
return widgets;
|
|
304
|
+
}
|
|
305
|
+
createDoc() {
|
|
306
|
+
const doc = {
|
|
307
|
+
type: AXPWidgetsCatalog.document,
|
|
308
|
+
children: [this.createPage()],
|
|
309
|
+
name: 'document',
|
|
310
|
+
};
|
|
311
|
+
set(doc, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
312
|
+
return doc;
|
|
238
313
|
}
|
|
239
314
|
createPage() {
|
|
240
|
-
const config = this.widgetRegisteryService.resolve('page');
|
|
315
|
+
const config = this.widgetRegisteryService.resolve('page-layout');
|
|
241
316
|
const page = {
|
|
242
|
-
type: 'page',
|
|
317
|
+
type: 'page-layout',
|
|
243
318
|
children: [],
|
|
244
|
-
name:
|
|
319
|
+
name: 'page-layout1',
|
|
245
320
|
};
|
|
246
321
|
set(page, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
247
322
|
set(page, '__meta__.config', config);
|
|
248
|
-
this.historyManager.saveState(page, "New");
|
|
249
323
|
return page;
|
|
250
324
|
}
|
|
325
|
+
addNewPage() {
|
|
326
|
+
this.addWidget(this.document(), this.createPage());
|
|
327
|
+
this.goToPage(this.currentPageIndex() + 1);
|
|
328
|
+
}
|
|
329
|
+
removePage(index) {
|
|
330
|
+
const page = this.document().children?.[index];
|
|
331
|
+
this.removeWidget(page);
|
|
332
|
+
this.goToPage(index - 1);
|
|
333
|
+
}
|
|
334
|
+
clonePage(index) {
|
|
335
|
+
const page = this.document().children?.[index];
|
|
336
|
+
this.clone(page);
|
|
337
|
+
this.goToPage((this.document().children?.length ?? 1) - 1);
|
|
338
|
+
}
|
|
339
|
+
goToPage(index) {
|
|
340
|
+
this.currentPageIndex.set(index);
|
|
341
|
+
setTimeout(() => {
|
|
342
|
+
this.currentPage.set(this.document().children?.[this.currentPageIndex()]);
|
|
343
|
+
this.select({ widget: this.currentPage() });
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
reRenderPage() {
|
|
347
|
+
this.currentPage.set({ ...this.currentPage() });
|
|
348
|
+
}
|
|
251
349
|
findWidgetById(root, id) {
|
|
252
|
-
if (get(root,
|
|
350
|
+
if (get(root, '__meta__.id') === id) {
|
|
253
351
|
return root; // Return the root if it matches the ID
|
|
254
352
|
}
|
|
255
353
|
if (!root.children)
|
|
@@ -262,10 +360,10 @@ class AXPDesignerService {
|
|
|
262
360
|
}
|
|
263
361
|
return null; // Node not found
|
|
264
362
|
}
|
|
265
|
-
findParent(id, parent = this.
|
|
363
|
+
findParent(id, parent = this.currentPage()) {
|
|
266
364
|
if (!parent.children)
|
|
267
365
|
return null;
|
|
268
|
-
if (parent.children.some(child => get(child,
|
|
366
|
+
if (parent.children.some((child) => get(child, '__meta__.id') === id)) {
|
|
269
367
|
return parent; // Return this node as it's the parent of the node with the given ID
|
|
270
368
|
}
|
|
271
369
|
for (const child of parent.children) {
|
|
@@ -283,7 +381,7 @@ class AXPDesignerService {
|
|
|
283
381
|
if (config && config.container) {
|
|
284
382
|
return current;
|
|
285
383
|
}
|
|
286
|
-
current = this.findParent(get(current,
|
|
384
|
+
current = this.findParent(get(current, '__meta__.id')); // Use findParent to navigate upwards
|
|
287
385
|
}
|
|
288
386
|
}
|
|
289
387
|
else {
|
|
@@ -307,76 +405,68 @@ class AXPDesignerService {
|
|
|
307
405
|
return null;
|
|
308
406
|
//
|
|
309
407
|
const cloned = cloneDeep(node);
|
|
310
|
-
this.historyManager.saveState(cloneDeep(this.root()), `Added ${cloned.type}`);
|
|
311
|
-
//
|
|
312
|
-
if (!currentNode.children) {
|
|
313
|
-
currentNode.children = [];
|
|
314
|
-
}
|
|
315
408
|
const config = this.widgetRegisteryService.resolve(node.type);
|
|
316
409
|
//
|
|
410
|
+
this.commandManager.executeCommand(new AddWidgetCommand(cloned, currentNode, currentNode));
|
|
411
|
+
//
|
|
317
412
|
cloned.name = this.generateUniqueName(node.type);
|
|
318
413
|
set(cloned, '__meta__.id', Math.random() * Math.pow(10, 18));
|
|
319
414
|
set(cloned, '__meta__.config', config);
|
|
320
415
|
//
|
|
321
|
-
|
|
322
|
-
//
|
|
323
|
-
this.historyManager.updateState(this.root());
|
|
416
|
+
this.reRenderPage();
|
|
324
417
|
//
|
|
325
418
|
this.refresh({ widget: currentNode });
|
|
326
419
|
this.select({ widget: cloned });
|
|
327
420
|
return cloned;
|
|
328
421
|
}
|
|
329
422
|
removeWidget(node) {
|
|
330
|
-
if (node.type ===
|
|
331
|
-
console.error(
|
|
332
|
-
return; // Prevent removing the root page node
|
|
423
|
+
if (node.type === 'document-layout' || (node.type === 'page-layout' && (this.document().children?.length ?? 1) == 1)) {
|
|
424
|
+
console.error('Cannot remove the page node.');
|
|
425
|
+
return; // Prevent removing the root page node or document
|
|
333
426
|
}
|
|
334
|
-
|
|
335
|
-
const nodeIdToRemove = get(node, "__meta__.id");
|
|
427
|
+
const nodeIdToRemove = get(node, '__meta__.id');
|
|
336
428
|
if (!nodeIdToRemove) {
|
|
337
|
-
throw new Error(
|
|
429
|
+
throw new Error('Node does not have a valid __meta__.id to identify it for removal.');
|
|
338
430
|
}
|
|
339
431
|
// Find the parent of the node to remove it
|
|
340
|
-
const parent = this.findParent(nodeIdToRemove, this.
|
|
432
|
+
const parent = this.findParent(nodeIdToRemove, this.document());
|
|
341
433
|
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.");
|
|
434
|
+
throw new Error('Parent node not found. The node might be the root node or does not exist.');
|
|
355
435
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
this.
|
|
359
|
-
this.
|
|
360
|
-
this.
|
|
436
|
+
const previousSelection = this.selectedNode(); // Capture the currently selected node before removal
|
|
437
|
+
const command = new RemoveWidgetCommand(node, parent, previousSelection);
|
|
438
|
+
this.commandManager.executeCommand(command);
|
|
439
|
+
this.refresh({ widget: parent }); // Refresh the UI to reflect changes
|
|
440
|
+
this.select({ widget: parent }); // Select the parent node after removal
|
|
441
|
+
}
|
|
442
|
+
navigateTo(index) {
|
|
443
|
+
this.commandManager.goToCommand(index);
|
|
444
|
+
this.reRenderPage();
|
|
445
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
446
|
+
this.refresh({ widget: this.currentPage() });
|
|
447
|
+
this.select({ widget: currentSelection });
|
|
361
448
|
}
|
|
362
449
|
redo() {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
}
|
|
450
|
+
this.commandManager.redo();
|
|
451
|
+
this.reRenderPage();
|
|
452
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
453
|
+
this.refresh({ widget: this.currentPage() });
|
|
454
|
+
this.select({ widget: currentSelection });
|
|
368
455
|
}
|
|
369
456
|
undo() {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
}
|
|
457
|
+
this.commandManager.undo();
|
|
458
|
+
this.reRenderPage();
|
|
459
|
+
const currentSelection = this.commandManager.selectedNode();
|
|
460
|
+
this.refresh({ widget: this.currentPage() });
|
|
461
|
+
this.select({ widget: currentSelection });
|
|
462
|
+
}
|
|
463
|
+
clearHistory() {
|
|
464
|
+
this.commandManager.clear();
|
|
375
465
|
}
|
|
376
466
|
formatOutputJSON(obj, nodeName) {
|
|
377
467
|
// Check if the object is an array
|
|
378
468
|
if (Array.isArray(obj)) {
|
|
379
|
-
return obj.map(item => this.formatOutputJSON(item, nodeName));
|
|
469
|
+
return obj.map((item) => this.formatOutputJSON(item, nodeName));
|
|
380
470
|
}
|
|
381
471
|
else if (typeof obj === 'object' && obj !== null) {
|
|
382
472
|
// Create a new object to store the result
|
|
@@ -403,47 +493,57 @@ class AXPDesignerService {
|
|
|
403
493
|
this.copy(widget); // Copy the widget to the clipboard
|
|
404
494
|
this.removeWidget(widget); // Reuse the removeWidget method which should handle undo internally
|
|
405
495
|
}
|
|
406
|
-
|
|
496
|
+
clone(widget = this.selectedNode()) {
|
|
497
|
+
if (!widget)
|
|
498
|
+
return;
|
|
499
|
+
this.copy(widget); // Copy the widget to the clipboard
|
|
500
|
+
if (widget.type == 'page-layout') {
|
|
501
|
+
this.paste(this.document());
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
this.paste(widget);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
paste(parentNode = this.selectedNode() ?? this.currentPage()) {
|
|
407
508
|
if (!this.clipboard() || !this.selectedNode()) {
|
|
408
|
-
console.error(
|
|
509
|
+
console.error('Clipboard is empty or no node is selected.');
|
|
409
510
|
return;
|
|
410
511
|
}
|
|
411
512
|
const newNode = cloneDeep(this.clipboard());
|
|
412
513
|
const nearestContainer = this.findNearestContainer(parentNode, true);
|
|
413
514
|
if (!nearestContainer) {
|
|
414
|
-
console.error(
|
|
515
|
+
console.error('No suitable container found.');
|
|
415
516
|
return;
|
|
416
517
|
}
|
|
417
518
|
//
|
|
418
|
-
this.historyManager.saveState(newNode, `Pasted ${newNode.name}`); // Prepare for undo functionality
|
|
419
|
-
//
|
|
420
519
|
if (!nearestContainer.children) {
|
|
421
520
|
nearestContainer.children = [];
|
|
422
521
|
}
|
|
423
|
-
|
|
522
|
+
newNode.name = this.generateUniqueName(newNode.type);
|
|
523
|
+
set(newNode, '__meta__.id', Math.random() * Math.pow(10, 18)); // Ensure a unique ID
|
|
424
524
|
//
|
|
425
|
-
|
|
525
|
+
this.commandManager.executeCommand(new AddWidgetCommand(newNode, nearestContainer, nearestContainer));
|
|
426
526
|
//
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
527
|
+
setTimeout(() => {
|
|
528
|
+
this.refresh({ widget: nearestContainer }); // Refresh the UI
|
|
529
|
+
this.select({ widget: newNode }); // Select the newly pasted node
|
|
530
|
+
});
|
|
431
531
|
}
|
|
432
532
|
export() {
|
|
433
|
-
const json = this.formatOutputJSON(this.
|
|
533
|
+
const json = this.formatOutputJSON(this.document(), '__meta__');
|
|
434
534
|
return JSON.stringify(json);
|
|
435
535
|
}
|
|
436
536
|
download() {
|
|
437
537
|
// Convert the object to a JSON string
|
|
438
538
|
const jsonStr = this.export();
|
|
439
539
|
// Create a blob object from the JSON string
|
|
440
|
-
const blob = new Blob([jsonStr], { type:
|
|
540
|
+
const blob = new Blob([jsonStr], { type: 'application/json' });
|
|
441
541
|
// Create a URL for the blob object
|
|
442
542
|
const url = URL.createObjectURL(blob);
|
|
443
543
|
// Create a temporary <a> element to trigger the download
|
|
444
|
-
const a = document.createElement(
|
|
544
|
+
const a = document.createElement('a');
|
|
445
545
|
a.href = url;
|
|
446
|
-
a.download =
|
|
546
|
+
a.download = 'export.json';
|
|
447
547
|
// Append the <a> element to the document body (necessary for some browsers)
|
|
448
548
|
document.body.appendChild(a);
|
|
449
549
|
// Trigger the download by clicking the <a> element
|
|
@@ -464,7 +564,7 @@ class AXPDesignerService {
|
|
|
464
564
|
let uniqueName = `${baseName}${index}`;
|
|
465
565
|
// Gather all existing names to check against
|
|
466
566
|
const existingNames = new Set();
|
|
467
|
-
this.collectAllNames(this.
|
|
567
|
+
this.collectAllNames(this.document(), existingNames);
|
|
468
568
|
// Increment the index until a unique name is found
|
|
469
569
|
while (existingNames.has(uniqueName)) {
|
|
470
570
|
index++;
|
|
@@ -487,6 +587,17 @@ class AXPDesignerService {
|
|
|
487
587
|
}
|
|
488
588
|
}
|
|
489
589
|
}
|
|
590
|
+
async openPreview() {
|
|
591
|
+
const com = await import('./acorex-platform-layout-designer-preview.component-xkvSLydm.mjs').then((c) => c.AXPLayoutDesignerPreviewComponent);
|
|
592
|
+
await this.popupService.open(com, {
|
|
593
|
+
header: false,
|
|
594
|
+
size: 'full',
|
|
595
|
+
closeButton: true,
|
|
596
|
+
data: {
|
|
597
|
+
widgets: sortBy(this.widgetRegisteryService.all().filter((c) => c.visible != false), (c) => c.title),
|
|
598
|
+
},
|
|
599
|
+
});
|
|
600
|
+
}
|
|
490
601
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
491
602
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService }); }
|
|
492
603
|
}
|
|
@@ -541,7 +652,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
541
652
|
//
|
|
542
653
|
this.service.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {
|
|
543
654
|
if (this.isCurrentWidget(c.widget)) {
|
|
544
|
-
this.instance
|
|
655
|
+
this.instance?.setChildren(this.node().children ?? []);
|
|
545
656
|
}
|
|
546
657
|
});
|
|
547
658
|
//
|
|
@@ -613,7 +724,6 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
613
724
|
}
|
|
614
725
|
addOverlay() {
|
|
615
726
|
this.zone.runOutsideAngular(() => {
|
|
616
|
-
//console.log('add', this.node().type);
|
|
617
727
|
if (this.hostElement()) {
|
|
618
728
|
this.hostElement()?.classList.add('axp-state-hover');
|
|
619
729
|
//
|
|
@@ -656,7 +766,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
656
766
|
});
|
|
657
767
|
}
|
|
658
768
|
applyOptions(values) {
|
|
659
|
-
if (this.node().defaultValue != null) {
|
|
769
|
+
if (this.instance && this.node().defaultValue != null) {
|
|
660
770
|
this.instance.setValue(this.node().defaultValue);
|
|
661
771
|
}
|
|
662
772
|
this.mergedOptions.update((currentOptions) => {
|
|
@@ -664,6 +774,12 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
664
774
|
});
|
|
665
775
|
this.instance?.setOptions(this.mergedOptions());
|
|
666
776
|
}
|
|
777
|
+
get __class() {
|
|
778
|
+
if (this.instance instanceof AXPContainerWidgetComponent) {
|
|
779
|
+
return this.instance.outerClass();
|
|
780
|
+
}
|
|
781
|
+
return null;
|
|
782
|
+
}
|
|
667
783
|
async onKeydownHandler(event) {
|
|
668
784
|
if (this.service.selectedNode() && this.isCurrentWidget(this.service.selectedNode())) {
|
|
669
785
|
// handle delete
|
|
@@ -680,7 +796,7 @@ class AXPWidgetDesignerRendererComponent {
|
|
|
680
796
|
}
|
|
681
797
|
}
|
|
682
798
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetDesignerRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
683
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetDesignerRendererComponent, isStandalone: true, selector: "axp-widget-designer-renderer", inputs: { parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" }, classAttribute: "axp-widget-host" }, providers: [
|
|
799
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPWidgetDesignerRendererComponent, isStandalone: true, selector: "axp-widget-designer-renderer", inputs: { parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" }, properties: { "class": "this.__class" }, classAttribute: "axp-widget-host" }, providers: [
|
|
684
800
|
{
|
|
685
801
|
provide: AXUnsubscriber,
|
|
686
802
|
},
|
|
@@ -719,7 +835,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
719
835
|
],
|
|
720
836
|
host: { class: 'axp-widget-host' },
|
|
721
837
|
}]
|
|
722
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
838
|
+
}], ctorParameters: () => [], propDecorators: { __class: [{
|
|
839
|
+
type: HostBinding,
|
|
840
|
+
args: ['class']
|
|
841
|
+
}], onKeydownHandler: [{
|
|
723
842
|
type: HostListener,
|
|
724
843
|
args: ['document:keydown', ['$event']]
|
|
725
844
|
}] } });
|
|
@@ -796,40 +915,8 @@ class AXPDesignerBoardComponent {
|
|
|
796
915
|
removeCustomClass() {
|
|
797
916
|
this.elementRef.nativeElement.querySelectorAll('style').forEach(s => s.remove());
|
|
798
917
|
}
|
|
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
918
|
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",
|
|
919
|
+
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
920
|
}
|
|
834
921
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{
|
|
835
922
|
type: Component,
|
|
@@ -837,11 +924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
837
924
|
CommonModule,
|
|
838
925
|
AXPLayoutBuilderModule,
|
|
839
926
|
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
|
-
}] } });
|
|
927
|
+
], 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>" }]
|
|
928
|
+
}] });
|
|
845
929
|
|
|
846
930
|
class AXPDesignerAddWidgetButtonComponent {
|
|
847
931
|
constructor() {
|
|
@@ -854,37 +938,103 @@ class AXPDesignerAddWidgetButtonComponent {
|
|
|
854
938
|
}
|
|
855
939
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
856
940
|
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
|
|
858
|
-
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'
|
|
941
|
+
<div class="ax-container">
|
|
942
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'solid'" [color]="'primary'">
|
|
859
943
|
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
860
944
|
</ax-button>
|
|
861
945
|
</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:
|
|
946
|
+
`, 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
947
|
}
|
|
864
948
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{
|
|
865
949
|
type: Component,
|
|
866
950
|
args: [{ selector: 'axp-designer-add-widget-button', template: `
|
|
867
|
-
<div class="ax-container
|
|
868
|
-
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'
|
|
951
|
+
<div class="ax-container">
|
|
952
|
+
<ax-button [text]="'Add New Element'" (onClick)="handleClick($event)" [look]="'solid'" [color]="'primary'">
|
|
869
953
|
<ax-icon icon="fa-solid fa-plus"></ax-icon>
|
|
870
954
|
</ax-button>
|
|
871
955
|
</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"] }]
|
|
956
|
+
`, 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
957
|
}] });
|
|
874
958
|
|
|
875
|
-
class
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
959
|
+
class AXPDesignerGridDrawerComponent {
|
|
960
|
+
constructor() {
|
|
961
|
+
this.rowsCount = model(5, { alias: "rows" });
|
|
962
|
+
this.colsCount = model(12, { alias: "columns" });
|
|
963
|
+
this.onSelect = output();
|
|
964
|
+
this.rows = computed(() => Array.from({ length: this.rowsCount() }).map((v, index) => index + 1));
|
|
965
|
+
this.columns = computed(() => Array.from({ length: this.colsCount() }).map((v, index) => index + 1));
|
|
966
|
+
this.rangeR = signal(0);
|
|
967
|
+
this.rangeC = signal(0);
|
|
968
|
+
}
|
|
969
|
+
handleMouseHover(r, c) {
|
|
970
|
+
this.rangeR.set(r);
|
|
971
|
+
this.rangeC.set(c);
|
|
972
|
+
}
|
|
973
|
+
handleClick(r, c) {
|
|
974
|
+
this.onSelect.emit({ rows: r, cols: c });
|
|
975
|
+
}
|
|
976
|
+
handleMouseLeave(event) {
|
|
977
|
+
this.rangeR.set(0);
|
|
978
|
+
this.rangeC.set(0);
|
|
979
|
+
}
|
|
980
|
+
get __style() {
|
|
981
|
+
return {
|
|
982
|
+
"--cols-width": `${this.colsCount() == 0 ? 0 : (100 / this.colsCount())}%`
|
|
983
|
+
};
|
|
984
|
+
}
|
|
985
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
986
|
+
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: `
|
|
987
|
+
<table class="table-picker" >
|
|
988
|
+
<tbody>
|
|
989
|
+
@for(r of rows();track $index)
|
|
990
|
+
{
|
|
991
|
+
<tr >
|
|
992
|
+
@for(c of columns();track $index)
|
|
993
|
+
{
|
|
994
|
+
<td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
|
|
995
|
+
</td>
|
|
996
|
+
}
|
|
997
|
+
</tr>
|
|
998
|
+
}
|
|
999
|
+
<tr>
|
|
1000
|
+
<td [attr.colspan]="columns().length" class="ax-text-center">
|
|
1001
|
+
<small >{{rangeC()}}*{{rangeR()}}</small>
|
|
1002
|
+
</td>
|
|
1003
|
+
</tr>
|
|
1004
|
+
</tbody>
|
|
1005
|
+
</table>
|
|
1006
|
+
`, 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
1007
|
}
|
|
880
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type:
|
|
881
|
-
type:
|
|
882
|
-
args: [{
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
1008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerGridDrawerComponent, decorators: [{
|
|
1009
|
+
type: Component,
|
|
1010
|
+
args: [{ selector: 'axp-designer-grid-drawer', template: `
|
|
1011
|
+
<table class="table-picker" >
|
|
1012
|
+
<tbody>
|
|
1013
|
+
@for(r of rows();track $index)
|
|
1014
|
+
{
|
|
1015
|
+
<tr >
|
|
1016
|
+
@for(c of columns();track $index)
|
|
1017
|
+
{
|
|
1018
|
+
<td (mouseenter)="handleMouseHover(r,c)" [class.picked]="c<=rangeC() && r<=rangeR()" (click)="handleClick(r,c)">
|
|
1019
|
+
</td>
|
|
1020
|
+
}
|
|
1021
|
+
</tr>
|
|
1022
|
+
}
|
|
1023
|
+
<tr>
|
|
1024
|
+
<td [attr.colspan]="columns().length" class="ax-text-center">
|
|
1025
|
+
<small >{{rangeC()}}*{{rangeR()}}</small>
|
|
1026
|
+
</td>
|
|
1027
|
+
</tr>
|
|
1028
|
+
</tbody>
|
|
1029
|
+
</table>
|
|
1030
|
+
`, 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"] }]
|
|
1031
|
+
}], propDecorators: { handleMouseLeave: [{
|
|
1032
|
+
type: HostListener,
|
|
1033
|
+
args: ['mouseleave', ['$event']]
|
|
1034
|
+
}], __style: [{
|
|
1035
|
+
type: HostBinding,
|
|
1036
|
+
args: ['style']
|
|
1037
|
+
}] } });
|
|
888
1038
|
|
|
889
1039
|
class AXPDesignerBreadcrumbsComponent {
|
|
890
1040
|
constructor() {
|
|
@@ -911,7 +1061,7 @@ class AXPDesignerBreadcrumbsComponent {
|
|
|
911
1061
|
<i class="ax-icon ax-icon-chevron-right"></i>
|
|
912
1062
|
</ng-template>
|
|
913
1063
|
</ax-breadcrumbs>
|
|
914
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1$
|
|
1064
|
+
`, 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
1065
|
}
|
|
916
1066
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{
|
|
917
1067
|
type: Component,
|
|
@@ -946,7 +1096,7 @@ class AXPDesignerHeaderMenuComponent {
|
|
|
946
1096
|
this.service = inject(AXPDesignerService);
|
|
947
1097
|
}
|
|
948
1098
|
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:
|
|
1099
|
+
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", "truncateMenu"] }] }); }
|
|
950
1100
|
}
|
|
951
1101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{
|
|
952
1102
|
type: Component,
|
|
@@ -961,12 +1111,17 @@ class AXPDesignerOutlineComponent {
|
|
|
961
1111
|
constructor() {
|
|
962
1112
|
this.service = inject(AXPDesignerService);
|
|
963
1113
|
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() }));
|
|
1114
|
+
this.root = signal(this.getTree());
|
|
1115
|
+
merge$1(this.service.onRefresh, this.service.onUpdate).subscribe(() => {
|
|
1116
|
+
this.root.update((c) => ({ ...this.getTree() }));
|
|
968
1117
|
});
|
|
969
1118
|
}
|
|
1119
|
+
getTree() {
|
|
1120
|
+
return {
|
|
1121
|
+
type: AXPWidgetsCatalog.document,
|
|
1122
|
+
children: [this.service.currentPage()],
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
970
1125
|
toggleCollapse(node) {
|
|
971
1126
|
// Toggle the current state or set to true if undefined
|
|
972
1127
|
this.collapsedStates.set(node, !this.collapsedStates.get(node));
|
|
@@ -976,7 +1131,7 @@ class AXPDesignerOutlineComponent {
|
|
|
976
1131
|
return !!this.collapsedStates.get(node);
|
|
977
1132
|
}
|
|
978
1133
|
getConfig(node) {
|
|
979
|
-
return get(node,
|
|
1134
|
+
return get(node, '__meta__.config');
|
|
980
1135
|
}
|
|
981
1136
|
handleClick(e, node) {
|
|
982
1137
|
e.stopPropagation();
|
|
@@ -991,15 +1146,11 @@ class AXPDesignerOutlineComponent {
|
|
|
991
1146
|
this.service.focus({ widget: node });
|
|
992
1147
|
}
|
|
993
1148
|
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
|
|
1149
|
+
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
1150
|
}
|
|
996
1151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{
|
|
997
1152
|
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>" }]
|
|
1153
|
+
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
1154
|
}], ctorParameters: () => [] });
|
|
1004
1155
|
|
|
1005
1156
|
class AXPWidgetPropertyViewerComponent {
|
|
@@ -1030,6 +1181,9 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1030
1181
|
}
|
|
1031
1182
|
}, { allowSignalWrites: true });
|
|
1032
1183
|
}
|
|
1184
|
+
update(values) {
|
|
1185
|
+
this.context.set(merge(cloneDeep(this.context()), values));
|
|
1186
|
+
}
|
|
1033
1187
|
fillTabs() {
|
|
1034
1188
|
const tabs = [
|
|
1035
1189
|
{
|
|
@@ -1076,8 +1230,8 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1076
1230
|
handleContextChange(e) {
|
|
1077
1231
|
untracked(() => {
|
|
1078
1232
|
this.context.set(e.data);
|
|
1233
|
+
this.onChanged.emit({ values: this.context(), mode: e.init ? 'init' : 'update' });
|
|
1079
1234
|
});
|
|
1080
|
-
this.onChanged.emit({ values: this.context(), mode: 'update', });
|
|
1081
1235
|
}
|
|
1082
1236
|
handleTabChange(event) {
|
|
1083
1237
|
const indx = event.index;
|
|
@@ -1086,7 +1240,7 @@ class AXPWidgetPropertyViewerComponent {
|
|
|
1086
1240
|
}
|
|
1087
1241
|
}
|
|
1088
1242
|
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$
|
|
1243
|
+
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
1244
|
}
|
|
1091
1245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetPropertyViewerComponent, decorators: [{
|
|
1092
1246
|
type: Component,
|
|
@@ -1100,23 +1254,85 @@ class AXPDesignerHistoryComponent {
|
|
|
1100
1254
|
this.service = inject(AXPDesignerService);
|
|
1101
1255
|
}
|
|
1102
1256
|
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-
|
|
1257
|
+
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
1258
|
}
|
|
1105
1259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{
|
|
1106
1260
|
type: Component,
|
|
1107
1261
|
args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1108
1262
|
CommonModule,
|
|
1109
1263
|
AXDecoratorModule,
|
|
1110
|
-
|
|
1264
|
+
AXButtonModule,
|
|
1265
|
+
AXDropdownModule
|
|
1266
|
+
], 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>" }]
|
|
1267
|
+
}] });
|
|
1268
|
+
|
|
1269
|
+
class AXPDesignerPagesComponent {
|
|
1270
|
+
constructor() {
|
|
1271
|
+
this.service = inject(AXPDesignerService);
|
|
1272
|
+
}
|
|
1273
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1274
|
+
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 }); }
|
|
1275
|
+
}
|
|
1276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{
|
|
1277
|
+
type: Component,
|
|
1278
|
+
args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1279
|
+
CommonModule,
|
|
1280
|
+
AXPLayoutBuilderModule,
|
|
1281
|
+
AXDecoratorModule,
|
|
1282
|
+
AXButtonModule,
|
|
1283
|
+
AXDropdownModule
|
|
1284
|
+
], 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
1285
|
}] });
|
|
1112
1286
|
|
|
1113
1287
|
class AXPLayoutDesignerComponent {
|
|
1114
1288
|
constructor() {
|
|
1115
1289
|
this.service = inject(AXPDesignerService);
|
|
1116
1290
|
this.nodeConfig = computed(() => this.service.selectedNode() ? get(this.service.selectedNode(), '__meta__.config') : null);
|
|
1291
|
+
this.service.onUpdate.subscribe((e) => {
|
|
1292
|
+
this.propertyViewer.update(e.values);
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
handleKeyboardEvent(event) {
|
|
1296
|
+
if (event.ctrlKey && event.target == document.body) {
|
|
1297
|
+
switch (event.key.toLowerCase()) { // Convert the key to lowercase to ensure case insensitivity
|
|
1298
|
+
case 'z':
|
|
1299
|
+
event.preventDefault(); // Prevent the browser's default undo action
|
|
1300
|
+
this.service.undo();
|
|
1301
|
+
break;
|
|
1302
|
+
case 'y':
|
|
1303
|
+
event.preventDefault(); // Prevent the browser's default redo action
|
|
1304
|
+
this.service.redo();
|
|
1305
|
+
break;
|
|
1306
|
+
case 'c':
|
|
1307
|
+
if (this.service.canCutCopy()) {
|
|
1308
|
+
event.preventDefault(); // Prevent the browser's default copy action
|
|
1309
|
+
this.service.copy();
|
|
1310
|
+
}
|
|
1311
|
+
break;
|
|
1312
|
+
case 'd':
|
|
1313
|
+
if (this.service.canCutCopy()) {
|
|
1314
|
+
event.preventDefault(); // Prevent the browser's default copy action
|
|
1315
|
+
this.service.clone();
|
|
1316
|
+
}
|
|
1317
|
+
break;
|
|
1318
|
+
case 'x':
|
|
1319
|
+
if (this.service.canCutCopy()) {
|
|
1320
|
+
debugger;
|
|
1321
|
+
event.preventDefault(); // Prevent the browser's default cut action
|
|
1322
|
+
this.service.cut();
|
|
1323
|
+
}
|
|
1324
|
+
break;
|
|
1325
|
+
case 'v':
|
|
1326
|
+
if (this.service.canPaste()) {
|
|
1327
|
+
event.preventDefault(); // Prevent the browser's default paste action
|
|
1328
|
+
this.service.paste();
|
|
1329
|
+
}
|
|
1330
|
+
break;
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1117
1333
|
}
|
|
1118
1334
|
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 }); }
|
|
1335
|
+
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}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:#60a5fa;position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover:not(.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected){outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:#60a5fa}.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%}@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-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-color-primary-300),50%) 0,rgba(var(--ax-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px}.axp-designer-board .grid-stack-item-content{color:#2c3e50;text-align:center;background-color:#18bc9c}\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
1336
|
}
|
|
1121
1337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{
|
|
1122
1338
|
type: Component,
|
|
@@ -1129,6 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1129
1345
|
AXPDesignerOutlineComponent,
|
|
1130
1346
|
AXPDesignerHeaderMenuComponent,
|
|
1131
1347
|
AXPDesignerHistoryComponent,
|
|
1348
|
+
AXPDesignerPagesComponent,
|
|
1132
1349
|
AXTabsModule,
|
|
1133
1350
|
AXButtonModule,
|
|
1134
1351
|
AXDrawerModule,
|
|
@@ -1136,12 +1353,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
1136
1353
|
AXMenuModule,
|
|
1137
1354
|
AXButtonGroupModule,
|
|
1138
1355
|
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
|
-
}]
|
|
1356
|
+
], 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}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:#60a5fa;position:relative}.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover:not(.axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected){outline-style:solid;outline-width:1px;outline-offset:1px;outline-color:#60a5fa}.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%}@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-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-color-primary-300),50%) 0,rgba(var(--ax-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px}.axp-designer-board .grid-stack-item-content{color:#2c3e50;text-align:center;background-color:#18bc9c}\n"] }]
|
|
1357
|
+
}], ctorParameters: () => [], propDecorators: { propertyViewer: [{
|
|
1358
|
+
type: ViewChild,
|
|
1359
|
+
args: [AXPWidgetPropertyViewerComponent, { static: true }]
|
|
1360
|
+
}], handleKeyboardEvent: [{
|
|
1361
|
+
type: HostListener,
|
|
1362
|
+
args: ['document:keydown', ['$event']]
|
|
1363
|
+
}] } });
|
|
1141
1364
|
|
|
1142
1365
|
/**
|
|
1143
1366
|
* Generated bundle index. Do not edit.
|
|
1144
1367
|
*/
|
|
1145
1368
|
|
|
1146
|
-
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent,
|
|
1369
|
+
export { AXPDesignerAddWidgetButtonComponent, AXPDesignerBoardComponent, AXPDesignerGridDrawerComponent, AXPDesignerService, AXPLayoutDesignerComponent, AXPWidgetDesignerRendererComponent, AXPWidgetPropertyViewerComponent };
|
|
1147
1370
|
//# sourceMappingURL=acorex-platform-layout-designer.mjs.map
|