@acorex/platform 18.0.10 → 18.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/lib/session.service.d.ts +2 -2
- package/core/index.d.ts +2 -0
- package/core/lib/types.d.ts +1 -0
- package/core/utils/countdown-timer.d.ts +14 -0
- package/core/utils/html-utils.d.ts +9 -0
- package/esm2022/auth/lib/session.service.mjs +23 -38
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +2 -2
- package/esm2022/core/index.mjs +3 -1
- package/esm2022/core/lib/types.mjs +13 -2
- package/esm2022/core/utils/countdown-timer.mjs +49 -0
- package/esm2022/core/utils/html-utils.mjs +27 -0
- package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +3 -3
- package/esm2022/layout/builder/lib/builder/widget-container.component.mjs +12 -18
- package/esm2022/layout/builder/lib/builder/widget-registery.service.mjs +4 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.mjs +19 -12
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +57 -58
- package/esm2022/layout/designer/index.mjs +7 -2
- package/esm2022/layout/designer/lib/board/board.component.mjs +127 -0
- package/esm2022/layout/designer/lib/breadcrumbs/breadcrumbs.component.mjs +64 -0
- package/esm2022/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.mjs +37 -0
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +54 -0
- package/esm2022/layout/designer/lib/designer.module.mjs +6 -26
- package/esm2022/layout/designer/lib/designer.service.mjs +356 -0
- package/esm2022/layout/designer/lib/header-menu/header-menu.component.mjs +24 -0
- package/esm2022/layout/designer/lib/history/history.component.mjs +21 -0
- package/esm2022/layout/designer/lib/history-manager.service.mjs +117 -0
- package/esm2022/layout/designer/lib/outline/outline.component.mjs +55 -0
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +103 -0
- package/esm2022/layout/designer/lib/widget-designer-renderer.component.mjs +243 -0
- package/esm2022/layout/designer/lib/widget-picker/widget-picker.component.mjs +23 -0
- package/esm2022/layout/entity/lib/widgets/lookup-widget/index.mjs +1 -2
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.mjs +3 -3
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +17 -16
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.mjs +3 -3
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.mjs +3 -3
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.mjs +4 -4
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.mjs +39 -4
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +7 -6
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +5 -4
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +4 -4
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +4 -4
- package/esm2022/widgets/lib/properties/editors.props.mjs +390 -31
- package/esm2022/widgets/lib/properties/table-column.props.mjs +8 -7
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget-view.component.mjs +27 -8
- package/esm2022/widgets/lib/widgets/actions/button-widget/button-widget.config.mjs +20 -4
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.mjs +9 -3
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +10 -7
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +20 -19
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.mjs +21 -1
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-column.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.mjs +48 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-filter.component.mjs +20 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget-view.component.mjs +19 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/color-box-widget.config.mjs +34 -0
- package/esm2022/widgets/lib/widgets/editors/color-box-widget/index.mjs +7 -0
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-column.component.mjs +23 -6
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.mjs +76 -46
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.mjs +110 -8
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget.config.mjs +58 -4
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact.type.mjs +2 -0
- package/esm2022/widgets/lib/widgets/editors/contact-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/contact-widget/popup-component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +48 -37
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-print.component.mjs +5 -5
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +22 -13
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget.config.mjs +16 -2
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-edit.component.mjs +147 -126
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-view.component.mjs +30 -26
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget.config.mjs +14 -2
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-edit.component.mjs +14 -10
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-view.component.mjs +9 -7
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.config.mjs +28 -4
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget.service.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-edit.component.mjs +4 -3
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-view.component.mjs +4 -3
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget.config.mjs +4 -2
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-edit.component.mjs +22 -17
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget.config.mjs +13 -9
- package/esm2022/widgets/lib/widgets/editors/link-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-edit.component.mjs +35 -34
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget.config.mjs +4 -2
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.mjs +9 -5
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget.config.mjs +8 -4
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-column.component.mjs +5 -5
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-edit.component.mjs +68 -55
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-view.component.mjs +20 -17
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget.config.mjs +15 -9
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-edit.component.mjs +24 -11
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-view.component.mjs +17 -14
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget.config.mjs +15 -4
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-edit.component.mjs +27 -26
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-view.component.mjs +11 -9
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget.config.mjs +9 -17
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-popup.component.mjs +38 -0
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-column.component.mjs +35 -12
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.mjs +56 -52
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.mjs +26 -20
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget.config.mjs +15 -2
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.mjs +38 -33
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-view.component.mjs +10 -10
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget.config.mjs +15 -4
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-edit.component.mjs +37 -23
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-view.component.mjs +11 -8
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget.config.mjs +4 -2
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +17 -15
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +6 -5
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget.config.mjs +12 -2
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-column.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.mjs +21 -23
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-view.component.mjs +18 -11
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget.config.mjs +15 -13
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/index.mjs +1 -2
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-column.component.mjs +9 -3
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-edit.component.mjs +11 -6
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-filter.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-view.component.mjs +22 -16
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget.config.mjs +17 -4
- package/esm2022/widgets/lib/widgets/index.mjs +2 -1
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget-designer.component.mjs +65 -0
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget-view.component.mjs +48 -0
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget.config.mjs +21 -3
- package/esm2022/widgets/lib/widgets/layout/block-widget/index.mjs +3 -2
- package/esm2022/widgets/lib/widgets/layout/page-widget/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.mjs +65 -0
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget-view.component.mjs +42 -0
- package/esm2022/widgets/lib/widgets/layout/page-widget/page-widget.config.mjs +28 -0
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/index.mjs +1 -3
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-designer.component.mjs +39 -8
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-edit.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-view.component.mjs +6 -6
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget.config.mjs +5 -8
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/index.mjs +3 -0
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget-view.component.mjs +29 -0
- package/esm2022/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.mjs +39 -0
- package/esm2022/widgets/lib/widgets.module.mjs +18 -6
- package/fesm2022/acorex-platform-auth.mjs +22 -37
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-bTHacO49.mjs → acorex-platform-common-number-widget-edit.component-XSWI6466.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-bTHacO49.mjs.map → acorex-platform-common-number-widget-edit.component-XSWI6466.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-CFqNphMw.mjs → acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-CFqNphMw.mjs.map → acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +2 -2
- package/fesm2022/acorex-platform-core.mjs +90 -0
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +89 -86
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs +26 -0
- package/fesm2022/acorex-platform-layout-designer-widget-picker.component-DkZGbnkz.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer.mjs +1081 -59
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +59 -43
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs → acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs} +7 -5
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C9L8cyBm.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +6 -6
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-D1vzPrng.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs} +5 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cv0mt0pU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DCE6c3Is.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDk03AnX.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +7 -7
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-CJUV6lFi.mjs → acorex-platform-widgets-checkbox-widget-column.component-BzNhzB9y.mjs} +9 -3
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BzNhzB9y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-T-tXqoMd.mjs → acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs} +20 -19
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BCsej7C6.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs +68 -0
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DlfG4EP1.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs +41 -0
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +2397 -1474
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/widget-container.component.d.ts +5 -5
- package/layout/builder/lib/builder/widget-registery.service.d.ts +1 -0
- package/layout/builder/lib/builder/widget-renderer.component.d.ts +6 -3
- package/layout/builder/lib/builder/widget.types.d.ts +54 -33
- package/layout/designer/index.d.ts +6 -1
- package/layout/designer/lib/board/board.component.d.ts +16 -0
- package/layout/designer/lib/breadcrumbs/breadcrumbs.component.d.ts +11 -0
- package/layout/designer/lib/buttons/add-widget-button/add-widget-button.component.d.ts +9 -0
- package/layout/designer/lib/designer/designer.component.d.ts +9 -0
- package/layout/designer/lib/designer.module.d.ts +1 -7
- package/layout/designer/lib/designer.service.d.ts +107 -0
- package/layout/designer/lib/header-menu/header-menu.component.d.ts +7 -0
- package/layout/designer/lib/history/history.component.d.ts +7 -0
- package/layout/designer/lib/history-manager.service.d.ts +31 -0
- package/layout/designer/lib/outline/outline.component.d.ts +17 -0
- package/layout/designer/lib/{components → property-viewer}/widget-property-viewer.component.d.ts +12 -12
- package/layout/designer/lib/widget-designer-renderer.component.d.ts +38 -0
- package/layout/designer/lib/widget-picker/widget-picker.component.d.ts +9 -0
- package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -1
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +2 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +9 -9
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.d.ts +2 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.d.ts +2 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +5 -5
- package/package.json +7 -7
- package/widgets/lib/properties/editors.props.d.ts +22 -1
- package/widgets/lib/widgets/actions/button-widget/button-widget-view.component.d.ts +8 -3
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +4 -4
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +6 -4
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +5 -5
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-column.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-edit.component.d.ts +10 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-print.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget-view.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/color-box-widget/color-box-widget.config.d.ts +2 -0
- package/widgets/lib/widgets/editors/color-box-widget/index.d.ts +6 -0
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-column.component.d.ts +4 -2
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.d.ts +11 -15
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.d.ts +15 -2
- package/widgets/lib/widgets/editors/contact-widget/contact.type.d.ts +5 -0
- package/widgets/lib/widgets/editors/contact-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-edit.component.d.ts +7 -7
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-view.component.d.ts +4 -4
- package/widgets/lib/widgets/editors/date-time-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-edit.component.d.ts +8 -7
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-view.component.d.ts +4 -4
- package/widgets/lib/widgets/editors/email-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-edit.component.d.ts +6 -5
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-view.component.d.ts +4 -4
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget.service.d.ts +1 -1
- package/widgets/lib/widgets/editors/file-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-edit.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-view.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/gallery-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/large-text-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-edit.component.d.ts +7 -5
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-view.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/link-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/link-widget/link-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/link-widget/link-widget-edit.component.d.ts +9 -9
- package/widgets/lib/widgets/editors/link-widget/link-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/link-widget/link-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/link-widget/link-widget-view.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/map-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-edit.component.d.ts +5 -5
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-view.component.d.ts +6 -6
- package/widgets/lib/widgets/editors/number-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-edit.component.d.ts +8 -11
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-view.component.d.ts +5 -7
- package/widgets/lib/widgets/editors/password-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-edit.component.d.ts +4 -2
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-view.component.d.ts +6 -5
- package/widgets/lib/widgets/editors/phone-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-edit.component.d.ts +7 -8
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-view.component.d.ts +4 -4
- package/widgets/lib/widgets/editors/rich-text-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-popup.component.d.ts +9 -0
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-column.component.d.ts +11 -3
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +7 -29
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-view.component.d.ts +10 -6
- package/widgets/lib/widgets/editors/select-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-edit.component.d.ts +10 -7
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-view.component.d.ts +5 -5
- package/widgets/lib/widgets/editors/selection-list-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-edit.component.d.ts +10 -7
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-view.component.d.ts +5 -5
- package/widgets/lib/widgets/editors/signature-pad-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +4 -2
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +3 -2
- package/widgets/lib/widgets/editors/text-box-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-column.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-edit.component.d.ts +7 -8
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-view.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/toggle-widget/index.d.ts +0 -1
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-column.component.d.ts +3 -3
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-edit.component.d.ts +5 -2
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-filter.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-view.component.d.ts +5 -5
- package/widgets/lib/widgets/index.d.ts +1 -0
- package/widgets/lib/widgets/layout/block-widget/block-widget-designer.component.d.ts +11 -0
- package/widgets/lib/widgets/layout/block-widget/{block-widget.component.d.ts → block-widget-view.component.d.ts} +5 -3
- package/widgets/lib/widgets/layout/block-widget/index.d.ts +2 -1
- package/widgets/lib/widgets/layout/page-widget/index.d.ts +2 -0
- package/widgets/lib/widgets/layout/page-widget/page-widget-designer.component.d.ts +10 -0
- package/widgets/lib/widgets/layout/page-widget/page-widget-view.component.d.ts +8 -0
- package/widgets/lib/widgets/layout/page-widget/page-widget.config.d.ts +2 -0
- package/widgets/lib/widgets/layout/repeater-widget/index.d.ts +0 -2
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-designer.component.d.ts +4 -2
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-edit.component.d.ts +2 -2
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-print.component.d.ts +2 -2
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-view.component.d.ts +2 -2
- package/widgets/lib/widgets/layout/text-block-widget/index.d.ts +2 -0
- package/widgets/lib/widgets/layout/text-block-widget/text-block-widget-view.component.d.ts +10 -0
- package/widgets/lib/widgets/layout/text-block-widget/text-block-widget.config.d.ts +2 -0
- package/esm2022/layout/designer/lib/components/widget-property-viewer.component.mjs +0 -86
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/email-box-widget/email-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/file-box-widget/file-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/gallery-widget/gallery-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/large-text-widget/large-text-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/link-widget/link-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/map-box-widget/map-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/number-box-widget/number-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/password-box-widget/password-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/select-box-widget/select-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/text-box-widget/text-box-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/editors/toggle-widget/toggle-widget-designer.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/layout/block-widget/block-widget.component.mjs +0 -34
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-column.component.mjs +0 -19
- package/esm2022/widgets/lib/widgets/layout/repeater-widget/repeater-widget-filter.component.mjs +0 -20
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-CjofXJku.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D1vzPrng.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DCE6c3Is.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CJUV6lFi.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-T-tXqoMd.mjs.map +0 -1
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact-widget/contact-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/date-time-box-widget/date-time-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/email-box-widget/email-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/file-box-widget/file-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/gallery-widget/gallery-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text-widget/large-text-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link-widget/link-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/map-box-widget/map-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-box-widget/number-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/password-box-widget/password-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone-box-widget/phone-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text-widget/rich-text-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/select-box-widget/select-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/selection-list-widget/selection-list-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/signature-pad-widget/signature-pad-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text-box-widget/text-box-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle-widget/toggle-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/repeater-widget/repeater-widget-filter.component.d.ts +0 -6
package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-edit.component.mjs
CHANGED
|
@@ -7,9 +7,9 @@ import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
|
7
7
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
8
8
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
9
9
|
import { AXValidationModule, AXValidationService } from '@acorex/core/validation';
|
|
10
|
-
import {
|
|
10
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
11
11
|
import { CommonModule } from '@angular/common';
|
|
12
|
-
import { ChangeDetectionStrategy, Component, computed, inject
|
|
12
|
+
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
|
|
13
13
|
import { FormsModule } from '@angular/forms';
|
|
14
14
|
import { popupComponent } from './popup-component';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
@@ -20,21 +20,27 @@ import * as i4 from "@acorex/components/form";
|
|
|
20
20
|
import * as i5 from "@acorex/components/button";
|
|
21
21
|
import * as i6 from "@acorex/components/decorators";
|
|
22
22
|
import * as i7 from "@acorex/components/text-box";
|
|
23
|
-
export class AXPContactWidgetEditComponent extends
|
|
23
|
+
export class AXPContactWidgetEditComponent extends AXPWidgetComponent {
|
|
24
24
|
constructor() {
|
|
25
25
|
super(...arguments);
|
|
26
|
-
|
|
26
|
+
//properties
|
|
27
|
+
this.type = computed(() => this.options()['type']);
|
|
28
|
+
this.labelList = computed(() => this.options()['labelList'] || ['primary', 'secondary', 'new']);
|
|
29
|
+
this.hasLabel = computed(() => this.options()['hasLabel']);
|
|
30
|
+
this.multiple = computed(() => this.options()['multiple']);
|
|
31
|
+
this.hasIcon = computed(() => this.options()['hasIcon']);
|
|
32
|
+
this.disabled = computed(() => this.options()['disabled']);
|
|
27
33
|
this.popup = inject(AXPopupService);
|
|
28
34
|
this.dataSource = new AXDataSource({
|
|
29
|
-
pageSize: this.
|
|
35
|
+
pageSize: this.labelList().length,
|
|
30
36
|
load: (e) => {
|
|
31
37
|
return Promise.resolve({
|
|
32
|
-
items: this.
|
|
33
|
-
total: this.
|
|
38
|
+
items: this.labelList().slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),
|
|
39
|
+
total: this.labelList().length,
|
|
34
40
|
});
|
|
35
41
|
},
|
|
36
42
|
byKey: (key) => {
|
|
37
|
-
return Promise.resolve(this.
|
|
43
|
+
return Promise.resolve(this.labelList().find((i) => i === key));
|
|
38
44
|
},
|
|
39
45
|
});
|
|
40
46
|
this.internalValue = computed(() => this.valueToArray());
|
|
@@ -43,19 +49,19 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
43
49
|
this.itemToArray = (item) => {
|
|
44
50
|
if (typeof item === 'object')
|
|
45
51
|
return {
|
|
46
|
-
value: item
|
|
47
|
-
|
|
48
|
-
icon: this.hasIcon ? item
|
|
52
|
+
value: item?.value ?? '',
|
|
53
|
+
label: this.hasLabel() ? item?.label || this.labelList()[0] : undefined,
|
|
54
|
+
icon: this.hasIcon() ? item?.icon || this.chooseIcon() : undefined,
|
|
49
55
|
};
|
|
50
56
|
else
|
|
51
57
|
return {
|
|
52
58
|
value: item,
|
|
53
|
-
|
|
54
|
-
icon: this.hasIcon ? this.chooseIcon() : undefined,
|
|
59
|
+
label: this.hasLabel() ? this.labelList()[0] : undefined,
|
|
60
|
+
icon: this.hasIcon() ? this.chooseIcon() : undefined,
|
|
55
61
|
};
|
|
56
62
|
};
|
|
57
63
|
this.chooseIcon = () => {
|
|
58
|
-
switch (this.
|
|
64
|
+
switch (this.type()) {
|
|
59
65
|
case 'email':
|
|
60
66
|
return 'fa-link';
|
|
61
67
|
case 'link':
|
|
@@ -78,10 +84,10 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
78
84
|
async handleValueChange(e, selectedIndex) {
|
|
79
85
|
let { name, value, isUserInteraction } = e;
|
|
80
86
|
if (isUserInteraction) {
|
|
81
|
-
if (e.name === '
|
|
87
|
+
if (e.name === 'label') {
|
|
82
88
|
if (e.value === 'Add New') {
|
|
83
89
|
const options = {
|
|
84
|
-
title: 'Enter
|
|
90
|
+
title: 'Enter Label...',
|
|
85
91
|
// header: false,
|
|
86
92
|
// footer: true,
|
|
87
93
|
size: 'sm',
|
|
@@ -92,26 +98,26 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
92
98
|
};
|
|
93
99
|
const newValue = await this.popup.open(popupComponent, { ...options }).then((e) => e.data);
|
|
94
100
|
value = newValue.value;
|
|
95
|
-
this.
|
|
96
|
-
this.
|
|
101
|
+
this.labelList().pop();
|
|
102
|
+
this.labelList().push(value, 'Add New');
|
|
97
103
|
this.dataSource.refresh();
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
const newValues = this.internalValue().map((item, index) => (selectedIndex === index ? { ...item, [name]: value } : item));
|
|
102
|
-
if (this.multiple)
|
|
108
|
+
if (this.multiple())
|
|
103
109
|
this.setValue(newValues);
|
|
104
110
|
else
|
|
105
111
|
this.setValue(newValues[0]);
|
|
106
112
|
}
|
|
107
113
|
generateClasses(element) {
|
|
108
|
-
if (this.multiple) {
|
|
109
|
-
if (this.
|
|
114
|
+
if (this.multiple()) {
|
|
115
|
+
if (this.hasLabel()) {
|
|
110
116
|
if (element === 'value') {
|
|
111
117
|
return 'ax-col-start-1 ax-col-end-13 lg:ax-col-end-7';
|
|
112
118
|
}
|
|
113
119
|
else {
|
|
114
|
-
return 'ax-col-start-1 ax-col-end-
|
|
120
|
+
return 'ax-col-start-1 ax-col-end-12 lg:ax-col-start-7 lg:ax-col-end-12';
|
|
115
121
|
}
|
|
116
122
|
}
|
|
117
123
|
else {
|
|
@@ -121,7 +127,7 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
else {
|
|
124
|
-
if (this.
|
|
130
|
+
if (this.hasLabel()) {
|
|
125
131
|
if (element === 'value') {
|
|
126
132
|
return 'ax-col-start-1 ax-col-end-13 lg:ax-col-end-7';
|
|
127
133
|
}
|
|
@@ -157,42 +163,54 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
157
163
|
};
|
|
158
164
|
}
|
|
159
165
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="ax-grid ax-grid-cols-12 ax-gap-4">
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="lg:ax-grid lg:ax-grid-cols-12 lg:ax-gap-4">
|
|
161
167
|
@for(item of internalValue();track $index) {
|
|
162
168
|
<ax-text-box
|
|
163
169
|
[ngModel]="item.value"
|
|
164
170
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
165
171
|
type="text"
|
|
166
172
|
name="value"
|
|
167
|
-
placeholder="Enter {{
|
|
173
|
+
placeholder="Enter {{ type() }} ..."
|
|
168
174
|
[ngClass]="generateClasses('value')"
|
|
175
|
+
[disabled]="disabled()"
|
|
169
176
|
>
|
|
170
177
|
@for (validation of validationRules; track $index) {
|
|
171
178
|
<ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
|
|
172
179
|
}
|
|
173
180
|
<ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
|
|
174
181
|
</ax-text-box>
|
|
175
|
-
@if(
|
|
182
|
+
@if(hasLabel()){
|
|
176
183
|
<ax-select-box
|
|
177
184
|
[dataSource]="dataSource"
|
|
178
|
-
[ngModel]="item.
|
|
185
|
+
[ngModel]="item.label"
|
|
186
|
+
[disabled]="disabled()"
|
|
179
187
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
180
|
-
placeholder="Choose
|
|
181
|
-
name="
|
|
182
|
-
[ngClass]="generateClasses('
|
|
188
|
+
placeholder="Choose label..."
|
|
189
|
+
name="label"
|
|
190
|
+
[ngClass]="generateClasses('label')"
|
|
183
191
|
>
|
|
192
|
+
@if(type()==='email'){
|
|
193
|
+
<ax-validation-rule [rule]="'email'"></ax-validation-rule>
|
|
194
|
+
}
|
|
184
195
|
</ax-select-box>
|
|
185
|
-
} @if(multiple){
|
|
186
|
-
<ax-button
|
|
196
|
+
} @if(multiple()){
|
|
197
|
+
<ax-button
|
|
198
|
+
[disabled]="disabled()"
|
|
199
|
+
look="twotone"
|
|
200
|
+
color="danger"
|
|
201
|
+
(onClick)="deleteItem($index)"
|
|
202
|
+
class="ax-col-start-12 ax-col-end-13 ax-justify-self-end"
|
|
203
|
+
>
|
|
187
204
|
<ax-icon icon="fa-regular fa-xmark"></ax-icon>
|
|
188
205
|
</ax-button>
|
|
189
|
-
} } @if(multiple){
|
|
206
|
+
} } @if(multiple()){
|
|
190
207
|
|
|
191
208
|
<ax-button
|
|
192
209
|
[text]="internalValue().length == 0 ? 'Add New' : 'Add Another'"
|
|
210
|
+
[disabled]="disabled()"
|
|
193
211
|
look="twotone"
|
|
194
212
|
(onClick)="addItem()"
|
|
195
|
-
class="ax-col-start-8 lg:ax-col-start-
|
|
213
|
+
class="sm:ax-col-start-8 lg:ax-col-start-7 xl:ax-col-start-11 sm:ax-col-end-13"
|
|
196
214
|
>
|
|
197
215
|
<ax-prefix>
|
|
198
216
|
<ax-icon class="fa-solid fa-add"></ax-icon>
|
|
@@ -204,42 +222,54 @@ export class AXPContactWidgetEditComponent extends AXPWidgetBase {
|
|
|
204
222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetEditComponent, decorators: [{
|
|
205
223
|
type: Component,
|
|
206
224
|
args: [{
|
|
207
|
-
template: `<div class="ax-grid ax-grid-cols-12 ax-gap-4">
|
|
225
|
+
template: `<div class="lg:ax-grid lg:ax-grid-cols-12 lg:ax-gap-4">
|
|
208
226
|
@for(item of internalValue();track $index) {
|
|
209
227
|
<ax-text-box
|
|
210
228
|
[ngModel]="item.value"
|
|
211
229
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
212
230
|
type="text"
|
|
213
231
|
name="value"
|
|
214
|
-
placeholder="Enter {{
|
|
232
|
+
placeholder="Enter {{ type() }} ..."
|
|
215
233
|
[ngClass]="generateClasses('value')"
|
|
234
|
+
[disabled]="disabled()"
|
|
216
235
|
>
|
|
217
236
|
@for (validation of validationRules; track $index) {
|
|
218
237
|
<ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
|
|
219
238
|
}
|
|
220
239
|
<ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
|
|
221
240
|
</ax-text-box>
|
|
222
|
-
@if(
|
|
241
|
+
@if(hasLabel()){
|
|
223
242
|
<ax-select-box
|
|
224
243
|
[dataSource]="dataSource"
|
|
225
|
-
[ngModel]="item.
|
|
244
|
+
[ngModel]="item.label"
|
|
245
|
+
[disabled]="disabled()"
|
|
226
246
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
227
|
-
placeholder="Choose
|
|
228
|
-
name="
|
|
229
|
-
[ngClass]="generateClasses('
|
|
247
|
+
placeholder="Choose label..."
|
|
248
|
+
name="label"
|
|
249
|
+
[ngClass]="generateClasses('label')"
|
|
230
250
|
>
|
|
251
|
+
@if(type()==='email'){
|
|
252
|
+
<ax-validation-rule [rule]="'email'"></ax-validation-rule>
|
|
253
|
+
}
|
|
231
254
|
</ax-select-box>
|
|
232
|
-
} @if(multiple){
|
|
233
|
-
<ax-button
|
|
255
|
+
} @if(multiple()){
|
|
256
|
+
<ax-button
|
|
257
|
+
[disabled]="disabled()"
|
|
258
|
+
look="twotone"
|
|
259
|
+
color="danger"
|
|
260
|
+
(onClick)="deleteItem($index)"
|
|
261
|
+
class="ax-col-start-12 ax-col-end-13 ax-justify-self-end"
|
|
262
|
+
>
|
|
234
263
|
<ax-icon icon="fa-regular fa-xmark"></ax-icon>
|
|
235
264
|
</ax-button>
|
|
236
|
-
} } @if(multiple){
|
|
265
|
+
} } @if(multiple()){
|
|
237
266
|
|
|
238
267
|
<ax-button
|
|
239
268
|
[text]="internalValue().length == 0 ? 'Add New' : 'Add Another'"
|
|
269
|
+
[disabled]="disabled()"
|
|
240
270
|
look="twotone"
|
|
241
271
|
(onClick)="addItem()"
|
|
242
|
-
class="ax-col-start-8 lg:ax-col-start-
|
|
272
|
+
class="sm:ax-col-start-8 lg:ax-col-start-7 xl:ax-col-start-11 sm:ax-col-end-13"
|
|
243
273
|
>
|
|
244
274
|
<ax-prefix>
|
|
245
275
|
<ax-icon class="fa-solid fa-add"></ax-icon>
|
|
@@ -264,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
264
294
|
inputs: [],
|
|
265
295
|
}]
|
|
266
296
|
}] });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7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QUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBMENGO29CQUNSLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYUG9wdXBDb25maWcsIEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlLCBBWFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQV2lkZ2V0QmFzZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9wb3B1cC1jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgQGZvcihpdGVtIG9mIGludGVybmFsVmFsdWUoKTt0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtdGV4dC1ib3hcbiAgICAgIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudCwgJGluZGV4KVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBuYW1lPVwidmFsdWVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB7eyB3aWRnZXRUeXBlIH19IC4uLlwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ3ZhbHVlJylcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCIgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCIgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIG1lc3NhZ2U9XCJmaWVsZCBjYW4ndCBiZSBlbXB0eVwiIHJ1bGU9XCJyZXF1aXJlZFwiPiA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICA8L2F4LXRleHQtYm94PlxuICAgIEBpZihoYXNMYWJsZSl7XG4gICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgW25nTW9kZWxdPVwiaXRlbS5sYWJsZVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIGxhYmxlLi4uXCJcbiAgICAgIG5hbWU9XCJsYWJsZVwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ2xhYmxlJylcIlxuICAgID5cbiAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgfSBAaWYobXVsdGlwbGUpe1xuICAgIDxheC1idXR0b24gbG9vaz1cInR3b3RvbmVcIiBjb2xvcj1cImRhbmdlclwiIChvbkNsaWNrKT1cImRlbGV0ZUl0ZW0oJGluZGV4KVwiIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEyIGF4LWNvbC1lbmQtMTMgYXgtanVzdGlmeS1zZWxmLWVuZFwiPlxuICAgICAgPGF4LWljb24gaWNvbj1cImZhLXJlZ3VsYXIgZmEteG1hcmtcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gICAgfSB9IEBpZihtdWx0aXBsZSl7XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJpbnRlcm5hbFZhbHVlKCkubGVuZ3RoID09IDAgPyAnQWRkIE5ldycgOiAnQWRkIEFub3RoZXInXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC04IGxnOmF4LWNvbC1zdGFydC0xMCAyeGw6YXgtY29sLXN0YXJ0LTEwIGF4LWNvbC1lbmQtMTNcIlxuICAgID5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYVGV4dEJveE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29udGFjdFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRCYXNlPGFueT4ge1xuICAvL3Byb3BlcnRpZXNcbiAgcHJvdGVjdGVkIHdpZGdldFR5cGUhOiAnbGluaycgfCAncGhvbmUnIHwgJ2VtYWlsJztcbiAgcHJvdGVjdGVkIGxhYmxlTGlzdCA9IHNpZ25hbChbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ0FkZCBOZXcnXSk7XG4gIHByb3RlY3RlZCBtdWx0aXBsZSE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBoYXNMYWJsZSE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBoYXNJY29uITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIHBhZ2VTaXplOiB0aGlzLmxhYmxlTGlzdCgpLmxlbmd0aCxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLmxhYmxlTGlzdCgpLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICB0b3RhbDogdGhpcy5sYWJsZUxpc3QoKS5sZW5ndGgsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMubGFibGVMaXN0KCkuZmluZCgoaSkgPT4gaSA9PT0ga2V5KSk7XG4gICAgfSxcbiAgfSk7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlOiBTaWduYWw8QVhQQ29udGFjdERhdGFUeXBlW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZVRvQXJyYXkoKSk7XG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlczogQVhQQ29udGFjdERhdGFUeXBlW10gPSBbLi4udGhpcy5pbnRlcm5hbFZhbHVlKCksIHRoaXMuZW1wdHlWYWx1ZSgpXTtcbiAgICB0aGlzLnNldFZhbHVlKG5ld1ZhbHVlcyk7XG4gIH1cbiAgcHJvdGVjdGVkIGRlbGV0ZUl0ZW0oZGVsZXRlZEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB0aGlzLmludGVybmFsVmFsdWUoKS5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPSBkZWxldGVkSW5kZXgpO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCwgc2VsZWN0ZWRJbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IHsgbmFtZSwgdmFsdWUsIGlzVXNlckludGVyYWN0aW9uIH0gPSBlO1xuICAgIGlmIChpc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgaWYgKGUubmFtZSA9PT0gJ2xhYmxlJykge1xuICAgICAgICBpZiAoZS52YWx1ZSA9PT0gJ0FkZCBOZXcnKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uczogQVhQb3B1cENvbmZpZyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnRW50ZXIgTGFibGUuLi4nLFxuICAgICAgICAgICAgLy8gaGVhZGVyOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGZvb3RlcjogdHJ1ZSxcbiAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgICAvLyBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGF3YWl0IHRoaXMucG9wdXAub3Blbihwb3B1cENvbXBvbmVudCwgeyAuLi5vcHRpb25zIH0pLnRoZW4oKGUpID0+IGUuZGF0YSk7XG4gICAgICAgICAgdmFsdWUgPSBuZXdWYWx1ZS52YWx1ZTtcbiAgICAgICAgICB0aGlzLmxhYmxlTGlzdCgpLnBvcCgpO1xuICAgICAgICAgIHRoaXMubGFibGVMaXN0KCkucHVzaCh2YWx1ZSwgJ0FkZCBOZXcnKTtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpLm1hcCgoaXRlbSwgaW5kZXgpID0+IChzZWxlY3RlZEluZGV4ID09PSBpbmRleCA/IHsgLi4uaXRlbSwgW25hbWUgYXMgc3RyaW5nXTogdmFsdWUgfSA6IGl0ZW0pKTtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXMpO1xuICAgIGVsc2UgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXNbMF0pO1xuICB9XG4gIHByb3RlY3RlZCBnZW5lcmF0ZUNsYXNzZXMoZWxlbWVudDogJ3ZhbHVlJyB8ICdsYWJsZScpOiBzdHJpbmcgfCBhbnkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5oYXNMYWJsZSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMSBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEyJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTInO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmhhc0xhYmxlKSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1lbmQtNyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1zdGFydC03IGxnOmF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVmFsaWRhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIF92YWxpZGF0aW9uUnVsZXM6IEFYUFZhbGlkYXRpb25SdWxlcyA9IFtdO1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb25SdWxlcygpOiBBWFBWYWxpZGF0aW9uUnVsZXMge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uUnVsZXM7XG4gIH1cbiAgcHVibGljIHNldCB2YWxpZGF0aW9uUnVsZXModjogQVhQVmFsaWRhdGlvblJ1bGVzKSB7XG4gICAgdGhpcy5fdmFsaWRhdGlvblJ1bGVzID0gdjtcbiAgfVxuICBwcml2YXRlIHZhbHVlVG9BcnJheSgpOiBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgY29uc3QgdmFsdWU6IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuaXRlbVRvQXJyYXkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMuaXRlbVRvQXJyYXkodmFsdWUpXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpdGVtVG9BcnJheSA9IChpdGVtOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcpOiBBWFBDb250YWN0RGF0YVR5cGUgPT4ge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSA/PyAnJyxcbiAgICAgICAgbGFibGU6IHRoaXMuaGFzTGFibGUgPyBpdGVtLmxhYmxlIHx8IHRoaXMubGFibGVMaXN0KClbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIGljb246IHRoaXMuaGFzSWNvbiA/IGl0ZW0uaWNvbiB8fCB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW0sXG4gICAgICAgIGxhYmxlOiB0aGlzLmhhc0xhYmxlID8gdGhpcy5sYWJsZUxpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uID8gdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICB9O1xuICBwcml2YXRlIGVtcHR5VmFsdWUoKTogQVhQQ29udGFjdERhdGFUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLndpZGdldFR5cGUpIHtcbiAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgcmV0dXJuICdmYS1saW5rJztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gJ2ZhLWVudmVsb3BlJztcbiAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgcmV0dXJuICdmYS1waG9uZSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2ZhLWluZm8nO1xuICAgIH1cbiAgfTtcbn1cbmludGVyZmFjZSBBWFBDb250YWN0RGF0YVR5cGUge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJsZT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7O0FBMEVuRCxN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ICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFBvcHVwQ29uZmlnLCBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSwgQVhWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQQ29udGFjdERhdGFUeXBlIH0gZnJvbSAnLi9jb250YWN0LnR5cGUnO1xuaW1wb3J0IHsgcG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJsZzpheC1ncmlkIGxnOmF4LWdyaWQtY29scy0xMiBsZzpheC1nYXAtNFwiPlxuICAgIEBmb3IoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7dHJhY2sgJGluZGV4KSB7XG4gICAgPGF4LXRleHQtYm94XG4gICAgICBbbmdNb2RlbF09XCJpdGVtLnZhbHVlXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQsICRpbmRleClcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgbmFtZT1cInZhbHVlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIge3sgdHlwZSgpIH19IC4uLlwiXG4gICAgICBbbmdDbGFzc109XCJnZW5lcmF0ZUNsYXNzZXMoJ3ZhbHVlJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGUgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCIgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCIgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIG1lc3NhZ2U9XCJmaWVsZCBjYW4ndCBiZSBlbXB0eVwiIHJ1bGU9XCJyZXF1aXJlZFwiPiA8L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICA8L2F4LXRleHQtYm94PlxuICAgIEBpZihoYXNMYWJlbCgpKXtcbiAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgICBbbmdNb2RlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQsICRpbmRleClcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJDaG9vc2UgbGFiZWwuLi5cIlxuICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgIFtuZ0NsYXNzXT1cImdlbmVyYXRlQ2xhc3NlcygnbGFiZWwnKVwiXG4gICAgPlxuICAgICAgQGlmKHR5cGUoKT09PSdlbWFpbCcpe1xuICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSBbcnVsZV09XCInZW1haWwnXCI+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgPC9heC1zZWxlY3QtYm94PlxuICAgIH0gQGlmKG11bHRpcGxlKCkpe1xuICAgIDxheC1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgIChvbkNsaWNrKT1cImRlbGV0ZUl0ZW0oJGluZGV4KVwiXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC0xMiBheC1jb2wtZW5kLTEzIGF4LWp1c3RpZnktc2VsZi1lbmRcIlxuICAgID5cbiAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXhtYXJrXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH0gfSBAaWYobXVsdGlwbGUoKSl7XG5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJpbnRlcm5hbFZhbHVlKCkubGVuZ3RoID09IDAgPyAnQWRkIE5ldycgOiAnQWRkIEFub3RoZXInXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIGxvb2s9XCJ0d290b25lXCJcbiAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICBjbGFzcz1cInNtOmF4LWNvbC1zdGFydC04IGxnOmF4LWNvbC1zdGFydC03IHhsOmF4LWNvbC1zdGFydC0xMSAgIHNtOmF4LWNvbC1lbmQtMTNcIlxuICAgID5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYVGV4dEJveE1vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29udGFjdFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIC8vcHJvcGVydGllc1xuICBwcm90ZWN0ZWQgdHlwZSA9IGNvbXB1dGVkPCdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndHlwZSddIGFzICdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnKTtcbiAgcHJvdGVjdGVkIGxhYmVsTGlzdCA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbGFiZWxMaXN0J10gfHwgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICduZXcnXSk7XG4gIHByb3RlY3RlZCBoYXNMYWJlbCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydoYXNMYWJlbCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGhhc0ljb24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzSWNvbiddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBib29sZWFuKTtcblxuICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgcGFnZVNpemU6IHRoaXMubGFiZWxMaXN0KCkubGVuZ3RoLFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgaXRlbXM6IHRoaXMubGFiZWxMaXN0KCkuc2xpY2UoZS5za2lwLCAoZS5za2lwID8/IDApICsgKGUudGFrZSA/PyAwKSksXG4gICAgICAgIHRvdGFsOiB0aGlzLmxhYmVsTGlzdCgpLmxlbmd0aCxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5sYWJlbExpc3QoKS5maW5kKChpKSA9PiBpID09PSBrZXkpKTtcbiAgICB9LFxuICB9KTtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWU6IFNpZ25hbDxBWFBDb250YWN0RGF0YVR5cGVbXT4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlVG9BcnJheSgpKTtcbiAgcHJvdGVjdGVkIGFkZEl0ZW0oKSB7XG4gICAgY29uc3QgbmV3VmFsdWVzOiBBWFBDb250YWN0RGF0YVR5cGVbXSA9IFsuLi50aGlzLmludGVybmFsVmFsdWUoKSwgdGhpcy5lbXB0eVZhbHVlKCldO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgfVxuICBwcm90ZWN0ZWQgZGVsZXRlSXRlbShkZWxldGVkSW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpLmZpbHRlcigoXywgaW5kZXgpID0+IGluZGV4ICE9IGRlbGV0ZWRJbmRleCk7XG4gICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZXMpO1xuICB9XG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50LCBzZWxlY3RlZEluZGV4OiBudW1iZXIpIHtcbiAgICBsZXQgeyBuYW1lLCB2YWx1ZSwgaXNVc2VySW50ZXJhY3Rpb24gfSA9IGU7XG4gICAgaWYgKGlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnbGFiZWwnKSB7XG4gICAgICAgIGlmIChlLnZhbHVlID09PSAnQWRkIE5ldycpIHtcbiAgICAgICAgICBjb25zdCBvcHRpb25zOiBBWFBvcHVwQ29uZmlnID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdFbnRlciBMYWJlbC4uLicsXG4gICAgICAgICAgICAvLyBoZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gZm9vdGVyOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogJ3NtJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgLy8gY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAvLyBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgdGhpcy5wb3B1cC5vcGVuKHBvcHVwQ29tcG9uZW50LCB7IC4uLm9wdGlvbnMgfSkudGhlbigoZSkgPT4gZS5kYXRhKTtcbiAgICAgICAgICB2YWx1ZSA9IG5ld1ZhbHVlLnZhbHVlO1xuICAgICAgICAgIHRoaXMubGFiZWxMaXN0KCkucG9wKCk7XG4gICAgICAgICAgdGhpcy5sYWJlbExpc3QoKS5wdXNoKHZhbHVlLCAnQWRkIE5ldycpO1xuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV3VmFsdWVzID0gdGhpcy5pbnRlcm5hbFZhbHVlKCkubWFwKChpdGVtLCBpbmRleCkgPT4gKHNlbGVjdGVkSW5kZXggPT09IGluZGV4ID8geyAuLi5pdGVtLCBbbmFtZSBhcyBzdHJpbmddOiB2YWx1ZSB9IDogaXRlbSkpO1xuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzKTtcbiAgICBlbHNlIHRoaXMuc2V0VmFsdWUobmV3VmFsdWVzWzBdKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVDbGFzc2VzKGVsZW1lbnQ6ICd2YWx1ZScgfCAnbGFiZWwnKTogc3RyaW5nIHwgYW55IHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICBpZiAodGhpcy5oYXNMYWJlbCgpKSB7XG4gICAgICAgIGlmIChlbGVtZW50ID09PSAndmFsdWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEzIGxnOmF4LWNvbC1lbmQtNyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdheC1jb2wtc3RhcnQtMSBheC1jb2wtZW5kLTEyIGxnOmF4LWNvbC1zdGFydC03IGxnOmF4LWNvbC1lbmQtMTInO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaGFzTGFiZWwoKSkge1xuICAgICAgICBpZiAoZWxlbWVudCA9PT0gJ3ZhbHVlJykge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtZW5kLTcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0xMyBsZzpheC1jb2wtc3RhcnQtNyBsZzpheC1jb2wtZW5kLTEzJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09ICd2YWx1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ2F4LWNvbC1zdGFydC0xIGF4LWNvbC1lbmQtMTMnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uU2VydmljZSA9IGluamVjdChBWFZhbGlkYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvblJ1bGVzOiBBWFBWYWxpZGF0aW9uUnVsZXMgPSBbXTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uUnVsZXMoKTogQVhQVmFsaWRhdGlvblJ1bGVzIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvblJ1bGVzO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvblJ1bGVzKHY6IEFYUFZhbGlkYXRpb25SdWxlcykge1xuICAgIHRoaXMuX3ZhbGlkYXRpb25SdWxlcyA9IHY7XG4gIH1cbiAgcHJpdmF0ZSB2YWx1ZVRvQXJyYXkoKTogQVhQQ29udGFjdERhdGFUeXBlW10ge1xuICAgIGNvbnN0IHZhbHVlOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLml0ZW1Ub0FycmF5KGl0ZW0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt0aGlzLml0ZW1Ub0FycmF5KHZhbHVlKV07XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaXRlbVRvQXJyYXkgPSAoaXRlbTogQVhQQ29udGFjdERhdGFUeXBlIHwgc3RyaW5nKTogQVhQQ29udGFjdERhdGFUeXBlID0+IHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IGl0ZW0/LnZhbHVlID8/ICcnLFxuICAgICAgICBsYWJlbDogdGhpcy5oYXNMYWJlbCgpID8gaXRlbT8ubGFiZWwgfHwgdGhpcy5sYWJlbExpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uKCkgPyBpdGVtPy5pY29uIHx8IHRoaXMuY2hvb3NlSWNvbigpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgbGFiZWw6IHRoaXMuaGFzTGFiZWwoKSA/IHRoaXMubGFiZWxMaXN0KClbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIGljb246IHRoaXMuaGFzSWNvbigpID8gdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICB9O1xuICBwcml2YXRlIGVtcHR5VmFsdWUoKTogQVhQQ29udGFjdERhdGFUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUoKSkge1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICByZXR1cm4gJ2ZhLWxpbmsnO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHJldHVybiAnZmEtZW52ZWxvcGUnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gJ2ZhLXBob25lJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmEtaW5mbyc7XG4gICAgfVxuICB9O1xufVxuIl19
|
package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-filter.component.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export class AXPContactWidgetFilterComponent extends
|
|
6
|
+
export class AXPContactWidgetFilterComponent extends AXPWidgetComponent {
|
|
7
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
8
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPContactWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
9
|
}
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
17
17
|
inputs: []
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvZWRpdG9ycy9jb250YWN0LXdpZGdldC9jb250YWN0LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTN0MsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGtCQUF1Qjs4R0FBL0QsK0JBQStCO2tHQUEvQiwrQkFBK0IsK0ZBTmhDLEVBQUUsMkRBR0YsWUFBWSw4QkFBRSxXQUFXOzsyRkFHeEIsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRDb21wb25lbnQ8YW55PiB7IH0iXX0=
|
package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-print.component.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
export class AXPContactWidgetPrintComponent extends
|
|
5
|
+
export class AXPContactWidgetPrintComponent extends AXPWidgetComponent {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
7
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPContactWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8
8
|
}
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
16
16
|
inputs: []
|
|
17
17
|
}]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtcHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy9lZGl0b3JzL2NvbnRhY3Qtd2lkZ2V0L2NvbnRhY3Qtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUF1Qjs4R0FBOUQsOEJBQThCO2tHQUE5Qiw4QkFBOEIsK0ZBTi9CLEVBQUUsMkRBR0YsWUFBWTs7MkZBR1gsOEJBQThCO2tCQVAxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRQcmludENvbXBvbmVudCBleHRlbmRzIEFYUFdpZGdldENvbXBvbmVudDxhbnk+IHsgfSJdfQ==
|
package/esm2022/widgets/lib/widgets/editors/contact-widget/contact-widget-view.component.mjs
CHANGED
|
@@ -1,20 +1,122 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AXBadgeModule } from '@acorex/components/badge';
|
|
2
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
|
+
import { AXPClipBoardService } from '@acorex/platform/common';
|
|
4
|
+
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
5
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
6
|
+
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
|
|
4
7
|
import { FormsModule } from '@angular/forms';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
|
-
|
|
9
|
+
import * as i1 from "@acorex/components/badge";
|
|
10
|
+
import * as i2 from "@acorex/components/decorators";
|
|
11
|
+
export class AXPContactWidgetViewComponent extends AXPWidgetComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.type = computed(() => this.options()['type']);
|
|
15
|
+
this.labelList = computed(() => this.options()['labelList'] || ['primary', 'secondary', 'Add New']);
|
|
16
|
+
this.hasLabel = computed(() => this.options()['hasLabel']);
|
|
17
|
+
this.multiple = computed(() => this.options()['multiple']);
|
|
18
|
+
this.hasIcon = computed(() => this.options()['hasIcon']);
|
|
19
|
+
this.internalValue = computed(() => this.valueToArray());
|
|
20
|
+
this.clipboard = inject(AXPClipBoardService);
|
|
21
|
+
this.chooseIcon = () => {
|
|
22
|
+
switch (this.type()) {
|
|
23
|
+
case 'email':
|
|
24
|
+
return 'fa-envelope';
|
|
25
|
+
case 'link':
|
|
26
|
+
return 'fa-link';
|
|
27
|
+
case 'phone':
|
|
28
|
+
return 'fa-phone';
|
|
29
|
+
default:
|
|
30
|
+
return 'fa-info';
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
this.itemToArray = (item) => {
|
|
34
|
+
if (typeof item === 'object')
|
|
35
|
+
return {
|
|
36
|
+
value: item?.value ?? '',
|
|
37
|
+
label: this.hasLabel() ? item?.label || this.labelList()[0] : undefined,
|
|
38
|
+
icon: this.hasIcon() ? item?.icon || this.chooseIcon() : undefined,
|
|
39
|
+
};
|
|
40
|
+
else
|
|
41
|
+
return {
|
|
42
|
+
value: item,
|
|
43
|
+
label: this.hasLabel() ? this.labelList()[0] : undefined,
|
|
44
|
+
icon: this.hasIcon() ? this.chooseIcon() : undefined,
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
valueToArray() {
|
|
49
|
+
const value = this.getValue();
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
return value.map((item) => this.itemToArray(item));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return [this.itemToArray(value)];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
7
57
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPContactWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="ax-grid ax-grid-cols-12 ax-gap-1 ax-justify-center ax-items-center ax-group">
|
|
59
|
+
@for(item of internalValue();track $index){ @if(item){ @if(hasIcon()){
|
|
60
|
+
<ax-icon class="ax-col-start-1 ax-col-end-2 fa-solid ax-text-neutral-400" [class]="chooseIcon()"> </ax-icon>
|
|
61
|
+
} @let href = type() === 'link' ? item.value : type()==='phone'? 'tel:'+item.value : 'mailto:'+ item.value ;
|
|
62
|
+
<div class="ax-col-start-2 ax-col-end-9">
|
|
63
|
+
<a
|
|
64
|
+
[href]="href"
|
|
65
|
+
[target]="'_blank'"
|
|
66
|
+
class="ax-text-blue-700 group-hover:!ax-text-primary-500 group-hover:ax-underline group-hover:ax-decoration-blue-700"
|
|
67
|
+
>{{ item.value }}</a
|
|
68
|
+
>
|
|
69
|
+
<span
|
|
70
|
+
class="ax-text-neutral-400 ax-cursor-pointer ax-invisible group-hover:ax-visible hover:!ax-text-primary-500"
|
|
71
|
+
(click)="clipboard.copy('Email', item.value)"
|
|
72
|
+
>
|
|
73
|
+
<i class="fa-solid fa-copy "></i>
|
|
74
|
+
</span>
|
|
75
|
+
</div>
|
|
76
|
+
@if(hasLabel()){
|
|
77
|
+
<ax-badge
|
|
78
|
+
class="ax-col-start-10 ax-col-end-12 ax-flex ax-justify-center ax-items-center"
|
|
79
|
+
color="primary"
|
|
80
|
+
[look]="'twotone'"
|
|
81
|
+
[text]="item.label ?? ''"
|
|
82
|
+
></ax-badge>
|
|
83
|
+
} }}
|
|
84
|
+
</div> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
85
|
}
|
|
10
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPContactWidgetViewComponent, decorators: [{
|
|
11
87
|
type: Component,
|
|
12
88
|
args: [{
|
|
13
|
-
template:
|
|
89
|
+
template: `<div class="ax-grid ax-grid-cols-12 ax-gap-1 ax-justify-center ax-items-center ax-group">
|
|
90
|
+
@for(item of internalValue();track $index){ @if(item){ @if(hasIcon()){
|
|
91
|
+
<ax-icon class="ax-col-start-1 ax-col-end-2 fa-solid ax-text-neutral-400" [class]="chooseIcon()"> </ax-icon>
|
|
92
|
+
} @let href = type() === 'link' ? item.value : type()==='phone'? 'tel:'+item.value : 'mailto:'+ item.value ;
|
|
93
|
+
<div class="ax-col-start-2 ax-col-end-9">
|
|
94
|
+
<a
|
|
95
|
+
[href]="href"
|
|
96
|
+
[target]="'_blank'"
|
|
97
|
+
class="ax-text-blue-700 group-hover:!ax-text-primary-500 group-hover:ax-underline group-hover:ax-decoration-blue-700"
|
|
98
|
+
>{{ item.value }}</a
|
|
99
|
+
>
|
|
100
|
+
<span
|
|
101
|
+
class="ax-text-neutral-400 ax-cursor-pointer ax-invisible group-hover:ax-visible hover:!ax-text-primary-500"
|
|
102
|
+
(click)="clipboard.copy('Email', item.value)"
|
|
103
|
+
>
|
|
104
|
+
<i class="fa-solid fa-copy "></i>
|
|
105
|
+
</span>
|
|
106
|
+
</div>
|
|
107
|
+
@if(hasLabel()){
|
|
108
|
+
<ax-badge
|
|
109
|
+
class="ax-col-start-10 ax-col-end-12 ax-flex ax-justify-center ax-items-center"
|
|
110
|
+
color="primary"
|
|
111
|
+
[look]="'twotone'"
|
|
112
|
+
[text]="item.label ?? ''"
|
|
113
|
+
></ax-badge>
|
|
114
|
+
} }}
|
|
115
|
+
</div> `,
|
|
14
116
|
standalone: true,
|
|
15
117
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
-
imports: [CommonModule, FormsModule],
|
|
17
|
-
inputs: []
|
|
118
|
+
imports: [CommonModule, FormsModule, AXBadgeModule, AXDecoratorModule],
|
|
119
|
+
inputs: [],
|
|
18
120
|
}]
|
|
19
121
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2VkaXRvcnMvY29udGFjdC13aWRnZXQvY29udGFjdC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBb0M3QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQXVCO0lBakMxRTs7UUFrQ1ksU0FBSSxHQUFHLFFBQVEsQ0FBNkIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsY0FBUyxHQUFHLFFBQVEsQ0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUMxRSxhQUFRLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQVksQ0FBQyxDQUFDO1FBQzFFLFlBQU8sR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBWSxDQUFDLENBQUM7UUFFeEUsa0JBQWEsR0FBaUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV4QyxlQUFVLEdBQUcsR0FBVyxFQUFFO1lBQ2xDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssT0FBTztvQkFDVixPQUFPLGFBQWEsQ0FBQztnQkFDdkIsS0FBSyxNQUFNO29CQUNULE9BQU8sU0FBUyxDQUFDO2dCQUNuQixLQUFLLE9BQU87b0JBQ1YsT0FBTyxVQUFVLENBQUM7Z0JBQ3BCO29CQUNFLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFTTSxnQkFBVyxHQUFHLENBQUMsSUFBaUMsRUFBc0IsRUFBRTtZQUM5RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7Z0JBQzFCLE9BQU87b0JBQ0wsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3ZFLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUNuRSxDQUFDOztnQkFFRixPQUFPO29CQUNMLEtBQUssRUFBRSxJQUFJO29CQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUNyRCxDQUFDO1FBQ04sQ0FBQyxDQUFDO0tBQ0g7SUF0QlMsWUFBWTtRQUNsQixNQUFNLEtBQUssR0FBZ0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzs4R0E3QlUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsK0ZBaEM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VUEwQkYsMkRBR0UsWUFBWSw4QkFBRSxXQUFXLDhCQUFFLGFBQWEseUlBQUUsaUJBQWlCOzsyRkFHMUQsNkJBQTZCO2tCQWpDekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBMEJGO29CQUNSLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3RFLE1BQU0sRUFBRSxFQUFFO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUENsaXBCb2FyZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQQ29udGFjdERhdGFUeXBlIH0gZnJvbSAnLi9jb250YWN0LnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTEgYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwXCI+XG4gICAgQGZvcihpdGVtIG9mIGludGVybmFsVmFsdWUoKTt0cmFjayAkaW5kZXgpeyBAaWYoaXRlbSl7IEBpZihoYXNJY29uKCkpe1xuICAgIDxheC1pY29uIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEgYXgtY29sLWVuZC0yIGZhLXNvbGlkIGF4LXRleHQtbmV1dHJhbC00MDBcIiBbY2xhc3NdPVwiY2hvb3NlSWNvbigpXCI+IDwvYXgtaWNvbj5cbiAgICB9IEBsZXQgaHJlZiA9IHR5cGUoKSA9PT0gJ2xpbmsnID8gaXRlbS52YWx1ZSA6IHR5cGUoKT09PSdwaG9uZSc/ICd0ZWw6JytpdGVtLnZhbHVlIDogJ21haWx0bzonKyBpdGVtLnZhbHVlIDtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29sLXN0YXJ0LTIgYXgtY29sLWVuZC05XCI+XG4gICAgICA8YVxuICAgICAgICBbaHJlZl09XCJocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCInX2JsYW5rJ1wiXG4gICAgICAgIGNsYXNzPVwiYXgtdGV4dC1ibHVlLTcwMCBncm91cC1ob3ZlcjohYXgtdGV4dC1wcmltYXJ5LTUwMCBncm91cC1ob3ZlcjpheC11bmRlcmxpbmUgZ3JvdXAtaG92ZXI6YXgtZGVjb3JhdGlvbi1ibHVlLTcwMFwiXG4gICAgICAgID57eyBpdGVtLnZhbHVlIH19PC9hXG4gICAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC00MDAgIGF4LWN1cnNvci1wb2ludGVyIGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlIGhvdmVyOiFheC10ZXh0LXByaW1hcnktNTAwXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaXBib2FyZC5jb3B5KCdFbWFpbCcsIGl0ZW0udmFsdWUpXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jb3B5IFwiPjwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICBAaWYoaGFzTGFiZWwoKSl7XG4gICAgPGF4LWJhZGdlXG4gICAgICBjbGFzcz1cImF4LWNvbC1zdGFydC0xMCBheC1jb2wtZW5kLTEyIGF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBbbG9va109XCIndHdvdG9uZSdcIlxuICAgICAgW3RleHRdPVwiaXRlbS5sYWJlbCA/PyAnJ1wiXG4gICAgPjwvYXgtYmFkZ2U+XG4gICAgfSB9fVxuICA8L2Rpdj4gYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWEJhZGdlTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbnRhY3RXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgdHlwZSA9IGNvbXB1dGVkPCdsaW5rJyB8ICdwaG9uZScgfCAnZW1haWwnPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndHlwZSddKTtcbiAgcHJvdGVjdGVkIGxhYmVsTGlzdCA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbGFiZWxMaXN0J10gfHwgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdBZGQgTmV3J10pO1xuICBwcm90ZWN0ZWQgaGFzTGFiZWwgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzTGFiZWwnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBoYXNJY29uID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2hhc0ljb24nXSBhcyBib29sZWFuKTtcblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZTogU2lnbmFsPEFYUENvbnRhY3REYXRhVHlwZVtdPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudmFsdWVUb0FycmF5KCkpO1xuICBwcm90ZWN0ZWQgY2xpcGJvYXJkID0gaW5qZWN0KEFYUENsaXBCb2FyZFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaG9vc2VJY29uID0gKCk6IHN0cmluZyA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUoKSkge1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICByZXR1cm4gJ2ZhLWVudmVsb3BlJztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gJ2ZhLWxpbmsnO1xuICAgICAgY2FzZSAncGhvbmUnOlxuICAgICAgICByZXR1cm4gJ2ZhLXBob25lJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnZmEtaW5mbyc7XG4gICAgfVxuICB9O1xuICBwcml2YXRlIHZhbHVlVG9BcnJheSgpOiBBWFBDb250YWN0RGF0YVR5cGVbXSB7XG4gICAgY29uc3QgdmFsdWU6IEFYUENvbnRhY3REYXRhVHlwZSB8IHN0cmluZyA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHRoaXMuaXRlbVRvQXJyYXkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMuaXRlbVRvQXJyYXkodmFsdWUpXTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBpdGVtVG9BcnJheSA9IChpdGVtOiBBWFBDb250YWN0RGF0YVR5cGUgfCBzdHJpbmcpOiBBWFBDb250YWN0RGF0YVR5cGUgPT4ge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogaXRlbT8udmFsdWUgPz8gJycsXG4gICAgICAgIGxhYmVsOiB0aGlzLmhhc0xhYmVsKCkgPyBpdGVtPy5sYWJlbCB8fCB0aGlzLmxhYmVsTGlzdCgpWzBdIDogdW5kZWZpbmVkLFxuICAgICAgICBpY29uOiB0aGlzLmhhc0ljb24oKSA/IGl0ZW0/Lmljb24gfHwgdGhpcy5jaG9vc2VJY29uKCkgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICBsYWJlbDogdGhpcy5oYXNMYWJlbCgpID8gdGhpcy5sYWJlbExpc3QoKVswXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogdGhpcy5oYXNJY29uKCkgPyB0aGlzLmNob29zZUljb24oKSA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gIH07XG59XG4iXX0=
|