@acorex/platform 18.2.1 → 18.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/app/application.types.d.ts +8 -0
- package/common/lib/data/entity-storage-service.d.ts +0 -1
- package/common/lib/layout/menu/index.d.ts +0 -1
- package/common/lib/layout/menu/menu.provider.d.ts +11 -4
- package/common/lib/layout/menu/menu.service.d.ts +8 -2
- package/common/lib/layout/menu/menu.types.d.ts +9 -6
- package/common/lib/settings/index.d.ts +2 -1
- package/common/lib/settings/setting-definition.provider.d.ts +19 -0
- package/common/lib/settings/settings.types.d.ts +42 -0
- package/common/lib/utils/index.d.ts +0 -1
- package/esm2022/common/lib/app/application.types.mjs +4 -4
- package/esm2022/common/lib/data/entity-storage-service.mjs +4 -4
- package/esm2022/common/lib/layout/menu/index.mjs +1 -2
- package/esm2022/common/lib/layout/menu/menu.provider.mjs +105 -24
- package/esm2022/common/lib/layout/menu/menu.service.mjs +42 -10
- package/esm2022/common/lib/layout/menu/menu.types.mjs +1 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +2 -1
- package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +4 -4
- package/esm2022/common/lib/schema/widgets/checkbox/checkbox-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/string-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widgets.module.mjs +22 -22
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/password/change-password.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/settings/index.mjs +3 -2
- package/esm2022/common/lib/settings/setting-definition.provider.mjs +229 -0
- package/esm2022/common/lib/settings/settings.types.mjs +7 -2
- package/esm2022/common/lib/utils/index.mjs +1 -2
- package/esm2022/common/lib/workflows/common.workflow.mjs +5 -3
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +3 -2
- package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +7 -5
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +8 -4
- package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +61 -34
- package/esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.mjs +27 -32
- package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.mjs +2 -2
- package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +35 -10
- package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +23 -23
- package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +3 -3
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +10 -4
- package/esm2022/layout/designer/lib/designer/index.mjs +2 -1
- package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +5 -6
- package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +158 -61
- package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/shared/generic-commands.types.mjs +52 -0
- package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +32 -38
- package/esm2022/layout/designer/lib/preview/preview-viewer.component.mjs +3 -3
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
- package/esm2022/layout/entity/lib/entity-detail-list.viewmodel.mjs +3 -4
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +18 -14
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +2 -1
- package/esm2022/layout/entity/lib/entity.viewmodel.mjs +7 -5
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +10 -4
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +42 -32
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +3 -3
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +1 -2
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +79 -40
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +6 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +2 -2
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +29 -9
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +24 -18
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +2 -2
- package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +2 -4
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +3 -2
- package/esm2022/widgets/lib/properties/editors.props.mjs +2 -2
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +2 -2
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +44 -20
- package/esm2022/widgets/lib/widgets/editors/contact/popup-component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/link/link-widget-edit.component.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-view.component.mjs +18 -25
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.mjs +4 -3
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.mjs +9 -7
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.mjs +24 -15
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +14 -7
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +29 -67
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +32 -17
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +1 -22
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +76 -78
- package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +9 -9
- package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs +120 -0
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-edit.component.mjs +65 -24
- package/esm2022/widgets/lib/widgets/layout/template/template-widget-view.component.mjs +27 -7
- package/esm2022/widgets/lib/widgets/layout/template/template.provider.mjs +18 -1
- package/fesm2022/acorex-platform-auth.mjs +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs → acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-BYEjzXpW.mjs.map → acorex-platform-common-avatar-widget-edit.component-vDhYokEG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs → acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs} +2 -3
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-Dew3CVLm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs → acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs} +3 -4
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DRDiIxsn.mjs.map → acorex-platform-common-boolean-widget-filter.component-BdE7WOK5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs → acorex-platform-common-change-password.component-g_GEw3IZ.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-change-password.component-Djd4SeNv.mjs.map → acorex-platform-common-change-password.component-g_GEw3IZ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs → acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Bn0tnHyT.mjs.map → acorex-platform-common-checkbox-widget-column.component-Bj5rjEk1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs → acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs} +3 -4
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-ChXbJsuG.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs → acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-D7kmxXjj.mjs.map → acorex-platform-common-checkbox-widget-view.component-CbQwjE_u.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs → acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs} +2 -3
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-QUYyDVw8.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs → acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-Dm4QofDq.mjs.map → acorex-platform-common-dateTime-widget-edit.component-CzLb3xnR.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs → acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-DDny36SE.mjs.map → acorex-platform-common-dateTime-widget-filter.component-DZRQ6yVk.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs → acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-lzf0fwxr.mjs.map → acorex-platform-common-dateTime-widget-view.component-DxNwm_5m.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs → acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs} +2 -3
- package/fesm2022/acorex-platform-common-email-widget-column.component-Cm-fhlNZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs → acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-DTxCX3ok.mjs.map → acorex-platform-common-email-widget-edit.component-BfXFBLF6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs → acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs} +1 -2
- package/fesm2022/{acorex-platform-common-email-widget-view.component-CvEHLvcT.mjs.map → acorex-platform-common-email-widget-view.component-ClRjKVy6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-column.component-GtbElxmS.mjs → acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs} +2 -3
- package/fesm2022/acorex-platform-common-file-widget-column.component-B0v2rSWI.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs → acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-3fR5jRFv.mjs.map → acorex-platform-common-file-widget-edit.component-DsIqehpt.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs → acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs} +2 -3
- package/fesm2022/acorex-platform-common-file-widget-filter.component-C3uBjqF-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs → acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-file-widget-view.component-RsQQjlL7.mjs.map → acorex-platform-common-file-widget-view.component-DTl_Rehd.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs → acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CixJEDUT.mjs.map → acorex-platform-common-gallery-widget-edit.component-DHeFVg5x.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs → acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs} +2 -3
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-Di446i2c.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs → acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-YaLJU3Cv.mjs.map → acorex-platform-common-gallery-widget-view.component-CkcRvfv-.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs → acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs} +1 -2
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-D89AlBSm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs → acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs} +2 -3
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-CB0ehp_y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs → acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-uopyJIC1.mjs.map → acorex-platform-common-lookup-widget-edit.component-B0HQnsb8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs → acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs} +3 -4
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-Dxj_XEYV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs → acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs} +2 -3
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-BtO3feA9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs → acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs} +2 -3
- package/fesm2022/acorex-platform-common-map-widget-edit.component-hXIZrhzg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-Deos8gVy.mjs → acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs} +2 -3
- package/fesm2022/acorex-platform-common-map-widget-view.component-RgV-r8q6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs → acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs} +2 -3
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-DGWQWuzM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs → acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs} +2 -3
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-Blv1qL4e.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs → acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-DA9MiNb9.mjs.map → acorex-platform-common-messenger-widget-view.component-DEbnPggG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs → acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs} +2 -3
- package/fesm2022/acorex-platform-common-number-widget-edit.component-gQCEBhPv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs → acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs} +3 -4
- package/fesm2022/acorex-platform-common-number-widget-filter.component-CvEw3awN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs → acorex-platform-common-number-widget-view.component-ROrdklif.mjs} +2 -3
- package/fesm2022/acorex-platform-common-number-widget-view.component-ROrdklif.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs → acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CEWtRX1S.mjs.map → acorex-platform-common-password-widget-column.component-vXdE4UjM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs → acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs} +2 -3
- package/fesm2022/acorex-platform-common-password-widget-edit.component-BCOoHtGl.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs → acorex-platform-common-password-widget-view.component-rpjAeimk.mjs} +3 -4
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BVW-Zak-.mjs.map → acorex-platform-common-password-widget-view.component-rpjAeimk.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs → acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-DGaGGltV.mjs.map → acorex-platform-common-phone-widget-column.component-BbuUbPCu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs → acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BNfAQ_4j.mjs.map → acorex-platform-common-phone-widget-edit.component-Bo_aOxfZ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs → acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-xGygt5Y9.mjs.map → acorex-platform-common-phone-widget-view.component-DDBCR_QY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs → acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-BJYxnZm2.mjs.map → acorex-platform-common-rich-text-widget-column.component-BHiq7hdp.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs → acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs} +2 -3
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-12odUyzb.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs → acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs} +2 -3
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-Xr0ohz5L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs → acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-1zPVFgFG.mjs.map → acorex-platform-common-selection-list-widget-column.component-C2JikSdw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs → acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs} +3 -4
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-C1QPfHCm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs → acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs} +2 -3
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-DIgxHmqa.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs → acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs} +2 -3
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-D-VQ4JNC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs → acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-qUuwwYlj.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-BimaJ4_d.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs → acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs} +2 -3
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-USd0U707.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs → acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs} +3 -4
- package/fesm2022/acorex-platform-common-string-widget-filter.component-wI9D-Ju5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs → acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-text-widget-column.component-LFKeHZbS.mjs.map → acorex-platform-common-text-widget-column.component-Be7Nr0lJ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs → acorex-platform-common-text-widget-edit.component-feJTTnye.mjs} +2 -3
- package/fesm2022/acorex-platform-common-text-widget-edit.component-feJTTnye.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs → acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-text-widget-view.component-BDxpsxE6.mjs.map → acorex-platform-common-text-widget-view.component-DsUAJ-md.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs → acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-BnmR9hFM.mjs.map → acorex-platform-common-toggle-widget-column.component-BFwzsY4-.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs → acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs} +2 -3
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cuf9_RrU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs → acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Cq2-5QUg.mjs.map → acorex-platform-common-toggle-widget-view.component-DYz6VTey.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +489 -216
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +15 -7
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +397 -207
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +158 -100
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs} +3 -3
- package/fesm2022/{acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map → acorex-platform-layouts-entity-create-view.component-JsGlDx_S.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs} +2 -2
- package/fesm2022/{acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map → acorex-platform-layouts-entity-import-view.component-9FK_Iro9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs} +3 -3
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map → acorex-platform-layouts-entity-modify-view.component-CNbc8ewu.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layouts.mjs +14 -13
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-dByV3T8-.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Cf5ttvrG.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs +306 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLb_4pK5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs} +5 -5
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-CdwlY0Fa.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-CCvE7XiE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs → acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs} +7 -7
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwrgQFY7.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +43 -24
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map → acorex-platform-widgets-button-widget-designer.component-CPFA79Gx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-MInF2GVN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs} +3 -3
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-B7Qv2aYx.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-DP4kITs-.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-uQBHAspe.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map → acorex-platform-widgets-contact-widget-filter.component-DnQZon-E.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs → acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs} +76 -78
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DOulAanE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map → acorex-platform-widgets-rich-text-popup.component-C8KmObPV.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs +123 -0
- package/fesm2022/acorex-platform-widgets-template-picker.component-DPlvwgbu.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs +135 -0
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-JlCVB-Aq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-BE6goaZc.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +255 -239
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +1 -1
- package/layout/builder/lib/builder/widget.types.d.ts +3 -1
- package/layout/designer/lib/designer/components/board/board.component.d.ts +8 -0
- package/layout/designer/lib/designer/designer.component.d.ts +3 -1
- package/layout/designer/lib/designer/index.d.ts +1 -0
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +10 -6
- package/layout/designer/lib/designer/shared/designer.service.d.ts +18 -3
- package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +9 -0
- package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +8 -5
- package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +2 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -3
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
- package/layout/entity/lib/entity.viewmodel.d.ts +5 -3
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +14 -12
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +13 -10
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +0 -1
- package/package.json +13 -13
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +4 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +1 -1
- package/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.d.ts +8 -2
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +3 -6
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +2 -3
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -2
- package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +8 -9
- package/widgets/lib/widgets/layout/template/template-picker/template-picker.component.d.ts +30 -0
- package/widgets/lib/widgets/layout/template/template-widget-edit.component.d.ts +3 -0
- package/widgets/lib/widgets/layout/template/template-widget-view.component.d.ts +1 -0
- package/widgets/lib/widgets/layout/template/template.provider.d.ts +3 -0
- package/common/lib/layout/menu/menu.loader.d.ts +0 -17
- package/common/lib/utils/router-util.service.d.ts +0 -12
- package/esm2022/common/lib/layout/menu/menu.loader.mjs +0 -39
- package/esm2022/common/lib/utils/router-util.service.mjs +0 -43
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-CfHELBLm.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-BuS0Pg-j.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-CtS98tbi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-Cy_Kj9po.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-column.component-GtbElxmS.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-B7etTIuq.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-1wzY6U5s.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-BeiJZnEv.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-C5DZ-cez.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-D1lrIkz4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-DTNcGNir.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-h4SRiV6_.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-Deos8gVy.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-DN8dFLZD.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-m_zxHCw5.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-B0if4vR4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-BgTJbR2u.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-view.component-Du1oQYBH.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-B-_m6f_C.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Dvv8JnXl.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-B77Y5luo.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Tdkf-0cn.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-y2aFk-A6.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DLc1MHex.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-D5XVZ88b.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component-B9h7CnEz.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-BiyTKmvV.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-Cz7LayX-.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs +0 -299
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-mzb-FV9E.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ItkFB3QF.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs +0 -96
- package/fesm2022/acorex-platform-widgets-template-widget-edit.component-BWc0_EA0.mjs.map +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { AXPLayoutBuilderModule, AXPContainerWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';
|
|
4
|
-
import { AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerService, AXPWidgetDesignerRendererDirective } from "@acorex/platform/layout/designer";
|
|
5
1
|
import { AXButtonModule } from '@acorex/components/button';
|
|
6
2
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
|
+
import { AXPContainerWidgetComponent, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
4
|
+
import { AXPDesignerAddWidgetLineButtonComponent, AXPDesignerAddWidgetMiniButtonComponent, AXPDesignerService, AXPWidgetDesignerRendererDirective, } from '@acorex/platform/layout/designer';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class AXPPageWidgetDesignerComponent extends AXPContainerWidgetComponent {
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
11
11
|
this.designerService = inject(AXPDesignerService);
|
|
12
|
-
this.backgroundColor = computed(() => this.options()[
|
|
13
|
-
this.theme = computed(() => this.options()[
|
|
14
|
-
this.hasHeader = computed(() => this.options()[
|
|
15
|
-
this.hasFooter = computed(() => this.options()[
|
|
16
|
-
this.onlyChildren = computed(() => this.children().filter(c => !c.meta?.['footer'] && !c.meta?.['header']));
|
|
17
|
-
this.headerNodes = computed(() => this.children().filter(c => c.meta?.['header']) ?? []);
|
|
18
|
-
this.footerNodes = computed(() => this.children().filter(c => c.meta?.['footer']) ?? []);
|
|
12
|
+
this.backgroundColor = computed(() => this.options()['backgroundColor']);
|
|
13
|
+
this.theme = computed(() => this.options()['theme']?.id ?? 'default');
|
|
14
|
+
this.hasHeader = computed(() => this.options()['hasHeader']);
|
|
15
|
+
this.hasFooter = computed(() => this.options()['hasFooter']);
|
|
16
|
+
this.onlyChildren = computed(() => this.children().filter((c) => !c.meta?.['footer'] && !c.meta?.['header']));
|
|
17
|
+
this.headerNodes = computed(() => this.children().filter((c) => c.meta?.['header']) ?? []);
|
|
18
|
+
this.footerNodes = computed(() => this.children().filter((c) => c.meta?.['footer']) ?? []);
|
|
19
19
|
}
|
|
20
20
|
async handleAddHeader() {
|
|
21
21
|
const widgets = await this.designerService.showPicker(this.node);
|
|
22
|
-
widgets.forEach(c => c.meta = { header: true });
|
|
22
|
+
widgets.forEach((c) => (c.meta = { header: true }));
|
|
23
23
|
}
|
|
24
24
|
async handleAddFooter() {
|
|
25
25
|
const widgets = await this.designerService.showPicker(this.node);
|
|
26
|
-
widgets.forEach(c => c.meta = { footer: true });
|
|
26
|
+
widgets.forEach((c) => (c.meta = { footer: true }));
|
|
27
27
|
}
|
|
28
28
|
async handleAddElement() {
|
|
29
29
|
await this.designerService.showPicker(this.node);
|
|
@@ -39,48 +39,47 @@ export class AXPPageWidgetDesignerComponent extends AXPContainerWidgetComponent
|
|
|
39
39
|
'ax-dark': this.theme() == 'dark',
|
|
40
40
|
'ax-light': this.theme() == 'light',
|
|
41
41
|
'ax-block': true,
|
|
42
|
-
'ax-w-full': true
|
|
42
|
+
'ax-w-full': true,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPPageWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
46
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPPageWidgetDesignerComponent, isStandalone: true, selector: "axp-page-widget", host: { properties: { "style": "this.__style", "class": "this.__class" } }, providers: [
|
|
47
47
|
{
|
|
48
|
-
provide: AXPContainerWidgetComponent,
|
|
49
|
-
|
|
48
|
+
provide: AXPContainerWidgetComponent,
|
|
49
|
+
useExisting: AXPPageWidgetDesignerComponent,
|
|
50
|
+
},
|
|
50
51
|
], usesInheritance: true, ngImport: i0, template: `
|
|
51
|
-
@if(hasHeader())
|
|
52
|
-
|
|
53
|
-
@
|
|
54
|
-
|
|
55
|
-
<header class="axp-page-widget-header">
|
|
56
|
-
@for (node of headerNodes(); track $index) {
|
|
57
|
-
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
58
|
-
}
|
|
59
|
-
</header>
|
|
52
|
+
@if(hasHeader()) { @if(headerNodes().length) {
|
|
53
|
+
<header class="axp-page-widget-header">
|
|
54
|
+
@for (node of headerNodes(); track $index) {
|
|
55
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
60
56
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
</header>
|
|
58
|
+
} @else {
|
|
59
|
+
<axp-designer-add-widget-line-button
|
|
60
|
+
[text]="'Page Header'"
|
|
61
|
+
(onClick)="handleAddHeader()"
|
|
62
|
+
></axp-designer-add-widget-line-button>
|
|
63
|
+
} } @for (node of onlyChildren(); track $index) {
|
|
64
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
67
65
|
}
|
|
68
66
|
<!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->
|
|
69
|
-
<axp-designer-add-widget-line-button
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
</footer>
|
|
79
|
-
}
|
|
80
|
-
@else {
|
|
81
|
-
<axp-designer-add-widget-line-button [text]="'Page Footer'" (onClick)="handleAddFooter()"></axp-designer-add-widget-line-button>
|
|
67
|
+
<axp-designer-add-widget-line-button
|
|
68
|
+
[text]="'Add Element'"
|
|
69
|
+
(onClick)="handleAddElement()"
|
|
70
|
+
></axp-designer-add-widget-line-button>
|
|
71
|
+
@if(hasFooter()) { @if(footerNodes().length) {
|
|
72
|
+
<footer class="axp-page-widget-footer">
|
|
73
|
+
@for (node of footerNodes(); track $index) {
|
|
74
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
82
75
|
}
|
|
83
|
-
|
|
76
|
+
</footer>
|
|
77
|
+
} @else {
|
|
78
|
+
<axp-designer-add-widget-line-button
|
|
79
|
+
[text]="'Page Footer'"
|
|
80
|
+
(onClick)="handleAddFooter()"
|
|
81
|
+
></axp-designer-add-widget-line-button>
|
|
82
|
+
} }
|
|
84
83
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetLineButtonComponent, selector: "axp-designer-add-widget-line-button", inputs: ["text"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
85
84
|
}
|
|
86
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPPageWidgetDesignerComponent, decorators: [{
|
|
@@ -88,39 +87,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
88
87
|
args: [{
|
|
89
88
|
selector: 'axp-page-widget',
|
|
90
89
|
template: `
|
|
91
|
-
@if(hasHeader())
|
|
92
|
-
|
|
93
|
-
@
|
|
94
|
-
|
|
95
|
-
<header class="axp-page-widget-header">
|
|
96
|
-
@for (node of headerNodes(); track $index) {
|
|
97
|
-
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
98
|
-
}
|
|
99
|
-
</header>
|
|
100
|
-
}
|
|
101
|
-
@else {
|
|
102
|
-
<axp-designer-add-widget-line-button [text]="'Page Header'" (onClick)="handleAddHeader()"></axp-designer-add-widget-line-button>
|
|
90
|
+
@if(hasHeader()) { @if(headerNodes().length) {
|
|
91
|
+
<header class="axp-page-widget-header">
|
|
92
|
+
@for (node of headerNodes(); track $index) {
|
|
93
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
103
94
|
}
|
|
104
|
-
|
|
105
|
-
@
|
|
106
|
-
<
|
|
95
|
+
</header>
|
|
96
|
+
} @else {
|
|
97
|
+
<axp-designer-add-widget-line-button
|
|
98
|
+
[text]="'Page Header'"
|
|
99
|
+
(onClick)="handleAddHeader()"
|
|
100
|
+
></axp-designer-add-widget-line-button>
|
|
101
|
+
} } @for (node of onlyChildren(); track $index) {
|
|
102
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
107
103
|
}
|
|
108
104
|
<!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->
|
|
109
|
-
<axp-designer-add-widget-line-button
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
</footer>
|
|
105
|
+
<axp-designer-add-widget-line-button
|
|
106
|
+
[text]="'Add Element'"
|
|
107
|
+
(onClick)="handleAddElement()"
|
|
108
|
+
></axp-designer-add-widget-line-button>
|
|
109
|
+
@if(hasFooter()) { @if(footerNodes().length) {
|
|
110
|
+
<footer class="axp-page-widget-footer">
|
|
111
|
+
@for (node of footerNodes(); track $index) {
|
|
112
|
+
<ng-container axp-widget-designer-renderer [node]="node" [parentNode]="this" [mode]="mode"></ng-container>
|
|
119
113
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
</footer>
|
|
115
|
+
} @else {
|
|
116
|
+
<axp-designer-add-widget-line-button
|
|
117
|
+
[text]="'Page Footer'"
|
|
118
|
+
(onClick)="handleAddFooter()"
|
|
119
|
+
></axp-designer-add-widget-line-button>
|
|
120
|
+
} }
|
|
124
121
|
`,
|
|
125
122
|
standalone: true,
|
|
126
123
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -136,9 +133,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
136
133
|
],
|
|
137
134
|
providers: [
|
|
138
135
|
{
|
|
139
|
-
provide: AXPContainerWidgetComponent,
|
|
140
|
-
|
|
141
|
-
|
|
136
|
+
provide: AXPContainerWidgetComponent,
|
|
137
|
+
useExisting: AXPPageWidgetDesignerComponent,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
142
140
|
}]
|
|
143
141
|
}], propDecorators: { __style: [{
|
|
144
142
|
type: HostBinding,
|
|
@@ -147,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
147
145
|
type: HostBinding,
|
|
148
146
|
args: ['class']
|
|
149
147
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC1kZXNpZ25lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBaUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUNySCxPQUFPLEVBQ0wsdUNBQXVDLEVBQ3ZDLHVDQUF1QyxFQUN2QyxrQkFBa0IsRUFDbEIsa0NBQWtDLEdBQ25DLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0RySCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMkJBQWlDO0lBdERyRjs7UUF1RFksb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3QyxvQkFBZSxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQVcsQ0FBQyxDQUFDO1FBRXRGLFVBQUssR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQWEsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNyRixjQUFTLEdBQUcsUUFBUSxDQUFVLEdB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b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0NBQWtDO3dCQUNsQyx1Q0FBdUM7d0JBQ3ZDLHVDQUF1QztxQkFDeEM7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsZ0NBQWdDO3lCQUM1QztxQkFDRjtpQkFDRjs4QkErQmEsT0FBTztzQkFEbEIsV0FBVzt1QkFBQyxPQUFPO2dCQVFSLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUENvbnRhaW5lcldpZGdldENvbXBvbmVudCwgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHtcbiAgQVhQRGVzaWduZXJBZGRXaWRnZXRMaW5lQnV0dG9uQ29tcG9uZW50LFxuICBBWFBEZXNpZ25lckFkZFdpZGdldE1pbmlCdXR0b25Db21wb25lbnQsXG4gIEFYUERlc2lnbmVyU2VydmljZSxcbiAgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtcGFnZS13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihoYXNIZWFkZXIoKSkgeyBAaWYoaGVhZGVyTm9kZXMoKS5sZW5ndGgpIHtcbiAgICA8aGVhZGVyIGNsYXNzPVwiYXhwLXBhZ2Utd2lkZ2V0LWhlYWRlclwiPlxuICAgICAgQGZvciAobm9kZSBvZiBoZWFkZXJOb2RlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgW3BhcmVudE5vZGVdPVwidGhpc1wiIFttb2RlXT1cIm1vZGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2hlYWRlcj5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b25cbiAgICAgIFt0ZXh0XT1cIidQYWdlIEhlYWRlcidcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkSGVhZGVyKClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIH0gfSBAZm9yIChub2RlIG9mIG9ubHlDaGlsZHJlbigpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwibm9kZVwiIFtwYXJlbnROb2RlXT1cInRoaXNcIiBbbW9kZV09XCJtb2RlXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDwhLS0gPGF4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LW1pbmktYnV0dG9uPjwvYXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbWluaS1idXR0b24+IC0tPlxuICAgIDxheHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvblxuICAgICAgW3RleHRdPVwiJ0FkZCBFbGVtZW50J1wiXG4gICAgICAob25DbGljayk9XCJoYW5kbGVBZGRFbGVtZW50KClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIEBpZihoYXNGb290ZXIoKSkgeyBAaWYoZm9vdGVyTm9kZXMoKS5sZW5ndGgpIHtcbiAgICA8Zm9vdGVyIGNsYXNzPVwiYXhwLXBhZ2Utd2lkZ2V0LWZvb3RlclwiPlxuICAgICAgQGZvciAobm9kZSBvZiBmb290ZXJOb2RlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1kZXNpZ25lci1yZW5kZXJlciBbbm9kZV09XCJub2RlXCIgW3BhcmVudE5vZGVdPVwidGhpc1wiIFttb2RlXT1cIm1vZGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICA8L2Zvb3Rlcj5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXhwLWRlc2lnbmVyLWFkZC13aWRnZXQtbGluZS1idXR0b25cbiAgICAgIFt0ZXh0XT1cIidQYWdlIEZvb3RlcidcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQWRkRm9vdGVyKClcIlxuICAgID48L2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LWxpbmUtYnV0dG9uPlxuICAgIH0gfVxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYUFdpZGdldERlc2lnbmVyUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgQVhQRGVzaWduZXJBZGRXaWRnZXRMaW5lQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyQWRkV2lkZ2V0TWluaUJ1dHRvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUFBhZ2VXaWRnZXREZXNpZ25lckNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBQYWdlV2lkZ2V0RGVzaWduZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBDb250YWluZXJXaWRnZXRDb21wb25lbnQ8dm9pZD4ge1xuICBwcm90ZWN0ZWQgZGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2JhY2tncm91bmRDb2xvciddIGFzIHN0cmluZyk7XG5cbiAgcHJvdGVjdGVkIHRoZW1lID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RoZW1lJ10/LmlkIGFzIHN0cmluZykgPz8gJ2RlZmF1bHQnKTtcbiAgcHJvdGVjdGVkIGhhc0hlYWRlciA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNIZWFkZXInXSk7XG4gIHByb3RlY3RlZCBoYXNGb290ZXIgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzRm9vdGVyJ10pO1xuXG4gIHByb3RlY3RlZCBvbmx5Q2hpbGRyZW4gPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+XG4gICAgdGhpcy5jaGlsZHJlbigpLmZpbHRlcigoYykgPT4gIWMubWV0YT8uWydmb290ZXInXSAmJiAhYy5tZXRhPy5bJ2hlYWRlciddKVxuICApO1xuICBwcm90ZWN0ZWQgaGVhZGVyTm9kZXMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHRoaXMuY2hpbGRyZW4oKS5maWx0ZXIoKGMpID0+IGMubWV0YT8uWydoZWFkZXInXSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgZm9vdGVyTm9kZXMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHRoaXMuY2hpbGRyZW4oKS5maWx0ZXIoKGMpID0+IGMubWV0YT8uWydmb290ZXInXSkgPz8gW10pO1xuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVBZGRIZWFkZXIoKSB7XG4gICAgY29uc3Qgd2lkZ2V0cyA9IGF3YWl0IHRoaXMuZGVzaWduZXJTZXJ2aWNlLnNob3dQaWNrZXIodGhpcy5ub2RlKTtcbiAgICB3aWRnZXRzLmZvckVhY2goKGMpID0+IChjLm1ldGEgPSB7IGhlYWRlcjogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQWRkRm9vdGVyKCkge1xuICAgIGNvbnN0IHdpZGdldHMgPSBhd2FpdCB0aGlzLmRlc2lnbmVyU2VydmljZS5zaG93UGlja2VyKHRoaXMubm9kZSk7XG4gICAgd2lkZ2V0cy5mb3JFYWNoKChjKSA9PiAoYy5tZXRhID0geyBmb290ZXI6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUFkZEVsZW1lbnQoKSB7XG4gICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLm5vZGUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIHByaXZhdGUgZ2V0IF9fc3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLmJhY2tncm91bmRDb2xvcigpLFxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnYXgtd2lkZ2V0LWNvbnRhaW5lcic6IHRydWUsXG4gICAgICAnYXgtZGFyayc6IHRoaXMudGhlbWUoKSA9PSAnZGFyaycsXG4gICAgICAnYXgtbGlnaHQnOiB0aGlzLnRoZW1lKCkgPT0gJ2xpZ2h0JyxcbiAgICAgICdheC1ibG9jayc6IHRydWUsXG4gICAgICAnYXgtdy1mdWxsJzogdHJ1ZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AXP_WIDGETS_LAYOUT_GROUP, createBooleanProperty } from '@acorex/platform/layout/builder';
|
|
2
|
-
import { AXP_BG_COLOR_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_THEME_PROPERTY } from '../../../properties/general.props';
|
|
1
|
+
import { AXP_WIDGETS_LAYOUT_GROUP, cloneProperty, createBooleanProperty, } from '@acorex/platform/layout/builder';
|
|
3
2
|
import { AXP_BEHAVIOR_PROPERTY_GROUP } from '../../../properties';
|
|
3
|
+
import { AXP_BG_COLOR_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_THEME_PROPERTY } from '../../../properties/general.props';
|
|
4
4
|
export const AXPPageWidget = {
|
|
5
5
|
name: 'page-layout',
|
|
6
6
|
title: 'Page',
|
|
@@ -12,21 +12,21 @@ export const AXPPageWidget = {
|
|
|
12
12
|
properties: [
|
|
13
13
|
AXP_FONT_SIZE_PROPERTY,
|
|
14
14
|
AXP_THEME_PROPERTY,
|
|
15
|
-
AXP_BG_COLOR_PROPERTY,
|
|
15
|
+
cloneProperty(AXP_BG_COLOR_PROPERTY, { schema: { defaultValue: '#ffffff' } }),
|
|
16
16
|
createBooleanProperty({
|
|
17
|
-
name:
|
|
17
|
+
name: 'hasHeader',
|
|
18
18
|
path: 'options.hasHeader',
|
|
19
|
-
title:
|
|
19
|
+
title: 'Header',
|
|
20
20
|
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
21
21
|
defaultValue: true,
|
|
22
22
|
}),
|
|
23
23
|
createBooleanProperty({
|
|
24
|
-
name:
|
|
24
|
+
name: 'hasFooter',
|
|
25
25
|
path: 'options.hasFooter',
|
|
26
|
-
title:
|
|
26
|
+
title: 'Footer',
|
|
27
27
|
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
28
28
|
defaultValue: true,
|
|
29
|
-
})
|
|
29
|
+
}),
|
|
30
30
|
],
|
|
31
31
|
components: {
|
|
32
32
|
view: {
|
|
@@ -43,4 +43,4 @@ export const AXPPageWidget = {
|
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvcGFnZS9wYWdlLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IscUJBQXFCLEdBQ3RCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdEgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQjtJQUM1QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsTUFBTTtJQUNiLFdBQVcsRUFBRSw0QkFBNEI7SUFDekMsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixLQUFLLEVBQUUsd0JBQXdCO0lBQy9CLElBQUksRUFBRSxXQUFXO0lBQ2pCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQUFFO1FBQ1Ysc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNsQixhQUFhLENBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUM3RSxxQkFBcUIsQ0FBQztZQUNwQixJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0YscUJBQXFCLENBQUM7WUFDcEIsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSwyQkFBMkI7WUFDbEMsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQztLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1NBQ2xHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQzFHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBfV0lER0VUU19MQVlPVVRfR1JPVVAsXG4gIGNsb25lUHJvcGVydHksXG4gIGNyZWF0ZUJvb2xlYW5Qcm9wZXJ0eSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAgfSBmcm9tICcuLi8uLi8uLi9wcm9wZXJ0aWVzJztcbmltcG9ydCB7IEFYUF9CR19DT0xPUl9QUk9QRVJUWSwgQVhQX0ZPTlRfU0laRV9QUk9QRVJUWSwgQVhQX1RIRU1FX1BST1BFUlRZIH0gZnJvbSAnLi4vLi4vLi4vcHJvcGVydGllcy9nZW5lcmFsLnByb3BzJztcblxuZXhwb3J0IGNvbnN0IEFYUFBhZ2VXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3BhZ2UtbGF5b3V0JyxcbiAgdGl0bGU6ICdQYWdlJyxcbiAgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVzIHRoZSBlbnRpcmUgcGFnZScsXG4gIGljb246ICdmYS1zb2xpZCBmYS1wYWdlJyxcbiAgZ3JvdXA6IEFYUF9XSURHRVRTX0xBWU9VVF9HUk9VUCxcbiAgdHlwZTogJ2NvbnRhaW5lcicsXG4gIHZpc2libGU6IGZhbHNlLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgQVhQX0ZPTlRfU0laRV9QUk9QRVJUWSxcbiAgICBBWFBfVEhFTUVfUFJPUEVSVFksXG4gICAgY2xvbmVQcm9wZXJ0eShBWFBfQkdfQ09MT1JfUFJPUEVSVFksIHsgc2NoZW1hOiB7IGRlZmF1bHRWYWx1ZTogJyNmZmZmZmYnIH0gfSksXG4gICAgY3JlYXRlQm9vbGVhblByb3BlcnR5KHtcbiAgICAgIG5hbWU6ICdoYXNIZWFkZXInLFxuICAgICAgcGF0aDogJ29wdGlvbnMuaGFzSGVhZGVyJyxcbiAgICAgIHRpdGxlOiAnSGVhZGVyJyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgfSksXG4gICAgY3JlYXRlQm9vbGVhblByb3BlcnR5KHtcbiAgICAgIG5hbWU6ICdoYXNGb290ZXInLFxuICAgICAgcGF0aDogJ29wdGlvbnMuaGFzRm9vdGVyJyxcbiAgICAgIHRpdGxlOiAnRm9vdGVyJyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgfSksXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gICAgZWRpdDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZS13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFBhZ2VXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHByaW50OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gICAgZGVzaWduZXI6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2Utd2lkZ2V0LWRlc2lnbmVyLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQUGFnZVdpZGdldERlc2lnbmVyQ29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxufTtcblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnO1xuICB9XG59XG4iXX0=
|
package/esm2022/widgets/lib/widgets/layout/template/template-picker/template-picker.component.mjs
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
2
|
+
import { AXCommonModule } from '@acorex/components/common';
|
|
3
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
4
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
5
|
+
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
6
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
7
|
+
import { AXPSettingsService, AXPStickyDirective } from '@acorex/platform/common';
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';
|
|
10
|
+
import { FormsModule } from '@angular/forms';
|
|
11
|
+
import { orderBy } from 'lodash-es';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/common";
|
|
14
|
+
import * as i2 from "@acorex/components/common";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
16
|
+
import * as i4 from "@acorex/components/button";
|
|
17
|
+
import * as i5 from "@acorex/components/decorators";
|
|
18
|
+
import * as i6 from "@acorex/components/tabs";
|
|
19
|
+
import * as i7 from "@acorex/components/search-box";
|
|
20
|
+
export class AXPTemplateWidgetPickerComponent extends AXBasePageComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.settingService = inject(AXPSettingsService);
|
|
24
|
+
this.pinnedSettingKey = 'forms:templates:picker:pinned';
|
|
25
|
+
this.searchTerm = model('');
|
|
26
|
+
// Signals
|
|
27
|
+
this.widgets = [];
|
|
28
|
+
this.displayWidgets = signal([]);
|
|
29
|
+
// Signal to track selected widgets
|
|
30
|
+
this.selectedWidgets = signal([]);
|
|
31
|
+
// Computed for filtered and ordered widget list
|
|
32
|
+
this.orderedList = computed(() => {
|
|
33
|
+
const search = this.searchTerm().toLowerCase();
|
|
34
|
+
const selectedTabName = this.selectedTab().name;
|
|
35
|
+
return orderBy(this.displayWidgets().filter((w) => {
|
|
36
|
+
const matchesTab = selectedTabName === 'all' || w.group.name === selectedTabName;
|
|
37
|
+
const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);
|
|
38
|
+
return matchesTab && matchesSearch;
|
|
39
|
+
}), ['pinned', 'title'], ['desc', 'asc']);
|
|
40
|
+
});
|
|
41
|
+
// Pinned and regular lists
|
|
42
|
+
this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned));
|
|
43
|
+
this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned));
|
|
44
|
+
// Tabs for the widget groups
|
|
45
|
+
this.tabs = orderBy([{ name: 'all', title: 'All', order: 0 }, ...this.widgets.map(c => c.group)], (c) => c.order);
|
|
46
|
+
this.currentTabIndex = signal(0);
|
|
47
|
+
this.selectedTab = computed(() => this.tabs[this.currentTabIndex()]);
|
|
48
|
+
}
|
|
49
|
+
async ngOnInit() {
|
|
50
|
+
super.ngOnInit();
|
|
51
|
+
const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
|
|
52
|
+
this.displayWidgets.set(this.widgets.map((c) => ({ ...c, pinned: pinnedWidgets.includes(c.id) })));
|
|
53
|
+
}
|
|
54
|
+
handleTabChange(event) {
|
|
55
|
+
const indx = event.index;
|
|
56
|
+
if (this.currentTabIndex() != indx) {
|
|
57
|
+
this.currentTabIndex.set(indx);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
handleClick(event, widget) {
|
|
61
|
+
if (event.ctrlKey) {
|
|
62
|
+
const currentSelection = this.selectedWidgets();
|
|
63
|
+
const isAlreadySelected = currentSelection.some((w) => w === widget);
|
|
64
|
+
if (isAlreadySelected) {
|
|
65
|
+
// Deselect widget if already selected
|
|
66
|
+
this.selectedWidgets.set(currentSelection.filter((w) => w !== widget));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Add widget to selection
|
|
70
|
+
this.selectedWidgets.set([...currentSelection, widget]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// If CTRL is not pressed, select only the clicked widget
|
|
75
|
+
this.close({ widgets: [widget] });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async handlePinClick(e, widget) {
|
|
79
|
+
e.stopPropagation();
|
|
80
|
+
widget.pinned = !widget.pinned;
|
|
81
|
+
// Get the current list of pinned widgets from settings
|
|
82
|
+
let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];
|
|
83
|
+
// Update the list of pinned widgets based on the pinned status
|
|
84
|
+
if (widget.pinned) {
|
|
85
|
+
if (!pinnedWidgets.includes(widget.id)) {
|
|
86
|
+
pinnedWidgets.push(widget.id);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
pinnedWidgets = pinnedWidgets.filter((name) => name !== widget.id);
|
|
91
|
+
}
|
|
92
|
+
// Save the updated list of pinned widgets
|
|
93
|
+
await this.settingService.set(this.pinnedSettingKey, pinnedWidgets);
|
|
94
|
+
// Trigger a re-render of the widgets
|
|
95
|
+
this.displayWidgets.set([...this.displayWidgets()]);
|
|
96
|
+
}
|
|
97
|
+
// Check if a widget is selected
|
|
98
|
+
isWidgetSelected(widget) {
|
|
99
|
+
return this.selectedWidgets().includes(widget);
|
|
100
|
+
}
|
|
101
|
+
handleConfirmSelection() {
|
|
102
|
+
this.close({ widgets: this.selectedWidgets() });
|
|
103
|
+
}
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPTemplateWidgetPickerComponent, isStandalone: true, selector: "ng-component", inputs: { searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: "searchTermChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.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: i5.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPTemplateWidgetPickerComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ standalone: true, imports: [
|
|
110
|
+
CommonModule,
|
|
111
|
+
AXCommonModule,
|
|
112
|
+
FormsModule,
|
|
113
|
+
AXButtonModule,
|
|
114
|
+
AXDecoratorModule,
|
|
115
|
+
AXTabsModule,
|
|
116
|
+
AXSearchBoxModule,
|
|
117
|
+
AXPStickyDirective,
|
|
118
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col lg:ax-h-[75vh]\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs;track $index)\n {\n <ax-tab-item [text]=\"w.title\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all \" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" placeholder=\"e.g. Button, Text, ...\" [(ngModel)]=\"searchTerm\" [delayTime]=\"300\"\n [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <ng-template #itemTpl let-w>\n <div (click)=\"handleClick($event,w)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-100 dark:hover:ax-bg-primary-800 ax-cursor-pointer\"\n [class.ax-bg-primary-100]=\"isWidgetSelected(w)\">\n <div class=\"ax-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border ax-border-neutral-200 ax-text-neutral-500 ax-bg-on-surface group-hover:ax-bg-primary-200\"\n [class.ax-bg-primary-200]=\"isWidgetSelected(w)\">\n <i [ngClass]=\"w.icon\" class=\"ax-text-lg group-hover:ax-text-primary-700 ax-text-on-surface-fore\"\n [class.ax-text-primary-700]=\"isWidgetSelected(w)\"></i>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-semibold ax-text-sm\">{{w.title}}</div>\n <div (click)=\"handlePinClick($event,w)\">\n @if (w.pinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45\"></i>\n }\n @else {\n <i\n class=\"fa-light fa-thumbtack ax-text-sm ax-text-neutral-500 ax-rotate-45 ax-invisible group-hover:ax-visible\"></i>\n }\n </div>\n </div>\n <span class=\"ax-text-xs ax-text-neutral-400 ax-truncate\">\n {{w.description}}\n </span>\n </div>\n </div>\n </ng-template>\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of pinnedList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n @if(pinnedList().length)\n {\n <hr class=\"ax-my-4 ax-border-dashed\">\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2 \">\n @for(w of regularList();track $index)\n {\n <ng-container *ngTemplateOutlet=\"itemTpl;context:{ $implicit: w}\"></ng-container>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length)\n{\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\" text=\"{{ selectedWidgets().length }} Selected\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}", styles: [".selected-widget{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-primary-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-100),var(--tw-bg-opacity, 1))}.selected-widget i{--tw-text-opacity: 1;color:rgba(var(--ax-color-primary-500),var(--tw-text-opacity, 1))}\n"] }]
|
|
119
|
+
}] });
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvbGF5b3V0L3RlbXBsYXRlL3RlbXBsYXRlLXBpY2tlci90ZW1wbGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9sYXlvdXQvdGVtcGxhdGUvdGVtcGxhdGUtcGlja2VyL3RlbXBsYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FB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QUFDO0lBQ2pELENBQUM7SUFFUyxzQkFBc0I7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OEdBdkdVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLCtSQ2xDN0MsazFIQTBFQyx1WURyREcsWUFBWSxtU0FDWixjQUFjLDJKQUNkLFdBQVcsOFZBQ1gsY0FBYyx1WkFDZCxpQkFBaUIsc1dBQ2pCLFlBQVksa2FBQ1osaUJBQWlCLDRYQUNqQixrQkFBa0I7OzJGQU1ULGdDQUFnQztrQkFoQjVDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3FCQUNuQixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSwgQVhUYWJTdHJpcENoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUFNldHRpbmdzU2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfR1JPVVBTLCBBWFBXaWRnZXRHcm91cCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgbW9kZWwsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVkLCBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL3RlbXBsYXRlLnByb3ZpZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQgZXh0ZW5kcyBBWFBUZW1wbGF0ZVdpZGdldFByb3ZpZGVkIHtcbiAgcGlubmVkOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhQU3RpY2t5RGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRlbXBsYXRlV2lkZ2V0UGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ3NTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBpbm5lZFNldHRpbmdLZXkgPSAnZm9ybXM6dGVtcGxhdGVzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWRbXSA9IFtdO1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZFtdPihbXSk7XG5cbiAgLy8gU2lnbmFsIHRvIHRyYWNrIHNlbGVjdGVkIHdpZGdldHNcbiAgcHJvdGVjdGVkIHNlbGVjdGVkV2lkZ2V0cyA9IHNpZ25hbDxBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWRbXT4oW10pO1xuXG4gIC8vIENvbXB1dGVkIGZvciBmaWx0ZXJlZCBhbmQgb3JkZXJlZCB3aWRnZXQgbGlzdFxuICBwcml2YXRlIG9yZGVyZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoVGVybSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWJOYW1lID0gdGhpcy5zZWxlY3RlZFRhYigpLm5hbWU7XG5cbiAgICByZXR1cm4gb3JkZXJCeShcbiAgICAgIHRoaXMuZGlzcGxheVdpZGdldHMoKS5maWx0ZXIoKHcpID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1RhYiA9IHNlbGVjdGVkVGFiTmFtZSA9PT0gJ2FsbCcgfHwgdy5ncm91cC5uYW1lID09PSBzZWxlY3RlZFRhYk5hbWU7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNTZWFyY2ggPVxuICAgICAgICAgICFzZWFyY2ggfHwgdy50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHwgdy5kZXNjcmlwdGlvbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlc1RhYiAmJiBtYXRjaGVzU2VhcmNoO1xuICAgICAgfSksXG4gICAgICBbJ3Bpbm5lZCcsICd0aXRsZSddLFxuICAgICAgWydkZXNjJywgJ2FzYyddXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gIWMucGlubmVkKSk7XG5cbiAgLy8gVGFicyBmb3IgdGhlIHdpZGdldCBncm91cHNcbiAgcHJvdGVjdGVkIHRhYnM6IEFYUFdpZGdldEdyb3VwW10gPSBvcmRlckJ5KFxuICAgIFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCcsIG9yZGVyOiAwIH0sIC4uLnRoaXMud2lkZ2V0cy5tYXAoYyA9PiBjLmdyb3VwKV0sXG4gICAgKGMpID0+IGMub3JkZXJcbiAgKTtcbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzW3RoaXMuY3VycmVudFRhYkluZGV4KCldKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCBwaW5uZWRXaWRnZXRzID0gKGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0PHN0cmluZ1tdPih0aGlzLnBpbm5lZFNldHRpbmdLZXkpKSB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldCh0aGlzLndpZGdldHMubWFwKChjKSA9PiAoeyAuLi5jLCBwaW5uZWQ6IHBpbm5lZFdpZGdldHMuaW5jbHVkZXMoYy5pZCkgfSkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUYWJDaGFuZ2UoZXZlbnQ6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmR4ID0gZXZlbnQuaW5kZXg7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYkluZGV4KCkgIT0gaW5keCkge1xuICAgICAgdGhpcy5jdXJyZW50VGFiSW5kZXguc2V0KGluZHgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCk7XG4gICAgICBjb25zdCBpc0FscmVhZHlTZWxlY3RlZCA9IGN1cnJlbnRTZWxlY3Rpb24uc29tZSgodykgPT4gdyA9PT0gd2lkZ2V0KTtcblxuICAgICAgaWYgKGlzQWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgIC8vIERlc2VsZWN0IHdpZGdldCBpZiBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChjdXJyZW50U2VsZWN0aW9uLmZpbHRlcigodykgPT4gdyAhPT0gd2lkZ2V0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgd2lkZ2V0IHRvIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoWy4uLmN1cnJlbnRTZWxlY3Rpb24sIHdpZGdldF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBDVFJMIGlzIG5vdCBwcmVzc2VkLCBzZWxlY3Qgb25seSB0aGUgY2xpY2tlZCB3aWRnZXRcbiAgICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiBbd2lkZ2V0XSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlUGluQ2xpY2soZTogTW91c2VFdmVudCwgd2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHdpZGdldC5waW5uZWQgPSAhd2lkZ2V0LnBpbm5lZDtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0cyBmcm9tIHNldHRpbmdzXG4gICAgbGV0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKHdpZGdldC5waW5uZWQpIHtcbiAgICAgIGlmICghcGlubmVkV2lkZ2V0cy5pbmNsdWRlcyh3aWRnZXQuaWQpKSB7XG4gICAgICAgIHBpbm5lZFdpZGdldHMucHVzaCh3aWRnZXQuaWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwaW5uZWRXaWRnZXRzID0gcGlubmVkV2lkZ2V0cy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09IHdpZGdldC5pZCk7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSB0aGUgdXBkYXRlZCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzXG4gICAgYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLmRpc3BsYXlXaWRnZXRzLnNldChbLi4udGhpcy5kaXNwbGF5V2lkZ2V0cygpXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHdpZGdldCBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRTZWxlY3RlZCh3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpLmluY2x1ZGVzKHdpZGdldCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKHsgd2lkZ2V0czogdGhpcy5zZWxlY3RlZFdpZGdldHMoKSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgbGc6YXgtaC1bNzV2aF1cIj5cbiAgICA8ZGl2PlxuICAgICAgICA8YXgtdGFicyBbbG9va109XCInd2l0aC1saW5lJ1wiIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiaGFuZGxlVGFiQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIEBmb3IodyBvZiB0YWJzO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ3LnRpdGxlXCIgW2tleV09XCIkaW5kZXgudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJjdXJyZW50VGFiSW5kZXgoKSA9PT0gJGluZGV4XCI+PC9heC10YWItaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9heC10YWJzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1vdmVyZmxvdy1hdXRvXCIgI2NvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtc3RpY2t5IGF4LXRvcC0wIGF4LXotMTAgYXgtdHJhbnNpdGlvbi1hbGwgXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICAgICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1zdXJmYWNlIGF4LXNoYWRvdy14bCdcIiBbc3RpY2t5UGFyZW50XT1cImNvbnRlbnRcIiBbc3RpY2t5T2Zmc2V0XT1cIjEwXCI+XG4gICAgICAgICAgICA8YXgtc2VhcmNoLWJveCBsb29rPVwiZmlsbFwiIHBsYWNlaG9sZGVyPVwiZS5nLiBCdXR0b24sIFRleHQsIC4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiIFtkZWxheVRpbWVdPVwiMzAwXCJcbiAgICAgICAgICAgICAgICBbYXhBdXRvRm9jdXNdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wLTQgYXgtcHQtMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVHBsIGxldC13PlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCx3KVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtcHktMiBheC1weC0zIGF4LXJvdW5kZWQtbWQgYXgtZmxleCBheC1nYXAtMyBheC1pdGVtcy1jZW50ZXIgYXgtZ3JvdXAgaG92ZXI6YXgtYmctcHJpbWFyeS0xMDAgZGFyazpob3ZlcjpheC1iZy1wcmltYXJ5LTgwMCBheC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1iZy1wcmltYXJ5LTEwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LTEwIGF4LWgtMTAgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcm91bmRlZC1tZCBheC1ib3JkZXIgYXgtYm9yZGVyLW5ldXRyYWwtMjAwIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtYmctb24tc3VyZmFjZSAgZ3JvdXAtaG92ZXI6YXgtYmctcHJpbWFyeS0yMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktMjAwXT1cImlzV2lkZ2V0U2VsZWN0ZWQodylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIncuaWNvblwiIGNsYXNzPVwiYXgtdGV4dC1sZyBncm91cC1ob3ZlcjpheC10ZXh0LXByaW1hcnktNzAwIGF4LXRleHQtb24tc3VyZmFjZS1mb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtdGV4dC1wcmltYXJ5LTcwMF09XCJpc1dpZGdldFNlbGVjdGVkKHcpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCI+e3t3LnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVQaW5DbGljaygkZXZlbnQsdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh3LnBpbm5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXRodW1idGFjayBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC01MDAgYXgtcm90YXRlLTQ1XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGh1bWJ0YWNrIGF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTUwMCBheC1yb3RhdGUtNDUgYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhzIGF4LXRleHQtbmV1dHJhbC00MDAgYXgtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3cuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcGlubmVkTGlzdCgpO3RyYWNrICRpbmRleClcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UcGw7Y29udGV4dDp7ICRpbXBsaWNpdDogd31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZihwaW5uZWRMaXN0KCkubGVuZ3RoKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgPGhyIGNsYXNzPVwiYXgtbXktNCBheC1ib3JkZXItZGFzaGVkXCI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMiBheC1nYXAtMiBcIj5cbiAgICAgICAgICAgICAgICBAZm9yKHcgb2YgcmVndWxhckxpc3QoKTt0cmFjayAkaW5kZXgpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVHBsO2NvbnRleHQ6eyAkaW1wbGljaXQ6IHd9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5AaWYoc2VsZWN0ZWRXaWRnZXRzKCkubGVuZ3RoKVxue1xuPGF4LWZvb3Rlcj5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpXCI+PC9heC1idXR0b24+XG4gICAgPC9heC1zdWZmaXg+XG48L2F4LWZvb3Rlcj5cbn0iXX0=
|