@acorex/platform 19.4.15 → 20.0.0
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/index.d.ts +300 -13
- package/common/index.d.ts +1478 -16
- package/core/index.d.ts +1303 -8
- package/domain/index.d.ts +79 -2
- package/fesm2022/acorex-platform-auth.mjs +25 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +113 -110
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +180 -59
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +59 -18
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +44 -40
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +412 -111
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +84 -87
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +153 -120
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-filters.mjs +3 -3
- package/fesm2022/acorex-platform-layout-filters.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +108 -210
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +422 -108
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs +22 -0
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs +112 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BupuLA5U.mjs → acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs} +28 -23
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs +105 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs → acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs} +18 -13
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs → acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs → acorex-platform-themes-default-error-404.component-D9npA9_W.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-D9npA9_W.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +76 -54
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +26 -26
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs → acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs → acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs → acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs → acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs → acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs} +5 -6
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs → acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs → acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs} +6 -8
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs → acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs → acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs → acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +1130 -1142
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +29 -100
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/index.d.ts +2 -2
- package/layout/builder/index.d.ts +682 -1
- package/layout/components/index.d.ts +436 -4
- package/layout/designer/index.d.ts +460 -4
- package/layout/entity/index.d.ts +769 -1
- package/layout/filters/index.d.ts +34 -1
- package/layout/views/index.d.ts +487 -3
- package/native/index.d.ts +35 -2
- package/package.json +1 -1
- package/runtime/index.d.ts +279 -17
- package/themes/default/index.d.ts +483 -3
- package/themes/shared/index.d.ts +204 -6
- package/widgets/index.d.ts +2138 -4
- package/workflow/index.d.ts +168 -7
- package/auth/lib/application/application.loader.d.ts +0 -8
- package/auth/lib/application/application.types.d.ts +0 -10
- package/auth/lib/auth-registry.service.d.ts +0 -12
- package/auth/lib/auth.guard.d.ts +0 -2
- package/auth/lib/auth.module.d.ts +0 -21
- package/auth/lib/auth.strategy.d.ts +0 -47
- package/auth/lib/errors.types.d.ts +0 -16
- package/auth/lib/feature/feature.directive.d.ts +0 -15
- package/auth/lib/feature/feature.guard.d.ts +0 -2
- package/auth/lib/feature/feature.loader.d.ts +0 -8
- package/auth/lib/feature/feature.types.d.ts +0 -6
- package/auth/lib/feature/index.d.ts +0 -4
- package/auth/lib/permission/index.d.ts +0 -6
- package/auth/lib/permission/permission-definition.builder.d.ts +0 -24
- package/auth/lib/permission/permission-definition.service.d.ts +0 -20
- package/auth/lib/permission/permission.directive.d.ts +0 -15
- package/auth/lib/permission/permission.guard.d.ts +0 -2
- package/auth/lib/permission/permission.loader.d.ts +0 -8
- package/auth/lib/permission/permission.types.d.ts +0 -13
- package/auth/lib/session.service.d.ts +0 -59
- package/auth/lib/session.types.d.ts +0 -24
- package/auth/lib/tenant/tenant.loader.d.ts +0 -8
- package/auth/lib/tenant/tenant.types.d.ts +0 -8
- package/auth/lib/user/user.types.d.ts +0 -6
- package/common/lib/app/app-version.provider.d.ts +0 -10
- package/common/lib/app/application.types.d.ts +0 -323
- package/common/lib/app/index.d.ts +0 -4
- package/common/lib/app/operators.d.ts +0 -23
- package/common/lib/common.module.d.ts +0 -24
- package/common/lib/configs/app.config.d.ts +0 -27
- package/common/lib/configs/config.types.d.ts +0 -5
- package/common/lib/data/data-provider.types.d.ts +0 -16
- package/common/lib/data/filter-middleware.service.d.ts +0 -28
- package/common/lib/data/index.d.ts +0 -3
- package/common/lib/data/operators.service.d.ts +0 -14
- package/common/lib/errors/error-handler-registry.service.d.ts +0 -12
- package/common/lib/errors/error-handler.types.d.ts +0 -3
- package/common/lib/errors/global-error-handler.d.ts +0 -11
- package/common/lib/errors/index.d.ts +0 -3
- package/common/lib/file-storage/file-storage.service.d.ts +0 -13
- package/common/lib/file-storage/file-storage.types.d.ts +0 -160
- package/common/lib/file-storage/index.d.ts +0 -2
- package/common/lib/file-type/file-type.provider.d.ts +0 -14
- package/common/lib/file-type/file-type.types.d.ts +0 -56
- package/common/lib/file-type/index.d.ts +0 -2
- package/common/lib/filters/filters.service.d.ts +0 -8
- package/common/lib/filters/filters.types.d.ts +0 -24
- package/common/lib/filters/index.d.ts +0 -2
- package/common/lib/home-page/home-page-settings.key.d.ts +0 -3
- package/common/lib/home-page/home-page-settings.provider.d.ts +0 -13
- package/common/lib/home-page/home-page.module.d.ts +0 -6
- package/common/lib/home-page/home-page.routes.d.ts +0 -2
- package/common/lib/home-page/home-page.service.d.ts +0 -30
- package/common/lib/home-page/home-page.types.d.ts +0 -9
- package/common/lib/home-page/index.d.ts +0 -4
- package/common/lib/layout/grid-layout/grid-layout.directive.d.ts +0 -15
- package/common/lib/layout/grid-layout/grid-layout.types.d.ts +0 -18
- package/common/lib/layout/grid-layout/index.d.ts +0 -2
- package/common/lib/layout/index.d.ts +0 -5
- package/common/lib/layout/logo/index.d.ts +0 -1
- package/common/lib/layout/logo/logo.component.d.ts +0 -12
- package/common/lib/layout/menu/badge-helper.d.ts +0 -7
- package/common/lib/layout/menu/index.d.ts +0 -6
- package/common/lib/layout/menu/menu.provider.d.ts +0 -22
- package/common/lib/layout/menu/menu.service.d.ts +0 -18
- package/common/lib/layout/menu/menu.types.d.ts +0 -28
- package/common/lib/layout/menu/search-definition.provider.d.ts +0 -4
- package/common/lib/layout/menu/search.provider.d.ts +0 -20
- package/common/lib/layout/sticky.directive.d.ts +0 -29
- package/common/lib/layout/theme/components/slots/footer-text-slot.component.d.ts +0 -6
- package/common/lib/layout/theme/components/slots/index.d.ts +0 -2
- package/common/lib/layout/theme/components/slots/navbar-slot.component.d.ts +0 -8
- package/common/lib/search/index.d.ts +0 -5
- package/common/lib/search/search-definition.builder.d.ts +0 -25
- package/common/lib/search/search-definition.provider.d.ts +0 -19
- package/common/lib/search/search.provider.d.ts +0 -8
- package/common/lib/search/search.service.d.ts +0 -13
- package/common/lib/search/search.types.d.ts +0 -69
- package/common/lib/settings/index.d.ts +0 -5
- package/common/lib/settings/setting-definition.service.d.ts +0 -29
- package/common/lib/settings/setting.builder.d.ts +0 -47
- package/common/lib/settings/settings.provider.d.ts +0 -3
- package/common/lib/settings/settings.service.d.ts +0 -41
- package/common/lib/settings/settings.types.d.ts +0 -55
- package/common/lib/utils/clipboard-service.d.ts +0 -7
- package/common/lib/utils/export-popup.d.ts +0 -20
- package/common/lib/utils/export.service.d.ts +0 -21
- package/common/lib/utils/filter-cleaner.d.ts +0 -2
- package/common/lib/utils/index.d.ts +0 -5
- package/common/lib/utils/regional-util.service.d.ts +0 -15
- package/common/lib/utils/regional.types.d.ts +0 -47
- package/common/lib/workflows/common.workflow.d.ts +0 -53
- package/common/lib/workflows/error-handler.d.ts +0 -8
- package/common/lib/workflows/index.d.ts +0 -3
- package/common/lib/workflows/navigate.workflow.d.ts +0 -13
- package/core/lib/context/context-store.service.d.ts +0 -37
- package/core/lib/data/data-generator.d.ts +0 -27
- package/core/lib/data/datasource-definition-provider.service.d.ts +0 -36
- package/core/lib/data/index.d.ts +0 -3
- package/core/lib/data/value-transformer.d.ts +0 -6
- package/core/lib/directives/content-checker.directive.d.ts +0 -10
- package/core/lib/directives/dbl-click.directive.d.ts +0 -11
- package/core/lib/directives/element-data.directive.d.ts +0 -20
- package/core/lib/directives/grid-layout.directive.d.ts +0 -15
- package/core/lib/directives/index.d.ts +0 -4
- package/core/lib/event-service/event.service.d.ts +0 -43
- package/core/lib/event-service/index.d.ts +0 -1
- package/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.d.ts +0 -23
- package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +0 -16
- package/core/lib/expression-evaluator/index.d.ts +0 -2
- package/core/lib/startup/app-startup.service.d.ts +0 -11
- package/core/lib/startup/app-startup.types.d.ts +0 -6
- package/core/lib/startup/index.d.ts +0 -2
- package/core/lib/types/actions.types.d.ts +0 -282
- package/core/lib/types/core.types.d.ts +0 -32
- package/core/lib/types/data.types.d.ts +0 -16
- package/core/lib/types/element.types.d.ts +0 -6
- package/core/lib/types/file.types.d.ts +0 -12
- package/core/lib/types/index.d.ts +0 -10
- package/core/lib/types/interactive.types.d.ts +0 -67
- package/core/lib/types/layout.types.d.ts +0 -27
- package/core/lib/types/logo.types.d.ts +0 -15
- package/core/lib/types/scope.types.d.ts +0 -10
- package/core/lib/types/validation.types.d.ts +0 -36
- package/core/lib/utils/countdown-timer.d.ts +0 -14
- package/core/lib/utils/data-conditioner.d.ts +0 -5
- package/core/lib/utils/highlighter.d.ts +0 -43
- package/core/lib/utils/index.d.ts +0 -4
- package/core/lib/utils/object-util.d.ts +0 -5
- package/domain/lib/domain.module.d.ts +0 -8
- package/domain/lib/provide-entity-crud-commands.d.ts +0 -4
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs +0 -22
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs +0 -106
- package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs +0 -112
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BupuLA5U.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs +0 -96
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs.map +0 -1
- package/layout/builder/lib/builder/builder.module.d.ts +0 -24
- package/layout/builder/lib/builder/builder.service.d.ts +0 -38
- package/layout/builder/lib/builder/context-store.service.d.ts +0 -34
- package/layout/builder/lib/builder/datasource-provider.service.d.ts +0 -26
- package/layout/builder/lib/builder/index.d.ts +0 -16
- package/layout/builder/lib/builder/metadata/index.d.ts +0 -1
- package/layout/builder/lib/builder/metadata/metadata.types.d.ts +0 -7
- package/layout/builder/lib/builder/widget-base.component.d.ts +0 -114
- package/layout/builder/lib/builder/widget-catalog.d.ts +0 -3
- package/layout/builder/lib/builder/widget-categories.d.ts +0 -10
- package/layout/builder/lib/builder/widget-column-renderer.d.ts +0 -38
- package/layout/builder/lib/builder/widget-container.component.d.ts +0 -41
- package/layout/builder/lib/builder/widget-group.types.d.ts +0 -10
- package/layout/builder/lib/builder/widget-map.d.ts +0 -87
- package/layout/builder/lib/builder/widget-placeholder.component.d.ts +0 -5
- package/layout/builder/lib/builder/widget-registery.service.d.ts +0 -16
- package/layout/builder/lib/builder/widget-renderer.directive.d.ts +0 -89
- package/layout/builder/lib/builder/widget-status.types.d.ts +0 -16
- package/layout/builder/lib/builder/widget.types.d.ts +0 -149
- package/layout/components/lib/badge/badge.directive.d.ts +0 -14
- package/layout/components/lib/badge/index.d.ts +0 -3
- package/layout/components/lib/badge/task-badge.service.d.ts +0 -11
- package/layout/components/lib/badge/task-badge.type.d.ts +0 -6
- package/layout/components/lib/blocks/index.d.ts +0 -9
- package/layout/components/lib/blocks/layout-actions.component.d.ts +0 -20
- package/layout/components/lib/blocks/layout-blocks.component.d.ts +0 -8
- package/layout/components/lib/blocks/layout-container.component.d.ts +0 -13
- package/layout/components/lib/blocks/layout-footer.component.d.ts +0 -5
- package/layout/components/lib/blocks/layout-header.component.d.ts +0 -16
- package/layout/components/lib/blocks/layout-list.component.d.ts +0 -13
- package/layout/components/lib/blocks/layout-section.component.d.ts +0 -5
- package/layout/components/lib/blocks/layout-side.component.d.ts +0 -9
- package/layout/components/lib/blocks/layout-tool-bar.component.d.ts +0 -5
- package/layout/components/lib/component-slot/component-slot-registery.service.d.ts +0 -9
- package/layout/components/lib/component-slot/component-slot.directive.d.ts +0 -46
- package/layout/components/lib/component-slot/component-slot.module.d.ts +0 -15
- package/layout/components/lib/component-slot/component-slot.types.d.ts +0 -23
- package/layout/components/lib/component-slot/index.d.ts +0 -4
- package/layout/components/lib/user-avatar/index.d.ts +0 -4
- package/layout/components/lib/user-avatar/user-avatar.component.d.ts +0 -38
- package/layout/components/lib/user-avatar/user-avatar.provider.d.ts +0 -3
- package/layout/components/lib/user-avatar/user-avatar.service.d.ts +0 -42
- package/layout/components/lib/user-avatar/user-avatar.types.d.ts +0 -13
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.d.ts +0 -9
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.d.ts +0 -8
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +0 -11
- package/layout/designer/lib/designer/components/add-widget-button/index.d.ts +0 -3
- package/layout/designer/lib/designer/components/board/board.component.d.ts +0 -27
- package/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.d.ts +0 -11
- package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +0 -17
- package/layout/designer/lib/designer/components/drawers/history/history.component.d.ts +0 -7
- package/layout/designer/lib/designer/components/drawers/outline/outline.component.d.ts +0 -18
- package/layout/designer/lib/designer/components/drawers/pages/pages.component.d.ts +0 -7
- package/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.d.ts +0 -19
- package/layout/designer/lib/designer/components/header-menu/header-menu.component.d.ts +0 -8
- package/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.d.ts +0 -6
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +0 -33
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.service.d.ts +0 -12
- package/layout/designer/lib/designer/designer.component.d.ts +0 -15
- package/layout/designer/lib/designer/index.d.ts +0 -10
- package/layout/designer/lib/designer/shared/command.d.ts +0 -70
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +0 -12
- package/layout/designer/lib/designer/shared/designer.service.d.ts +0 -145
- package/layout/designer/lib/designer/shared/designer.types.d.ts +0 -50
- package/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.d.ts +0 -8
- package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +0 -10
- package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +0 -42
- package/layout/designer/lib/preview/preview-frame.component.d.ts +0 -8
- package/layout/designer/lib/preview/preview-viewer.component.d.ts +0 -25
- package/layout/designer/lib/preview/preview.component.d.ts +0 -23
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +0 -57
- package/layout/entity/lib/entity-data-seeder.d.ts +0 -12
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +0 -40
- package/layout/entity/lib/entity-master-create.viewmodel.d.ts +0 -59
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +0 -107
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +0 -70
- package/layout/entity/lib/entity-master-update.viewmodel.d.ts +0 -39
- package/layout/entity/lib/entity-middleware/entity-middleware.d.ts +0 -12
- package/layout/entity/lib/entity-middleware/entity-modifier.context.d.ts +0 -3
- package/layout/entity/lib/entity-middleware/entity-modifier.types.d.ts +0 -107
- package/layout/entity/lib/entity-middleware/entity-provider.d.ts +0 -3
- package/layout/entity/lib/entity-middleware/index.d.ts +0 -4
- package/layout/entity/lib/entity-registery.service.d.ts +0 -51
- package/layout/entity/lib/entity-storage-service.d.ts +0 -54
- package/layout/entity/lib/entity.config.d.ts +0 -28
- package/layout/entity/lib/entity.module.d.ts +0 -12
- package/layout/entity/lib/entity.service.d.ts +0 -7
- package/layout/entity/lib/entity.types.d.ts +0 -21
- package/layout/entity/lib/entity.viewmodel.d.ts +0 -32
- package/layout/entity/lib/index.d.ts +0 -15
- package/layout/entity/lib/search-definition-command.provider.d.ts +0 -4
- package/layout/entity/lib/search-definition.provider.d.ts +0 -6
- package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -4
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +0 -10
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -48
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +0 -24
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +0 -33
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +0 -22
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -9
- package/layout/entity/lib/widgets/tagable-box/index.d.ts +0 -6
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.d.ts +0 -19
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.d.ts +0 -6
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.d.ts +0 -7
- package/layout/entity/lib/widgets/widget-selector/index.d.ts +0 -3
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +0 -23
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +0 -6
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +0 -7
- package/layout/entity/lib/workflows/create-entity.workflow.d.ts +0 -32
- package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +0 -31
- package/layout/entity/lib/workflows/index.d.ts +0 -6
- package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +0 -20
- package/layout/entity/lib/workflows/modify-section.workflow.d.ts +0 -32
- package/layout/entity/lib/workflows/show-details.workflow.d.ts +0 -10
- package/layout/entity/lib/workflows/show-file-uploader-popup.workflow.d.ts +0 -10
- package/layout/entity/lib/workflows/show-list.workflow.d.ts +0 -10
- package/layout/filters/lib/filters.viewmodel.d.ts +0 -31
- package/layout/views/lib/layouts/index.d.ts +0 -2
- package/layout/views/lib/layouts/page/index.d.ts +0 -3
- package/layout/views/lib/layouts/page/page-layout-base.component.d.ts +0 -113
- package/layout/views/lib/layouts/page/page-layout.base.d.ts +0 -22
- package/layout/views/lib/layouts/page/page-layout.component.d.ts +0 -84
- package/layout/views/lib/layouts/popup/index.d.ts +0 -3
- package/layout/views/lib/layouts/popup/popup-layout-base.component.d.ts +0 -98
- package/layout/views/lib/layouts/popup/popup-layout.base.d.ts +0 -14
- package/layout/views/lib/layouts/popup/popup-layout.component.d.ts +0 -76
- package/layout/views/lib/shared/index.d.ts +0 -1
- package/layout/views/lib/shared/layout.types.d.ts +0 -7
- package/layout/views/lib/views/details-view/details-view-route.resolver.d.ts +0 -3
- package/layout/views/lib/views/details-view/details-view.adapter.d.ts +0 -13
- package/layout/views/lib/views/details-view/details-view.viewmodel.d.ts +0 -30
- package/layout/views/lib/views/details-view/index.d.ts +0 -3
- package/layout/views/lib/views/details-view/sample.d.ts +0 -2
- package/layout/views/lib/views/index.d.ts +0 -1
- package/native/lib/native.module.d.ts +0 -6
- package/native/lib/native.service.d.ts +0 -26
- package/runtime/lib/commands/command.extension.token.d.ts +0 -7
- package/runtime/lib/commands/command.interface.d.ts +0 -3
- package/runtime/lib/commands/command.middleware.d.ts +0 -2
- package/runtime/lib/commands/command.registry.d.ts +0 -16
- package/runtime/lib/commands/provide-command-middleware.d.ts +0 -9
- package/runtime/lib/commands/provide-command-setups.d.ts +0 -9
- package/runtime/lib/policy/policy-middleware-provider.d.ts +0 -9
- package/runtime/lib/policy/policy.directive.d.ts +0 -9
- package/runtime/lib/policy/policy.extension.token.d.ts +0 -7
- package/runtime/lib/policy/policy.interface.d.ts +0 -17
- package/runtime/lib/policy/policy.middleware.d.ts +0 -3
- package/runtime/lib/policy/policy.registry.d.ts +0 -19
- package/runtime/lib/policy/policy.service.d.ts +0 -8
- package/runtime/lib/policy/policy.types.d.ts +0 -7
- package/runtime/lib/queries/provide-query-middleware.d.ts +0 -9
- package/runtime/lib/queries/provide-query-setups.d.ts +0 -9
- package/runtime/lib/queries/query.extension.token.d.ts +0 -7
- package/runtime/lib/queries/query.interface.d.ts +0 -3
- package/runtime/lib/queries/query.middleware.d.ts +0 -2
- package/runtime/lib/queries/query.registry.d.ts +0 -15
- package/runtime/lib/runtime.module.d.ts +0 -12
- package/themes/default/lib/default.module.d.ts +0 -8
- package/themes/default/lib/entity-reuse.strategy.d.ts +0 -8
- package/themes/default/lib/layouts/details-view/details-view.component.d.ts +0 -45
- package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +0 -29
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +0 -90
- package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +0 -20
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +0 -102
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -16
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +0 -13
- package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +0 -19
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +0 -108
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.d.ts +0 -11
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +0 -69
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.d.ts +0 -49
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/create-view/create-entity-view.component.d.ts +0 -6
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +0 -20
- package/themes/default/lib/layouts/entity-layouts/index.d.ts +0 -1
- package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +0 -5
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +0 -83
- package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +0 -93
- package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +0 -34
- package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +0 -85
- package/themes/default/lib/layouts/root-layout/index.d.ts +0 -6
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +0 -90
- package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +0 -87
- package/themes/default/lib/pages/errors/error-401/error-401.component.d.ts +0 -10
- package/themes/default/lib/pages/errors/error-404/error-404.component.d.ts +0 -8
- package/themes/default/lib/pages/errors/error-offline/error-offline.component.d.ts +0 -9
- package/themes/shared/lib/palette.provider.d.ts +0 -9
- package/themes/shared/lib/settings.keys.d.ts +0 -12
- package/themes/shared/lib/settings.provider.d.ts +0 -8
- package/themes/shared/lib/shared.module.d.ts +0 -11
- package/themes/shared/lib/slots/theme-slot.component.d.ts +0 -67
- package/themes/shared/lib/theme.service.d.ts +0 -61
- package/themes/shared/lib/theme.types.d.ts +0 -38
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +0 -10
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/font-size-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +0 -15
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/font-style-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/menu-orientation-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +0 -15
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/theme-mode-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +0 -16
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/theme-palette-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +0 -13
- package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.config.d.ts +0 -7
- package/widgets/lib/properties/data-source.props.d.ts +0 -5
- package/widgets/lib/properties/editors.props.d.ts +0 -33
- package/widgets/lib/properties/general.props.d.ts +0 -7
- package/widgets/lib/properties/groups.d.ts +0 -8
- package/widgets/lib/properties/index.d.ts +0 -7
- package/widgets/lib/properties/layout.props.d.ts +0 -20
- package/widgets/lib/properties/table-column.props.d.ts +0 -3
- package/widgets/lib/properties/validation.props.d.ts +0 -10
- package/widgets/lib/shared/multi-language-component/popup/select-language.popup.d.ts +0 -23
- package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +0 -16
- package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +0 -17
- package/widgets/lib/widgets/actions/button/button-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/actions/button/index.d.ts +0 -2
- package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/avatar/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +0 -8
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/index.d.ts +0 -7
- package/widgets/lib/widgets/advance/file-uploader/file-list/file-list.component.d.ts +0 -23
- package/widgets/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.d.ts +0 -17
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.service.d.ts +0 -14
- package/widgets/lib/widgets/advance/file-uploader/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/gallery/gallery-widget-types.d.ts +0 -10
- package/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/advance/gallery/gallery-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/gallery/index.d.ts +0 -4
- package/widgets/lib/widgets/advance/map/index.d.ts +0 -3
- package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +0 -25
- package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/map/map-box-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/qrcode/index.d.ts +0 -2
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/signature/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.d.ts +0 -24
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/advance/signature/signature-pad-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/checkbox/index.d.ts +0 -2
- package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/color/color-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/color/color-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/color/color-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/color/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +0 -34
- package/widgets/lib/widgets/editors/contact/contact-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +0 -19
- package/widgets/lib/widgets/editors/contact/contact-widget.config.d.ts +0 -16
- package/widgets/lib/widgets/editors/contact/contact.type.d.ts +0 -5
- package/widgets/lib/widgets/editors/contact/index.d.ts +0 -5
- package/widgets/lib/widgets/editors/contact/popup-component.d.ts +0 -10
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +0 -22
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/date-time/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-column.component.d.ts +0 -16
- package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +0 -29
- package/widgets/lib/widgets/editors/email/email-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/email/email-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/email/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +0 -23
- package/widgets/lib/widgets/editors/large-text/large-text-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/link/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +0 -35
- package/widgets/lib/widgets/editors/link/link-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/link/link-widget.config.d.ts +0 -13
- package/widgets/lib/widgets/editors/meta-data/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/editors/number/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-column.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +0 -21
- package/widgets/lib/widgets/editors/number/number-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/number/number-box-widget.config.d.ts +0 -17
- package/widgets/lib/widgets/editors/number-unit/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-edit.component.d.ts +0 -24
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget.config.d.ts +0 -17
- package/widgets/lib/widgets/editors/password/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/password/password-box-widget-edit.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/password/password-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +0 -14
- package/widgets/lib/widgets/editors/password/password-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/phone/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.d.ts +0 -16
- package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/phone/phone-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/phone/phone-box-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/editors/rich-text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-popup.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/select/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +0 -27
- package/widgets/lib/widgets/editors/select/select-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/select/select-box-widget.config.d.ts +0 -18
- package/widgets/lib/widgets/editors/selection-list/index.d.ts +0 -7
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.d.ts +0 -14
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/tabular-data/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/table-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-view-popup.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/tabular-data/tabular-widget.types.d.ts +0 -9
- package/widgets/lib/widgets/editors/template-box/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +0 -29
- package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +0 -27
- package/widgets/lib/widgets/editors/text/text-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/text/text-box-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/time-duration/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-column.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/editors/toggle/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/toggle/toggle-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/toggle/toggle-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget-edit.component.d.ts +0 -20
- package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/boolean-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget-edit.component.d.ts +0 -19
- package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/date-time-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/number-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/number-filter/number-filter-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/filters/number-filter/number-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/operations/operations.component.d.ts +0 -9
- package/widgets/lib/widgets/filters/select-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/filters/select-filter/select-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/string-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/filters/string-filter/string-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/index.d.ts +0 -44
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +0 -27
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +0 -20
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/advanced-grid/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/advanced-grid-item/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +0 -23
- package/widgets/lib/widgets/layout/block/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/document/document-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/flex/flex-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/flex/flex-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/flex/flex-widget.config.d.ts +0 -28
- package/widgets/lib/widgets/layout/flex/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/form-field/form-field-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/layout/form-field/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +0 -24
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/layout/grid/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +0 -18
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +0 -25
- package/widgets/lib/widgets/layout/grid-item/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/layout/grid-row/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/page/index.d.ts +0 -2
- package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +0 -20
- package/widgets/lib/widgets/layout/page/page-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/page/page-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/layout/panel/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/panel/panel-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/panel/panel-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/panel/panel-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/layout/repeater/index.d.ts +0 -5
- package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/repeater/repeater-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/layout/tabset/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/tabset/tabset-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/tabset/tabset-widget-view.component.d.ts +0 -19
- package/widgets/lib/widgets/layout/tabset/tabset-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/tabset/tabset-widget.types.d.ts +0 -2
- package/widgets/lib/widgets/layout/tabset-item/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/text-block/index.d.ts +0 -2
- package/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/text-block/text-block-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget-editor.component.d.ts +0 -32
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.type.d.ts +0 -6
- package/widgets/lib/widgets/property-editors/advanced-grid-options/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +0 -35
- package/widgets/lib/widgets/property-editors/border/border-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/border/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/direction/direction-widget-editor.component.d.ts +0 -12
- package/widgets/lib/widgets/property-editors/direction/direction-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/direction/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +0 -43
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +0 -12
- package/widgets/lib/widgets/property-editors/flex-options/index.d.ts +0 -3
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +0 -50
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +0 -21
- package/widgets/lib/widgets/property-editors/grid-options/index.d.ts +0 -3
- package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +0 -98
- package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +0 -40
- package/widgets/lib/widgets/property-editors/spacing/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +0 -27
- package/widgets/lib/widgets/property-editors/spacing/spacing-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/base-validation/base-validation.component.d.ts +0 -13
- package/widgets/lib/widgets/validations/base-validation/base-validation.d.ts +0 -9
- package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +0 -19
- package/widgets/lib/widgets/validations/between-validation/between-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/between-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/callback-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/equal-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/greater-than-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/less-than-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/max-length-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/min-length-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/regular-expression-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/required-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/validations/required-validation/required-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets.config.d.ts +0 -7
- package/widgets/lib/widgets.module.d.ts +0 -7
- package/workflow/lib/actions/decide.action.d.ts +0 -7
- package/workflow/lib/actions/start-workflow.action.d.ts +0 -10
- package/workflow/lib/errors.types.d.ts +0 -4
- package/workflow/lib/slots/workflow-action-bar/workflow-action-bar.component.d.ts +0 -37
- package/workflow/lib/task-board.types.d.ts +0 -21
- package/workflow/lib/workflow-evaluator-scope.provider.d.ts +0 -4
- package/workflow/lib/workflow-event-dispatcher.service.d.ts +0 -10
- package/workflow/lib/workflow-registery.service.d.ts +0 -21
- package/workflow/lib/workflow.module.d.ts +0 -26
- package/workflow/lib/workflow.service.d.ts +0 -25
- package/workflow/lib/workflow.types.d.ts +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../../../../libs/platform/layout/builder/src/lib/builder/widget-status.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-registery.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-catalog.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-column-renderer.ts","../../../../libs/platform/layout/builder/src/lib/builder/context-store.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-container.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-placeholder.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.directive.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.module.ts","../../../../libs/platform/layout/builder/src/lib/builder/datasource-provider.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-categories.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-group.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-base.component.ts","../../../../libs/platform/layout/builder/src/acorex-platform-layout-builder.ts"],"sourcesContent":["export enum AXPPageStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Submission statuses\n Submitting = 'submitting', // The form is being submitted.\n Submitted = 'submitted', // Submission is completed.\n\n // Validation statuses\n Validating = 'validating', // The form is being validated.\n Validated = 'validated', // Validation is completed. \n\n // Error handling\n Error = 'error',\n}\n\nexport enum AXPWidgetStatus {\n // Rendering statuses\n Rendering = 'rendering', // The widget is being rendered.\n Rendered = 'rendered', // The rendering process is complete.\n\n // Processing statuses\n Processing = 'processing', // The widget is performing a task or interaction.\n\n // Error handling\n Error = 'error', // An error occurred during any phase.\n}\n","import { computed, Injectable, Signal, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\n\nexport type AXPLayoutElementAPI = { [name: string]: Subject<any> | Function };\n\nexport abstract class AXPLayoutElement {\n abstract get id(): string | null;\n abstract get status(): Signal<AXPWidgetStatus>;\n\n api(): AXPLayoutElementAPI {\n return {};\n }\n}\n\n@Injectable()\nexport class AXPLayoutBuilderService {\n\n\n private readonly variables$ = signal<any>({});\n private readonly functions$ = signal<{ [key: string]: Function }>({});\n\n public readonly onRefresh: Subject<void> = new Subject<void>();\n\n private widgets = new Map<string, AXPLayoutElement>();\n\n private readonly status$ = signal<AXPPageStatus>(AXPPageStatus.Rendering);\n public readonly status = this.status$.asReadonly();\n\n\n public readonly isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n });\n\n get variables() {\n return this.variables$();\n }\n\n get functions(): { [key: string]: Function } {\n return this.functions$();\n }\n\n public updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n\n private detectStatus(): AXPPageStatus {\n const statuses = Array.from(this.widgets.values()).map(c => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n\n setStatus(status: AXPPageStatus) {\n this.status$.set(status);\n }\n\n\n\n setVariables(keysValues: any): void;\n setVariables(key: string, value: any): void;\n setVariables(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n setFunctions(keysValues: any): void;\n setFunctions(key: string, value: any): void;\n setFunctions(...args: any[]): void {\n if (args.length == 0) return;\n else if (args.length == 1) this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n\n\n registerWidget(id: string, widget: AXPLayoutElement) {\n this.widgets.set(id, widget);\n }\n\n getWidget(id: string): AXPLayoutElement | undefined {\n return this.widgets.get(id);\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPWidgetConfig } from './widget.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWidgetRegistryService {\n private types: Map<string, AXPWidgetConfig> = new Map();\n\n public static instance:AXPWidgetRegistryService;\n\n /**\n *\n */\n constructor() {\n AXPWidgetRegistryService.instance=this;\n }\n\n register(widget: AXPWidgetConfig) {\n this.types.set(widget.name, widget);\n }\n\n extend(parentName: string, widget: AXPWidgetConfig) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n\n resolve(name: string): AXPWidgetConfig | undefined {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n\n public all(): AXPWidgetConfig[] {\n return Array.from(this.types.values());\n }\n}\n","import { AXPWidgetTypesMap } from './widget-map';\n\nconst AXPWidgetsCatalog: AXPWidgetTypesMap = {\n timeDuration: 'time-duration',\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n fileUploader: 'file-uploader',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n direction: 'direction',\n border: 'border',\n flexLayout: 'flex-layout',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n gridOptions: 'grid-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n lineChart: 'line-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n analogClock: 'analog-clock',\n weather: 'weather',\n minimalWeather: 'minimal-weather',\n advancedWeather: 'advanced-weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n panel: 'panel',\n notification: 'notification',\n taskList: 'task-list',\n};\n\nexport { AXPWidgetsCatalog };\n","import {\n AXPDataType,\n AXPMetaData,\n AXPOptionsData,\n AXPPartialNested,\n AXPValidationRules,\n AXPValueTransformerFunctions,\n AXPWidgetTriggers,\n} from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\nimport { cloneDeep, isNil, merge } from 'lodash-es';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nimport { AXPWidgetCategory } from './widget-categories';\nimport { AXPWidgetGroup } from './widget-group.types';\nimport { AXPWidgetTypesMap } from './widget-map';\nimport { AXPPageStatus } from './widget-status.types';\n\nexport interface AXPWidgetPropertyGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport interface AXPWidgetProperty {\n name: string;\n title: string;\n description?: string;\n group: AXPWidgetPropertyGroup;\n order?: number;\n schema: {\n dataType: AXPDataType;\n nullable?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;\n };\n options?: AXPOptionsData;\n validations?: AXPValidationRules;\n visible: boolean;\n}\n\nexport function cloneProperty(\n property: AXPWidgetProperty,\n values: AXPPartialNested<AXPWidgetProperty>\n): AXPWidgetProperty {\n return merge(cloneDeep(property), values);\n}\n\nexport function createStringProperty(ctor: {\n defaultValue?: string;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createNumberProperty(ctor: {\n defaultValue?: number;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n options?: {\n minValue?: number;\n maxValue?: number;\n decimals?: number;\n };\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\n\nexport function createBooleanProperty(ctor: {\n defaultValue?: boolean;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createSelectProperty<T = string | { id: string; title: string }>(ctor: {\n defaultValue: T | T[] | any;\n dataSource: T[];\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport interface AXPWidgetNode {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;\n path?: string;\n name?: string;\n defaultValue?: any;\n formula?: string;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n meta?: AXPMetaData;\n valueTransforms?: AXPValueTransformerFunctions;\n}\n\nexport interface AXPWidgetNodeToken {\n config: AXPWidgetConfig;\n node: AXPWidgetNode;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNode {\n type: string;\n path: string;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {\n config: AXPWidgetConfig;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetNodeToken>('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken<AXPWidgetColumnNodeToken>('AXP_WIDGET_COLUMN_TOKEN');\n\nexport interface AXPWidgetComponentConfig {\n component: () => Promise<any>;\n properties?: AXPWidgetProperty[];\n}\n\nexport interface AXPWidgetConfigComponents {\n designer?: AXPWidgetComponentConfig;\n view?: AXPWidgetComponentConfig;\n edit?: AXPWidgetComponentConfig;\n print?: AXPWidgetComponentConfig;\n column?: AXPWidgetComponentConfig;\n filter?: AXPWidgetComponentConfig;\n}\n\nexport type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';\n\nexport type AXPWidgetDesignerOptionsMap = {\n container: { canInsert: boolean };\n editor: {\n needLabel: boolean;\n };\n action: {};\n view: {};\n};\n\nexport type AXPExtractWidgetConfig<T> = {\n type: AXPWidgetViewType;\n designer: T extends { type: infer V }\n ? V extends keyof AXPWidgetDesignerOptionsMap\n ? AXPWidgetDesignerOptionsMap[V]\n : any\n : any;\n};\n\nexport interface AXPWidgetConfig<T = any> {\n name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;\n alias?: string | string[];\n title: string;\n icon?: string;\n description?: string;\n categories?: AXPWidgetCategory | AXPWidgetCategory[];\n groups?: AXPWidgetGroup[];\n properties?: AXPWidgetProperty[];\n components: AXPWidgetConfigComponents;\n meta?: AXPMetaData;\n type: AXPExtractWidgetConfig<T>['type'];\n designer?: AXPExtractWidgetConfig<T>['designer'];\n options?: Record<string, any>;\n defaultFilterWidgetName?:\n | 'string-filter'\n | 'number-filter'\n | 'datetime-filter'\n | 'boolean-filter'\n | 'select-filter'\n | 'lookup-filter';\n}\nexport interface extendedWidget {\n widget: AXPWidgetConfig;\n parentName: string;\n}\n\nexport type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;\n\nexport interface AXPLayoutBuilderStatusChangedEvent {\n status: AXPPageStatus;\n}\n\n\n","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n TemplateRef,\n ViewChild,\n inject,\n signal,\n} from '@angular/core';\nimport { get, merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetColumnNode, AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { getSmart } from '@acorex/platform/core';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else { @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n } }\n </div>\n } @if(component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n private grid = inject(AXBaseDataTable);\n\n @Input() customExpandIcon: string;\n @Input() customCollapseIcon: string;\n\n @Input() customWidth: string;\n\n private _node: AXPWidgetColumnNode;\n @Input({ required: true })\n public get node(): AXPWidgetColumnNode {\n return this._node;\n }\n public set node(v: AXPWidgetColumnNode) {\n this._node = v;\n }\n\n private mergedOptions = signal<any>({});\n protected loadingRow = signal(null);\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public expandHandler: boolean;\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n protected async handleExpandRow(row: any) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.node.path}`;\n }\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n\n this.width = this.customWidth ? this.customWidth : this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n\n getInputs(data: any): any {\n return {\n rawValue: getSmart(data, this.node.path!),\n rowData: data\n };\n }\n}\n","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, set, isEqual, merge } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\n\nexport type AXPLayoutContextState = 'initiated' | 'restored' | 'changed' | 'patch';\n\nexport class AXPLayoutContextChangeEvent {\n oldValue?: any;\n newValue?: any;\n path?: string;\n state: AXPLayoutContextState;\n data: any;\n}\n\nexport const AXPLayoutBuilderContextStore = signalStore(\n // Initial State\n withState(() => ({\n data: {}, // Shared context data\n state: 'initiated' as AXPLayoutContextState, // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n } as AXPLayoutContextChangeEvent, // Last change event\n })),\n\n // Computed Signals\n withComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n })),\n\n // Methods for State Management\n withMethods((store) => ({\n // Update a specific value\n update(path: string, value: any) {\n const currentData = cloneDeep(store.data());\n const oldValue = get(currentData, path);\n\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n\n patch(context: {}) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent: AXPLayoutContextChangeEvent = {\n state: 'patch',\n data: updatedData,\n };\n\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n\n // Initialize the state\n set(initialData: any) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n\n const changeEvent: AXPLayoutContextChangeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n\n // Get a specific value\n getValue(path: string) {\n return get(store.data(), path);\n },\n }))\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore, AXPLayoutContextChangeEvent } from './context-store.service';\n\n@Component({\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n})\nexport class AXPWidgetContainerComponent {\n public readonly contextService = inject(AXPLayoutBuilderContextStore);\n public readonly builderService = inject(AXPLayoutBuilderService);\n\n @Output()\n public readonly onContextChanged = new EventEmitter<AXPLayoutContextChangeEvent>();\n\n @Input()\n set context(value: any) {\n this.contextService.set(value);\n }\n\n @Input()\n public set functions(v: any) {\n this.builderService.setFunctions(v);\n }\n\n constructor() {\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n\n public status = computed(() => {\n return this.builderService.status();\n });\n\n public isBusy = computed(() => {\n return this.builderService.isBusy();\n });\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n})\nexport class AXPWidgetPlaceholderComponent {}\n","import { AXTranslateOptions, AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPMetaData } from '@acorex/platform/core';\nimport {\n ComponentRef,\n Directive,\n Injector,\n SimpleChanges,\n ViewContainerRef,\n WritableSignal,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { cloneDeep, get, isEmpty, isString, merge, set, sum } from 'lodash-es';\nimport { Observable, Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPBaseWidgetComponent, AXPLayoutWidgetComponent, AXPValueWidgetComponent } from './widget-base.component';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport {\n AXPWidgetConfig,\n AXPWidgetNode,\n AXPWidgetNodeToken,\n AXPWidgetRenderMode,\n AXP_WIDGET_TOKEN,\n} from './widget.types';\n\nexport type AXPWidgetRendererDirectiveOptions = AXPMetaData;\n\n@Directive({\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n})\nexport class AXPWidgetRendererDirective {\n parentNode = input<AXPLayoutWidgetComponent | null>();\n\n index = input<number | null>();\n\n mode = input.required<AXPWidgetRenderMode>();\n node = input.required<AXPWidgetNode>();\n\n private _options = signal<AXPWidgetRendererDirectiveOptions>({});\n public options = this._options.asReadonly();\n\n public onOptionsChanged = output<{ sender: AXPWidgetRendererDirective; widget: AXPBaseWidgetComponent }>();\n public onValueChanged = output<{ sender: AXPWidgetRendererDirective; widget: AXPValueWidgetComponent }>();\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected contextService = inject(AXPLayoutBuilderContextStore);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n protected translateService = inject(AXTranslationService);\n protected widgetService = inject(AXPWidgetRegistryService);\n private viewContainerRef = inject(ViewContainerRef);\n\n protected isLoading = signal(false);\n private instance!: AXPValueWidgetComponent;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n private componentRef: ComponentRef<any>;\n\n private onContextChanged = new Subject<{ path: string }>();\n\n constructor() {\n effect(async () => {\n const changed = this.contextService.changeEvent();\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, changed.path)) {\n await this.updateValueBasedOnFormula();\n }\n //\n if (changed.path) {\n this.onContextChanged.next({ path: changed.path });\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n });\n }\n\n // Detect input changes\n ngOnChanges(changes: SimpleChanges) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n\n private rerenderComponent() {\n this.isLoading.set(false);\n // Call loadComponent to create and render the component\n setTimeout(async () => {\n await this.loadComponent();\n });\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: cloneDeep(c.schema.defaultValue) }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n this.componentRef = this.viewContainerRef.createComponent<AXPValueWidgetComponent<any>>(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n this.instance?.onOptionsChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onOptionsChanged.emit({ sender: this, widget: c.sender });\n });\n this.instance?.onValueChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onValueChanged.emit({ sender: this, widget: c.sender as AXPValueWidgetComponent });\n });\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n this.isLoading.set(false);\n //\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n const newValue = await evaluator();\n return { path, newValue };\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula!);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function(\n 'scope',\n `with (scope) { return (async function() { return ${expression}; })(); }`,\n );\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.contextService.getValue(path));\n set(scope, 'set', (path: string, value: any) => {\n this.contextService.update(path, value);\n });\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path?: string) => {\n return this.onContextChanged.pipe(\n filter((c) => {\n if (path == null) {\n return true;\n }\n if (path.endsWith('*')) {\n return c.path.startsWith(path.substring(0, path.length - 1));\n } else if (path.startsWith('*')) {\n return c.path.startsWith(path.substring(1, path.length));\n } else {\n return path == c.path;\n }\n }),\n );\n });\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'setValue', (value: any) => {\n this.instance.setValue(value);\n });\n set(scope, 'output', (name: any) => {\n this.instance.output(name);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id);\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n set(scope, 'translate', (text: string, options?: AXTranslateOptions) => {\n return this.translateService.translateAsync(text, options);\n });\n set(scope, 'widgetInfo', (name: string): AXPWidgetConfig | undefined => {\n return this.widgetService.resolve(name);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n const exec = (action: string) => {\n if (!isEmpty(action) && isString(action)) {\n this.evaluateAction(action);\n }\n };\n const actions = Array.isArray(t.action) ? t.action : [t.action];\n actions.forEach((a) => exec(a));\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport { AXPWidgetConfig, extendedWidget } from './widget.types';\n\nexport interface AXPLayoutBuilderModuleConfigs {\n widgets?: AXPWidgetConfig[];\n extendedWidgets?: extendedWidget[];\n}\n\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\n\n@NgModule({\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class AXPLayoutBuilderModule {\n static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n\n await Promise.all(\n config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []\n );\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPLayoutBuilderModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","import { AXDataSource } from '@acorex/cdk/common';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\n\nexport interface AXPWidgetDataSource<T = any> {\n name: string;\n title: string;\n valueField: string;\n textField: string;\n columns: {\n name: string;\n title: string;\n // dataType: string;\n // nullable?: boolean;\n // interface?: Partial<AXEntityPropertyWidget>;\n }[];\n samples?: any[];\n source: () => AXDataSource<T> | Promise<AXDataSource<T>>;\n}\n\nexport interface AXPWidgetDataSourceProvider {\n items(): Promise<AXPWidgetDataSource[]>;\n}\n\nexport const AXP_WIDGET_DATASOURCE_PROVIDER = new InjectionToken<AXPWidgetDataSourceProvider[]>(\n 'AXP_WIDGET_DATASOURCE_PROVIDER',\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPWidgetDataSourceProviderService implements AXPWidgetDataSourceProvider {\n private providers = inject(AXP_WIDGET_DATASOURCE_PROVIDER, { optional: true });\n\n async items(): Promise<AXPWidgetDataSource[]> {\n const items: AXPWidgetDataSource[] = [];\n\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n\n async get(name: string): Promise<AXPWidgetDataSource | undefined> {\n return (await this.items()).find((c) => c.name == name);\n }\n}\n","export interface AXPWidgetCategory {\n name: string;\n title: string;\n order: number;\n}\n\nexport const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\n\nexport const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\n\nexport const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\n\nexport const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\n\n\n\nexport const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[] = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n","export type AXPWidgetGroup =\n 'form-element' |\n 'dashboard-widget' |\n 'form-template' |\n 'property-editor' |\n 'meta-data' |\n 'setting-widget' |\n 'entity-widget';\n\n\nexport enum AXPWidgetGroupEnum {\n FormElement = 'form-element',\n DashboardWidget = 'dashboard-widget',\n FormTemplate = 'form-template',\n PropertyEditor = 'property-editor',\n MetaData = 'meta-data',\n SettingWidget = 'setting-widget',\n EntityWidget = 'entity-widget',\n}","import { AXDataSource, AXValueChangedEvent, convertArrayToDataSource } from '@acorex/cdk/common';\nimport { AXPValidationRule, AXPValidationRules } from '@acorex/platform/core';\nimport { computed, effect, ElementRef, inject, Injectable, OnInit, signal } from '@angular/core';\nimport { get, isEqual, isNil, isUndefined } from 'lodash-es';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetDataSourceProviderService } from './datasource-provider.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, AXPWidgetNode, AXPWidgetRenderMode } from './widget.types';\n\n@Injectable()\nexport abstract class AXPBaseWidgetComponent extends AXPLayoutElement {\n protected readonly token = inject(AXP_WIDGET_TOKEN);\n public readonly host = inject(ElementRef).nativeElement as HTMLDivElement;\n\n protected readonly layoutService = inject(AXPLayoutBuilderService);\n protected readonly contextService = inject(AXPLayoutBuilderContextStore);\n\n public readonly config = this.token.config;\n public readonly node = this.token.node;\n\n protected readonly name = this.token.node.name;\n\n protected _id: string | null;\n public get id(): string | null {\n return this._id;\n }\n\n protected _options = signal<any>(this.token.options ?? {});\n public options = this._options.asReadonly();\n\n public onOptionsChanged = new Subject<{ sender: AXPBaseWidgetComponent }>();\n\n private _status = signal<AXPWidgetStatus>(AXPWidgetStatus.Rendering);\n public status = this._status.asReadonly();\n\n public readonly onStatusChanged = new BehaviorSubject<AXPWidgetStatus>(this._status());\n\n #statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n });\n\n public isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()));\n\n parent: AXPLayoutWidgetComponent | null | undefined;\n index: number | null | undefined;\n mode: AXPWidgetRenderMode;\n locked: boolean;\n\n protected outputs(): (string | { [name: string]: unknown })[] {\n return [];\n }\n\n ngOnInit(): void {\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n\n public setStatus(status: AXPWidgetStatus) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n\n public setOptions(values: any): void {\n this._options.set({ ...this.options(), ...values });\n this.onOptionsChanged.next({ sender: this });\n }\n\n output<T = any>(name: string): T {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c)) as {\n name: string;\n value: unknown;\n }[];\n\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null as T;\n }\n\n call(name: string, ...args: any[]): void {\n const fn = get(this, name) as Function;\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n\n protected readonly _children = signal(this.token.node.children ?? []);\n protected children = this._children.asReadonly();\n\n setChildren(children: AXPWidgetNode[]) {\n this._children.set([...children]);\n }\n\n onAdded() {}\n}\n\n@Injectable()\nexport abstract class AXPLayoutWidgetComponent extends AXPBaseWidgetComponent {}\n\n@Injectable()\nexport abstract class AXPValueWidgetComponent<T = any | null> extends AXPLayoutWidgetComponent implements OnInit {\n protected readonly path = this.token.node.path;\n protected readonly defaultValue = this.token.node.defaultValue;\n\n private _isValueWidget = false;\n private isValueWidget = () => this._isValueWidget;\n\n public onValueChanged = new Subject<{ sender: AXPBaseWidgetComponent }>();\n\n protected fullPath = signal<string | null>(null);\n\n override ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n super.ngOnInit();\n }\n\n public getValue = computed<T>(\n () => {\n return this.fullPath() ? this.extractValue(this.fullPath()!) : null;\n },\n { equal: isEqual },\n );\n\n protected validationRules = computed<AXPValidationRules>(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map(\n (c: any) =>\n ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n }) as AXPValidationRule,\n );\n });\n\n protected extractValue(path: string): any {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n\n setValue(value: T | null | undefined) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath()!, value);\n this.onValueChanged.next({ sender: this });\n }\n }\n\n private detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent: AXPLayoutWidgetComponent | null | undefined = this as AXPLayoutWidgetComponent;\n //\n while (parent) {\n const isValueWidget = parent instanceof AXPValueWidgetComponent && parent.isValueWidget();\n const valueParent = parent as AXPValueWidgetComponent<any>;\n const path = valueParent.path ?? (isValueWidget ? valueParent.name : null);\n const id = valueParent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && isValueWidget) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n\n protected handleValueChanged(e: AXValueChangedEvent<T>) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n}\n\n@Injectable()\nexport abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponent<any> {\n private dataService = inject(AXPWidgetDataSourceProviderService);\n\n protected dataSource = signal<AXDataSource>(convertArrayToDataSource([]));\n protected textField = computed<string>(() => this.options()['textField'] ?? 'title');\n protected valueField = computed<string>(() => (this.options()['valueField'] as string) ?? 'id');\n\n public selectedItems = signal<any[]>([]);\n\n private rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e: any) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key: unknown) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c: any) => c[this.valueField()] == key);\n return Promise.resolve(item[0]) as any;\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(\n convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n }),\n );\n } else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n } else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n });\n}\n\n@Injectable()\nexport abstract class AXPColumnWidgetComponent<T = any | null | void> {\n private readonly token = inject(AXP_WIDGET_COLUMN_TOKEN);\n\n protected readonly path = this.token.path;\n protected readonly options = this.token.options ?? {};\n protected readonly rawValue: T = null as T;\n protected readonly rowData: any;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../tmp-esm2022/layout/builder/lib/builder/widget-status.types.js","../tmp-esm2022/layout/builder/lib/builder/builder.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-registery.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-catalog.js","../tmp-esm2022/layout/builder/lib/builder/widget.types.js","../tmp-esm2022/layout/builder/lib/builder/widget-column-renderer.js","../tmp-esm2022/layout/builder/lib/builder/context-store.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-container.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-placeholder.component.js","../tmp-esm2022/layout/builder/lib/builder/widget-renderer.directive.js","../tmp-esm2022/layout/builder/lib/builder/builder.module.js","../tmp-esm2022/layout/builder/lib/builder/datasource-provider.service.js","../tmp-esm2022/layout/builder/lib/builder/widget-categories.js","../tmp-esm2022/layout/builder/lib/builder/widget-group.types.js","../tmp-esm2022/layout/builder/lib/builder/widget-base.component.js","../tmp-esm2022/layout/builder/acorex-platform-layout-builder.js"],"sourcesContent":["export var AXPPageStatus;\n(function (AXPPageStatus) {\n // Rendering statuses\n AXPPageStatus[\"Rendering\"] = \"rendering\";\n AXPPageStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPPageStatus[\"Processing\"] = \"processing\";\n // Submission statuses\n AXPPageStatus[\"Submitting\"] = \"submitting\";\n AXPPageStatus[\"Submitted\"] = \"submitted\";\n // Validation statuses\n AXPPageStatus[\"Validating\"] = \"validating\";\n AXPPageStatus[\"Validated\"] = \"validated\";\n // Error handling\n AXPPageStatus[\"Error\"] = \"error\";\n})(AXPPageStatus || (AXPPageStatus = {}));\nexport var AXPWidgetStatus;\n(function (AXPWidgetStatus) {\n // Rendering statuses\n AXPWidgetStatus[\"Rendering\"] = \"rendering\";\n AXPWidgetStatus[\"Rendered\"] = \"rendered\";\n // Processing statuses\n AXPWidgetStatus[\"Processing\"] = \"processing\";\n // Error handling\n AXPWidgetStatus[\"Error\"] = \"error\";\n})(AXPWidgetStatus || (AXPWidgetStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXN0YXR1cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1zdGF0dXMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFrQlg7QUFsQkQsV0FBWSxhQUFhO0lBQ3JCLHFCQUFxQjtJQUNyQix3Q0FBdUIsQ0FBQTtJQUN2QixzQ0FBcUIsQ0FBQTtJQUVyQixzQkFBc0I7SUFDdEIsMENBQXlCLENBQUE7SUFFekIsc0JBQXNCO0lBQ3RCLDBDQUF5QixDQUFBO0lBQ3pCLHdDQUF1QixDQUFBO0lBRXZCLHNCQUFzQjtJQUN0QiwwQ0FBeUIsQ0FBQTtJQUN6Qix3Q0FBdUIsQ0FBQTtJQUV2QixpQkFBaUI7SUFDakIsZ0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBbEJXLGFBQWEsS0FBYixhQUFhLFFBa0J4QjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBVVg7QUFWRCxXQUFZLGVBQWU7SUFDdkIscUJBQXFCO0lBQ3JCLDBDQUF1QixDQUFBO0lBQ3ZCLHdDQUFxQixDQUFBO0lBRXJCLHNCQUFzQjtJQUN0Qiw0Q0FBeUIsQ0FBQTtJQUV6QixpQkFBaUI7SUFDakIsa0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBVlcsZUFBZSxLQUFmLGVBQWUsUUFVMUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBWFBQYWdlU3RhdHVzIHtcbiAgICAvLyBSZW5kZXJpbmcgc3RhdHVzZXNcbiAgICBSZW5kZXJpbmcgPSAncmVuZGVyaW5nJywgICAgICAgLy8gVGhlIHdpZGdldCBpcyBiZWluZyByZW5kZXJlZC5cbiAgICBSZW5kZXJlZCA9ICdyZW5kZXJlZCcsICAgICAgICAgLy8gVGhlIHJlbmRlcmluZyBwcm9jZXNzIGlzIGNvbXBsZXRlLlxuXG4gICAgLy8gUHJvY2Vzc2luZyBzdGF0dXNlc1xuICAgIFByb2Nlc3NpbmcgPSAncHJvY2Vzc2luZycsICAgICAvLyBUaGUgd2lkZ2V0IGlzIHBlcmZvcm1pbmcgYSB0YXNrIG9yIGludGVyYWN0aW9uLlxuXG4gICAgLy8gU3VibWlzc2lvbiBzdGF0dXNlc1xuICAgIFN1Ym1pdHRpbmcgPSAnc3VibWl0dGluZycsICAgLy8gVGhlIGZvcm0gaXMgYmVpbmcgc3VibWl0dGVkLlxuICAgIFN1Ym1pdHRlZCA9ICdzdWJtaXR0ZWQnLCAgICAgLy8gU3VibWlzc2lvbiBpcyBjb21wbGV0ZWQuXG5cbiAgICAvLyBWYWxpZGF0aW9uIHN0YXR1c2VzXG4gICAgVmFsaWRhdGluZyA9ICd2YWxpZGF0aW5nJywgICAgIC8vIFRoZSBmb3JtIGlzIGJlaW5nIHZhbGlkYXRlZC5cbiAgICBWYWxpZGF0ZWQgPSAndmFsaWRhdGVkJywgICAgICAgLy8gVmFsaWRhdGlvbiBpcyBjb21wbGV0ZWQuICBcblxuICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgRXJyb3IgPSAnZXJyb3InLFxufVxuXG5leHBvcnQgZW51bSBBWFBXaWRnZXRTdGF0dXMge1xuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIFJlbmRlcmluZyA9ICdyZW5kZXJpbmcnLCAgICAgICAvLyBUaGUgd2lkZ2V0IGlzIGJlaW5nIHJlbmRlcmVkLlxuICAgIFJlbmRlcmVkID0gJ3JlbmRlcmVkJywgICAgICAgICAvLyBUaGUgcmVuZGVyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUuXG5cbiAgICAvLyBQcm9jZXNzaW5nIHN0YXR1c2VzXG4gICAgUHJvY2Vzc2luZyA9ICdwcm9jZXNzaW5nJywgICAgIC8vIFRoZSB3aWRnZXQgaXMgcGVyZm9ybWluZyBhIHRhc2sgb3IgaW50ZXJhY3Rpb24uXG5cbiAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgIEVycm9yID0gJ2Vycm9yJywgICAgICAgICAgICAgICAvLyBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgYW55IHBoYXNlLlxufVxuIl19","import { computed, Injectable, signal } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPPageStatus, AXPWidgetStatus } from './widget-status.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPLayoutElement {\n api() {\n return {};\n }\n}\nexport class AXPLayoutBuilderService {\n constructor() {\n this.variables$ = signal({});\n this.functions$ = signal({});\n this.onRefresh = new Subject();\n this.widgets = new Map();\n this.status$ = signal(AXPPageStatus.Rendering);\n this.status = this.status$.asReadonly();\n this.isBusy = computed(() => {\n return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());\n });\n }\n get variables() {\n return this.variables$();\n }\n get functions() {\n return this.functions$();\n }\n updateStatus() {\n this.status$.update(() => this.detectStatus());\n }\n detectStatus() {\n const statuses = Array.from(this.widgets.values()).map(c => c.status());\n // Rendering statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {\n return AXPPageStatus.Rendering;\n }\n if (statuses.every((status) => status === AXPWidgetStatus.Rendered)) {\n return AXPPageStatus.Rendered;\n }\n // Processing statuses\n if (statuses.some((status) => status === AXPWidgetStatus.Processing)) {\n return AXPPageStatus.Processing;\n }\n // Error handling\n if (statuses.some((status) => status === AXPWidgetStatus.Error)) {\n return AXPPageStatus.Error;\n }\n return AXPPageStatus.Rendered; // Default to Loaded when all widgets are in a completed state\n }\n refresh() {\n setTimeout(() => {\n this.onRefresh.next();\n }, 0);\n }\n setStatus(status) {\n this.status$.set(status);\n }\n setVariables(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update((v) => set(v, args[0], args[1]));\n }\n }\n setFunctions(...args) {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update((v) => set(v, args[0], args[1]));\n }\n }\n registerWidget(id, widget) {\n this.widgets.set(id, widget);\n }\n getWidget(id) {\n return this.widgets.get(id);\n }\n ngOnDestroy() {\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJdkUsTUFBTSxPQUFnQixnQkFBZ0I7SUFJcEMsR0FBRztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUltQixlQUFVLEdBQUcsTUFBTSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxNQUFNLENBQThCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFFckMsWUFBTyxHQUFHLE1BQU0sQ0FBZ0IsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBR25DLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMvRyxD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QUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBR0QsY0FBYyxDQUFDLEVBQVUsRUFBRSxNQUF3QjtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7SUFDWCxDQUFDOzhHQS9GVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlLCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFBhZ2VTdGF0dXMsIEFYUFdpZGdldFN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUExheW91dEVsZW1lbnRBUEkgPSB7IFtuYW1lOiBzdHJpbmddOiBTdWJqZWN0PGFueT4gfCBGdW5jdGlvbiB9O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQTGF5b3V0RWxlbWVudCB7XG4gIGFic3RyYWN0IGdldCBpZCgpOiBzdHJpbmcgfCBudWxsO1xuICBhYnN0cmFjdCBnZXQgc3RhdHVzKCk6IFNpZ25hbDxBWFBXaWRnZXRTdGF0dXM+O1xuXG4gIGFwaSgpOiBBWFBMYXlvdXRFbGVtZW50QVBJIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlIHtcblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFibGVzJCA9IHNpZ25hbDxhbnk+KHt9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbnMkID0gc2lnbmFsPHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfT4oe30pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblJlZnJlc2g6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgd2lkZ2V0cyA9IG5ldyBNYXA8c3RyaW5nLCBBWFBMYXlvdXRFbGVtZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzJCA9IHNpZ25hbDxBWFBQYWdlU3RhdHVzPihBWFBQYWdlU3RhdHVzLlJlbmRlcmluZyk7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSB0aGlzLnN0YXR1cyQuYXNSZWFkb25seSgpO1xuXG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gW0FYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZywgQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nLCBBWFBQYWdlU3RhdHVzLlJlbmRlcmluZ10uaW5jbHVkZXModGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIGdldCB2YXJpYWJsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGVzJCgpO1xuICB9XG5cbiAgZ2V0IGZ1bmN0aW9ucygpOiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0ge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9ucyQoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0dXMoKSB7XG4gICAgdGhpcy5zdGF0dXMkLnVwZGF0ZSgoKSA9PiB0aGlzLmRldGVjdFN0YXR1cygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0U3RhdHVzKCk6IEFYUFBhZ2VTdGF0dXMge1xuICAgIGNvbnN0IHN0YXR1c2VzID0gQXJyYXkuZnJvbSh0aGlzLndpZGdldHMudmFsdWVzKCkpLm1hcChjID0+IGMuc3RhdHVzKCkpO1xuICAgIC8vIFJlbmRlcmluZyBzdGF0dXNlc1xuICAgIGlmIChzdGF0dXNlcy5zb21lKChzdGF0dXMpID0+IHN0YXR1cyA9PT0gQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZykpIHtcbiAgICAgIHJldHVybiBBWFBQYWdlU3RhdHVzLlJlbmRlcmluZztcbiAgICB9XG4gICAgaWYgKHN0YXR1c2VzLmV2ZXJ5KChzdGF0dXMpID0+IHN0YXR1cyA9PT0gQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmVkKSkge1xuICAgICAgcmV0dXJuIEFYUFBhZ2VTdGF0dXMuUmVuZGVyZWQ7XG4gICAgfVxuXG4gICAgLy8gUHJvY2Vzc2luZyBzdGF0dXNlc1xuICAgIGlmIChzdGF0dXNlcy5zb21lKChzdGF0dXMpID0+IHN0YXR1cyA9PT0gQVhQV2lkZ2V0U3RhdHVzLlByb2Nlc3NpbmcpKSB7XG4gICAgICByZXR1cm4gQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nO1xuICAgIH1cblxuICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgaWYgKHN0YXR1c2VzLnNvbWUoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBXaWRnZXRTdGF0dXMuRXJyb3IpKSB7XG4gICAgICByZXR1cm4gQVhQUGFnZVN0YXR1cy5FcnJvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gQVhQUGFnZVN0YXR1cy5SZW5kZXJlZDsgLy8gRGVmYXVsdCB0byBMb2FkZWQgd2hlbiBhbGwgd2lkZ2V0cyBhcmUgaW4gYSBjb21wbGV0ZWQgc3RhdGVcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9uUmVmcmVzaC5uZXh0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBzZXRTdGF0dXMoc3RhdHVzOiBBWFBQYWdlU3RhdHVzKSB7XG4gICAgdGhpcy5zdGF0dXMkLnNldChzdGF0dXMpO1xuICB9XG5cblxuXG4gIHNldFZhcmlhYmxlcyhrZXlzVmFsdWVzOiBhbnkpOiB2b2lkO1xuICBzZXRWYXJpYWJsZXMoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkO1xuICBzZXRWYXJpYWJsZXMoLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuICAgIGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09IDEpIHRoaXMudmFyaWFibGVzJC5zZXQoYXJnc1swXSk7XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMikge1xuICAgICAgdGhpcy52YXJpYWJsZXMkLnVwZGF0ZSgodikgPT4gc2V0KHYsIGFyZ3NbMF0sIGFyZ3NbMV0pKTtcbiAgICB9XG4gIH1cblxuICBzZXRGdW5jdGlvbnMoa2V5c1ZhbHVlczogYW55KTogdm9pZDtcbiAgc2V0RnVuY3Rpb25zKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgc2V0RnVuY3Rpb25zKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHJldHVybjtcbiAgICBlbHNlIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB0aGlzLmZ1bmN0aW9ucyQuc2V0KGFyZ3NbMF0pO1xuICAgIGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIHRoaXMuZnVuY3Rpb25zJC51cGRhdGUoKHYpID0+IHNldCh2LCBhcmdzWzBdLCBhcmdzWzFdKSk7XG4gICAgfVxuICB9XG5cblxuICByZWdpc3RlcldpZGdldChpZDogc3RyaW5nLCB3aWRnZXQ6IEFYUExheW91dEVsZW1lbnQpIHtcbiAgICB0aGlzLndpZGdldHMuc2V0KGlkLCB3aWRnZXQpO1xuICB9XG5cbiAgZ2V0V2lkZ2V0KGlkOiBzdHJpbmcpOiBBWFBMYXlvdXRFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzLmdldChpZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRegistryService {\n /**\n *\n */\n constructor() {\n this.types = new Map();\n AXPWidgetRegistryService.instance = this;\n }\n register(widget) {\n this.types.set(widget.name, widget);\n }\n extend(parentName, widget) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n resolve(name) {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n all() {\n return Array.from(this.types.values());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNbEMsTUFBTSxPQUFPLHdCQUF3QjtJQUtuQzs7T0FFRztJQUNIO1FBUFEsVUFBSyxHQUFpQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBUXRELHdCQUF3QixDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBa0IsRUFBRSxNQUF1QjtRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLG1CQUFtQixDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWpDVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0eXBlczogTWFwPHN0cmluZywgQVhQV2lkZ2V0Q29uZmlnPiA9IG5ldyBNYXAoKTtcblxuICBwdWJsaWMgc3RhdGljICBpbnN0YW5jZTpBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2U7XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UuaW5zdGFuY2U9dGhpcztcbiAgfVxuXG4gIHJlZ2lzdGVyKHdpZGdldDogQVhQV2lkZ2V0Q29uZmlnKSB7XG4gICAgdGhpcy50eXBlcy5zZXQod2lkZ2V0Lm5hbWUsIHdpZGdldCk7XG4gIH1cblxuICBleHRlbmQocGFyZW50TmFtZTogc3RyaW5nLCB3aWRnZXQ6IEFYUFdpZGdldENvbmZpZykge1xuICAgIGNvbnN0IHBhcmVudFdpZGdldCA9IHRoaXMucmVzb2x2ZShwYXJlbnROYW1lKTtcbiAgICBjb25zdCBuZXdXaWRnZXQgPSBtZXJnZSh7fSwgcGFyZW50V2lkZ2V0LCB3aWRnZXQpO1xuICAgIG5ld1dpZGdldC5uYW1lID0gd2lkZ2V0Lm5hbWU7XG4gICAgdGhpcy5yZWdpc3RlcihuZXdXaWRnZXQpO1xuICB9XG5cbiAgcmVzb2x2ZShuYW1lOiBzdHJpbmcpOiBBWFBXaWRnZXRDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMudHlwZXMuZ2V0KG5hbWUpO1xuICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdpZGdldCB3aXRoIG5hbWUgXCIke25hbWV9XCIgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuICAgIHJldHVybiB3aWRnZXQ7XG4gIH1cblxuICBwdWJsaWMgYWxsKCk6IEFYUFdpZGdldENvbmZpZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnR5cGVzLnZhbHVlcygpKTtcbiAgfVxufVxuIl19","const AXPWidgetsCatalog = {\n timeDuration: 'time-duration',\n tagable: 'tagable-editor',\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n numberUnit: 'number-unit-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n table: 'table-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n fileUploader: 'file-uploader',\n fileTypeExtension: 'file-type-extension',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n advancedGrid: 'advanced-grid-layout',\n advancedGridItem: 'advanced-grid-item-layout',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n template: 'template',\n templateDesigner: 'template-designer',\n cronJob: 'cron-job',\n spacing: 'spacing',\n direction: 'direction',\n border: 'border',\n flexLayout: 'flex-layout',\n avatar: 'avatar',\n themePaletteChooser: 'theme-palette-chooser',\n themeModeChooser: 'theme-mode-chooser',\n menuOrientationChooser: 'menu-orientation-chooser',\n fontStyleChooser: 'font-style-chooser',\n fontSizeChooser: 'font-size-chooser',\n gridOptions: 'grid-options',\n advancedGridOptions: 'advanced-grid-options',\n stringFilter: 'string-filter',\n numberFilter: 'number-filter',\n dateTimeFilter: 'datetime-filter',\n booleanFilter: 'boolean-filter',\n lookupFilter: 'lookup-filter',\n flexOptions: 'flex-options',\n selectFilter: 'select-filter',\n requiredValidation: 'required-validation',\n regularExpressionValidation: 'regular-expression-validation',\n minLengthValidation: 'min-length-validation',\n maxLengthValidation: 'max-length-validation',\n lessThanValidation: 'less-than-validation',\n greaterThanValidation: 'greater-than-validation',\n betweenValidation: 'between-validation',\n equalValidation: 'equal-validation',\n callbackValidation: 'callback-validation',\n donutChart: 'donut-chart',\n lineChart: 'line-chart',\n barChart: 'bar-chart',\n gaugeChart: 'gauge-chart',\n stickyNote: 'sticky-note',\n clockCalendar: 'clock-calendar',\n analogClock: 'analog-clock',\n weather: 'weather',\n minimalWeather: 'minimal-weather',\n advancedWeather: 'advanced-weather',\n metaData: 'meta-data-editor',\n templateEditor: 'template-box-editor',\n panel: 'panel',\n notification: 'notification',\n taskList: 'task-list',\n};\nexport { AXPWidgetsCatalog };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFzQjtJQUMzQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsS0FBSyxFQUFFLGNBQWM7SUFDckIsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtJQUNoQyxRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEtBQUssRUFBRSxjQUFjO0lBQ3JCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsTUFBTSxFQUFFLGVBQWU7SUFDdkIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixLQUFLLEVBQUUsY0FBYztJQUNyQixNQUFNLEVBQUUsZUFBZTtJQUN2QixXQUFXLEVBQUUsY0FBYztJQUMzQixVQUFVLEVBQUUsYUFBYTtJQUN6QixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsWUFBWSxFQUFFLGVBQWU7SUFDN0IsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsWUFBWSxFQUFFLGVBQWU7SUFDN0IsUUFBUSxFQUFFLGlCQUFpQjtJQUMzQixNQUFNLEVBQUUsZUFBZTtJQUN2QixTQUFTLEVBQUUsWUFBWTtJQUN2QixNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsc0JBQXNCO0lBQ3BDLGdCQUFnQixFQUFFLDJCQUEyQjtJQUM3QyxJQUFJLEVBQUUsYUFBYTtJQUNuQixRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxRQUFRLEVBQUUsVUFBVTtJQUNwQixnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsVUFBVSxFQUFFLGFBQWE7SUFDekIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLGdCQUFnQixFQUFFLG9CQUFvQjtJQUN0QyxzQkFBc0IsRUFBRSwwQkFBMEI7SUFDbEQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsbUJBQW1CLEVBQUUsdUJBQXVCO0lBQzVDLFlBQVksRUFBRSxlQUFlO0lBQzdCLFlBQVksRUFBRSxlQUFlO0lBQzdCLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixZQUFZLEVBQUUsZUFBZTtJQUM3QixXQUFXLEVBQUUsY0FBYztJQUMzQixZQUFZLEVBQUUsZUFBZTtJQUM3QixrQkFBa0IsRUFBRSxxQkFBcUI7SUFDekMsMkJBQTJCLEVBQUUsK0JBQStCO0lBQzVELG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxtQkFBbUIsRUFBRSx1QkFBdUI7SUFDNUMsa0JBQWtCLEVBQUUsc0JBQXNCO0lBQzFDLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxpQkFBaUIsRUFBRSxvQkFBb0I7SUFDdkMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxrQkFBa0IsRUFBRSxxQkFBcUI7SUFDekMsVUFBVSxFQUFFLGFBQWE7SUFDekIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsUUFBUSxFQUFFLFdBQVc7SUFDckIsVUFBVSxFQUFFLGFBQWE7SUFDekIsVUFBVSxFQUFFLGFBQWE7SUFDekIsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixXQUFXLEVBQUUsY0FBYztJQUMzQixPQUFPLEVBQUUsU0FBUztJQUNsQixjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsUUFBUSxFQUFFLGtCQUFrQjtJQUM1QixjQUFjLEVBQUUscUJBQXFCO0lBQ3JDLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsUUFBUSxFQUFFLFdBQVc7Q0FDdEIsQ0FBQztBQUVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICcuL3dpZGdldC1tYXAnO1xuXG5jb25zdCBBWFBXaWRnZXRzQ2F0YWxvZzogQVhQV2lkZ2V0VHlwZXNNYXAgPSB7XG4gIHRpbWVEdXJhdGlvbjogJ3RpbWUtZHVyYXRpb24nLFxuICB0YWdhYmxlOiAndGFnYWJsZS1lZGl0b3InLFxuICBjaGVja2JveDogJ2NoZWNrYm94LWVkaXRvcicsXG4gIGNvbG9yOiAnY29sb3ItZWRpdG9yJyxcbiAgY29udGFjdDogJ2NvbnRhY3QtZWRpdG9yJyxcbiAgZGF0ZVRpbWU6ICdkYXRlLXRpbWUtZWRpdG9yJyxcbiAgZW1haWw6ICdlbWFpbC1lZGl0b3InLFxuICBsYXJnZVRleHQ6ICdsYXJnZS10ZXh0LWVkaXRvcicsXG4gIGxpbms6ICdsaW5rLWVkaXRvcicsXG4gIG51bWJlcjogJ251bWJlci1lZGl0b3InLFxuICBudW1iZXJVbml0OiAnbnVtYmVyLXVuaXQtZWRpdG9yJyxcbiAgcGFzc3dvcmQ6ICdwYXNzd29yZC1lZGl0b3InLFxuICBwaG9uZTogJ3Bob25lLWVkaXRvcicsXG4gIHJpY2hUZXh0OiAncmljaC10ZXh0LWVkaXRvcicsXG4gIHNlbGVjdDogJ3NlbGVjdC1lZGl0b3InLFxuICBzZWxlY3Rpb25MaXN0OiAnc2VsZWN0aW9uLWxpc3QtZWRpdG9yJyxcbiAgdGV4dDogJ3RleHQtZWRpdG9yJyxcbiAgdGFibGU6ICd0YWJsZS1lZGl0b3InLFxuICB0b2dnbGU6ICd0b2dnbGUtZWRpdG9yJyxcbiAgYmxvY2tMYXlvdXQ6ICdibG9jay1sYXlvdXQnLFxuICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnLFxuICByZXBlYXRlckxheW91dDogJ3JlcGVhdGVyLWxheW91dCcsXG4gIHRleHRCbG9ja0xheW91dDogJ3RleHQtYmxvY2stbGF5b3V0JyxcbiAgZmlsZVVwbG9hZGVyOiAnZmlsZS11cGxvYWRlcicsXG4gIGZpbGVUeXBlRXh0ZW5zaW9uOiAnZmlsZS10eXBlLWV4dGVuc2lvbicsXG4gIG1hcDogJ21hcCcsXG4gIGdhbGxlcnk6ICdnYWxsZXJ5JyxcbiAgc2lnbmF0dXJlOiAnc2lnbmF0dXJlJyxcbiAgYnV0dG9uQWN0aW9uOiAnYnV0dG9uLWFjdGlvbicsXG4gIGRvY3VtZW50OiAnZG9jdW1lbnQtbGF5b3V0JyxcbiAgbG9va3VwOiAnbG9va3VwLWVkaXRvcicsXG4gIGZvcm1GaWVsZDogJ2Zvcm0tZmllbGQnLFxuICBxcmNvZGU6ICdxcmNvZGUnLFxuICBhZHZhbmNlZEdyaWQ6ICdhZHZhbmNlZC1ncmlkLWxheW91dCcsXG4gIGFkdmFuY2VkR3JpZEl0ZW06ICdhZHZhbmNlZC1ncmlkLWl0ZW0tbGF5b3V0JyxcbiAgZ3JpZDogJ2dyaWQtbGF5b3V0JyxcbiAgZ3JpZEl0ZW06ICdncmlkLWl0ZW0tbGF5b3V0JyxcbiAgZ3JpZFJvdzogJ2dyaWQtcm93LWxheW91dCcsXG4gIHdpZGdldFNlbGVjdG9yOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6ICd0ZW1wbGF0ZScsXG4gIHRlbXBsYXRlRGVzaWduZXI6ICd0ZW1wbGF0ZS1kZXNpZ25lcicsXG4gIGNyb25Kb2I6ICdjcm9uLWpvYicsXG4gIHNwYWNpbmc6ICdzcGFjaW5nJyxcbiAgZGlyZWN0aW9uOiAnZGlyZWN0aW9uJyxcbiAgYm9yZGVyOiAnYm9yZGVyJyxcbiAgZmxleExheW91dDogJ2ZsZXgtbGF5b3V0JyxcbiAgYXZhdGFyOiAnYXZhdGFyJyxcbiAgdGhlbWVQYWxldHRlQ2hvb3NlcjogJ3RoZW1lLXBhbGV0dGUtY2hvb3NlcicsXG4gIHRoZW1lTW9kZUNob29zZXI6ICd0aGVtZS1tb2RlLWNob29zZXInLFxuICBtZW51T3JpZW50YXRpb25DaG9vc2VyOiAnbWVudS1vcmllbnRhdGlvbi1jaG9vc2VyJyxcbiAgZm9udFN0eWxlQ2hvb3NlcjogJ2ZvbnQtc3R5bGUtY2hvb3NlcicsXG4gIGZvbnRTaXplQ2hvb3NlcjogJ2ZvbnQtc2l6ZS1jaG9vc2VyJyxcbiAgZ3JpZE9wdGlvbnM6ICdncmlkLW9wdGlvbnMnLFxuICBhZHZhbmNlZEdyaWRPcHRpb25zOiAnYWR2YW5jZWQtZ3JpZC1vcHRpb25zJyxcbiAgc3RyaW5nRmlsdGVyOiAnc3RyaW5nLWZpbHRlcicsXG4gIG51bWJlckZpbHRlcjogJ251bWJlci1maWx0ZXInLFxuICBkYXRlVGltZUZpbHRlcjogJ2RhdGV0aW1lLWZpbHRlcicsXG4gIGJvb2xlYW5GaWx0ZXI6ICdib29sZWFuLWZpbHRlcicsXG4gIGxvb2t1cEZpbHRlcjogJ2xvb2t1cC1maWx0ZXInLFxuICBmbGV4T3B0aW9uczogJ2ZsZXgtb3B0aW9ucycsXG4gIHNlbGVjdEZpbHRlcjogJ3NlbGVjdC1maWx0ZXInLFxuICByZXF1aXJlZFZhbGlkYXRpb246ICdyZXF1aXJlZC12YWxpZGF0aW9uJyxcbiAgcmVndWxhckV4cHJlc3Npb25WYWxpZGF0aW9uOiAncmVndWxhci1leHByZXNzaW9uLXZhbGlkYXRpb24nLFxuICBtaW5MZW5ndGhWYWxpZGF0aW9uOiAnbWluLWxlbmd0aC12YWxpZGF0aW9uJyxcbiAgbWF4TGVuZ3RoVmFsaWRhdGlvbjogJ21heC1sZW5ndGgtdmFsaWRhdGlvbicsXG4gIGxlc3NUaGFuVmFsaWRhdGlvbjogJ2xlc3MtdGhhbi12YWxpZGF0aW9uJyxcbiAgZ3JlYXRlclRoYW5WYWxpZGF0aW9uOiAnZ3JlYXRlci10aGFuLXZhbGlkYXRpb24nLFxuICBiZXR3ZWVuVmFsaWRhdGlvbjogJ2JldHdlZW4tdmFsaWRhdGlvbicsXG4gIGVxdWFsVmFsaWRhdGlvbjogJ2VxdWFsLXZhbGlkYXRpb24nLFxuICBjYWxsYmFja1ZhbGlkYXRpb246ICdjYWxsYmFjay12YWxpZGF0aW9uJyxcbiAgZG9udXRDaGFydDogJ2RvbnV0LWNoYXJ0JyxcbiAgbGluZUNoYXJ0OiAnbGluZS1jaGFydCcsXG4gIGJhckNoYXJ0OiAnYmFyLWNoYXJ0JyxcbiAgZ2F1Z2VDaGFydDogJ2dhdWdlLWNoYXJ0JyxcbiAgc3RpY2t5Tm90ZTogJ3N0aWNreS1ub3RlJyxcbiAgY2xvY2tDYWxlbmRhcjogJ2Nsb2NrLWNhbGVuZGFyJyxcbiAgYW5hbG9nQ2xvY2s6ICdhbmFsb2ctY2xvY2snLFxuICB3ZWF0aGVyOiAnd2VhdGhlcicsXG4gIG1pbmltYWxXZWF0aGVyOiAnbWluaW1hbC13ZWF0aGVyJyxcbiAgYWR2YW5jZWRXZWF0aGVyOiAnYWR2YW5jZWQtd2VhdGhlcicsXG4gIG1ldGFEYXRhOiAnbWV0YS1kYXRhLWVkaXRvcicsXG4gIHRlbXBsYXRlRWRpdG9yOiAndGVtcGxhdGUtYm94LWVkaXRvcicsXG4gIHBhbmVsOiAncGFuZWwnLFxuICBub3RpZmljYXRpb246ICdub3RpZmljYXRpb24nLFxuICB0YXNrTGlzdDogJ3Rhc2stbGlzdCcsXG59O1xuXG5leHBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9O1xuIl19","import { InjectionToken } from '@angular/core';\nimport { cloneDeep, isNil, merge } from 'lodash-es';\nimport { AXPWidgetsCatalog } from './widget-catalog';\nexport function cloneProperty(property, values) {\n return merge(cloneDeep(property), values);\n}\nexport function createStringProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createNumberProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'number',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.number,\n options: ctor.options,\n },\n },\n visible: !isNil(ctor.visible) ? ctor.visible : true,\n };\n}\nexport function createBooleanProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport function createSelectProperty(ctor) {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\nexport const AXP_WIDGET_TOKEN = new InjectionToken('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken('AXP_WIDGET_COLUMN_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBNkJyRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUEyQixFQUMzQixNQUEyQztJQUUzQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQU9wQztJQUNDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sRUFBRTtZQUNOLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJO2dCQUM1QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUM3QjtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSTtLQUNwRCxDQUFDO0FBQ0os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QyxDQUFDO2lCQUN6RzthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBK0JELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFxQixrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUEyQix5QkFBeUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRGF0YVR5cGUsXG4gIEFYUE1ldGFEYXRhLFxuICBBWFBPcHRpb25zRGF0YSxcbiAgQVhQUGFydGlhbE5lc3RlZCxcbiAgQVhQVmFsaWRhdGlvblJ1bGVzLFxuICBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zLFxuICBBWFBXaWRnZXRUcmlnZ2Vycyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzTmlsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJy4vd2lkZ2V0LWNhdGFsb2cnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q2F0ZWdvcnkgfSBmcm9tICcuL3dpZGdldC1jYXRlZ29yaWVzJztcbmltcG9ydCB7IEFYUFdpZGdldEdyb3VwIH0gZnJvbSAnLi93aWRnZXQtZ3JvdXAudHlwZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICcuL3dpZGdldC1tYXAnO1xuaW1wb3J0IHsgQVhQUGFnZVN0YXR1cyB9IGZyb20gJy4vd2lkZ2V0LXN0YXR1cy50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHlHcm91cCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICBvcmRlcj86IG51bWJlcjtcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IEFYUERhdGFUeXBlO1xuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnkgfCBzdHJpbmcgfCAoKGNvbnRleHQ6IGFueSB8IG51bGwpID0+IGFueSk7XG4gICAgaW50ZXJmYWNlOiBSZXF1aXJlZDxQaWNrPEFYUFdpZGdldE5vZGUsICdwYXRoJz4+ICYgT21pdDxBWFBXaWRnZXROb2RlLCAncGF0aCc+O1xuICB9O1xuICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVQcm9wZXJ0eShcbiAgcHJvcGVydHk6IEFYUFdpZGdldFByb3BlcnR5LFxuICB2YWx1ZXM6IEFYUFBhcnRpYWxOZXN0ZWQ8QVhQV2lkZ2V0UHJvcGVydHk+XG4pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiBtZXJnZShjbG9uZURlZXAocHJvcGVydHkpLCB2YWx1ZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGN0b3IuZGVmYXVsdFZhbHVlLFxuICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICAgICAgcGF0aDogY3Rvci5wYXRoID8/IGN0b3IubmFtZSxcbiAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJQcm9wZXJ0eShjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZT86IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiB7XG4gICAgbWluVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4VmFsdWU/OiBudW1iZXI7XG4gICAgZGVjaW1hbHM/OiBudW1iZXI7XG4gIH07XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgIG9wdGlvbnM6IGN0b3Iub3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiAhaXNOaWwoY3Rvci52aXNpYmxlKSA/IGN0b3IudmlzaWJsZSA6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb29sZWFuUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn0pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogY3Rvci5uYW1lLFxuICAgIHRpdGxlOiBjdG9yLnRpdGxlLFxuICAgIGdyb3VwOiBjdG9yLmdyb3VwLFxuICAgIHNjaGVtYToge1xuICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUgPz8gZmFsc2UsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgdmlzaWJsZTogY3Rvci52aXNpYmxlID8/IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RQcm9wZXJ0eTxUID0gc3RyaW5nIHwgeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0+KGN0b3I6IHtcbiAgZGVmYXVsdFZhbHVlOiBUIHwgVFtdIHwgYW55O1xuICBkYXRhU291cmNlOiBUW107XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IEFycmF5LmlzQXJyYXkoY3Rvci5kZWZhdWx0VmFsdWUpXG4gICAgICAgID8gY3Rvci5kZWZhdWx0VmFsdWUubWFwKChpdGVtKSA9PiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8geyBpZDogaXRlbSB9IDogaXRlbSkpXG4gICAgICAgIDogdHlwZW9mIGN0b3IuZGVmYXVsdFZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8geyBpZDogY3Rvci5kZWZhdWx0VmFsdWUsIHRpdGxlOiBjdG9yLmRlZmF1bHRWYWx1ZSB9XG4gICAgICAgICAgOiBjdG9yLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGludGVyZmFjZToge1xuICAgICAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgICAgIHBhdGg6IGN0b3IucGF0aCA/PyBjdG9yLm5hbWUsXG4gICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGRhdGFTb3VyY2U6IGN0b3IuZGF0YVNvdXJjZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7IGlkOiBpdGVtLCB0aXRsZTogaXRlbSB9IDogaXRlbSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldE5vZGUge1xuICB0eXBlOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0gfCBrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCB8IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBmb3JtdWxhPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IEFYUFdpZGdldE5vZGVbXTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xuICB0cmlnZ2Vycz86IEFYUFdpZGdldFRyaWdnZXJzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHZhbHVlVHJhbnNmb3Jtcz86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Tm9kZVRva2VuIHtcbiAgY29uZmlnOiBBWFBXaWRnZXRDb25maWc7XG4gIG5vZGU6IEFYUFdpZGdldE5vZGU7XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgdHlwZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb2x1bW5Ob2RlVG9rZW4gZXh0ZW5kcyBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgY29uZmlnOiBBWFBXaWRnZXRDb25maWc7XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFdpZGdldE5vZGVUb2tlbj4oJ0FYUF9XSURHRVRfVE9LRU4nKTtcbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBXaWRnZXRDb2x1bW5Ob2RlVG9rZW4+KCdBWFBfV0lER0VUX0NPTFVNTl9UT0tFTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbXBvbmVudENvbmZpZyB7XG4gIGNvbXBvbmVudDogKCkgPT4gUHJvbWlzZTxhbnk+O1xuICBwcm9wZXJ0aWVzPzogQVhQV2lkZ2V0UHJvcGVydHlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzIHtcbiAgZGVzaWduZXI/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIHZpZXc/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGVkaXQ/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIHByaW50PzogQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnO1xuICBjb2x1bW4/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGZpbHRlcj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQV2lkZ2V0Vmlld1R5cGUgPSAnY29udGFpbmVyJyB8ICdlZGl0b3InIHwgJ2FjdGlvbicgfCAndmlldycgfCAnZmlsdGVyJyB8ICd2YWxpZGF0aW9uJyB8ICdkYXNoYm9hcmQnO1xuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXREZXNpZ25lck9wdGlvbnNNYXAgPSB7XG4gIGNvbnRhaW5lcjogeyBjYW5JbnNlcnQ6IGJvb2xlYW4gfTtcbiAgZWRpdG9yOiB7XG4gICAgbmVlZExhYmVsOiBib29sZWFuO1xuICB9O1xuICBhY3Rpb246IHt9O1xuICB2aWV3OiB7fTtcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEV4dHJhY3RXaWRnZXRDb25maWc8VD4gPSB7XG4gIHR5cGU6IEFYUFdpZGdldFZpZXdUeXBlO1xuICBkZXNpZ25lcjogVCBleHRlbmRzIHsgdHlwZTogaW5mZXIgViB9XG4gID8gViBleHRlbmRzIGtleW9mIEFYUFdpZGdldERlc2lnbmVyT3B0aW9uc01hcFxuICA/IEFYUFdpZGdldERlc2lnbmVyT3B0aW9uc01hcFtWXVxuICA6IGFueVxuICA6IGFueTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Q29uZmlnPFQgPSBhbnk+IHtcbiAgbmFtZTogQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdIHwga2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXAgfCBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjYXRlZ29yaWVzPzogQVhQV2lkZ2V0Q2F0ZWdvcnkgfCBBWFBXaWRnZXRDYXRlZ29yeVtdO1xuICBncm91cHM/OiBBWFBXaWRnZXRHcm91cFtdO1xuICBwcm9wZXJ0aWVzPzogQVhQV2lkZ2V0UHJvcGVydHlbXTtcbiAgY29tcG9uZW50czogQVhQV2lkZ2V0Q29uZmlnQ29tcG9uZW50cztcbiAgbWV0YT86IEFYUE1ldGFEYXRhO1xuICB0eXBlOiBBWFBFeHRyYWN0V2lkZ2V0Q29uZmlnPFQ+Wyd0eXBlJ107XG4gIGRlc2lnbmVyPzogQVhQRXh0cmFjdFdpZGdldENvbmZpZzxUPlsnZGVzaWduZXInXTtcbiAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGRlZmF1bHRGaWx0ZXJXaWRnZXROYW1lPzpcbiAgfCAnc3RyaW5nLWZpbHRlcidcbiAgfCAnbnVtYmVyLWZpbHRlcidcbiAgfCAnZGF0ZXRpbWUtZmlsdGVyJ1xuICB8ICdib29sZWFuLWZpbHRlcidcbiAgfCAnc2VsZWN0LWZpbHRlcidcbiAgfCAnbG9va3VwLWZpbHRlcic7XG59XG5leHBvcnQgaW50ZXJmYWNlIGV4dGVuZGVkV2lkZ2V0IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXRDb25maWc7XG4gIHBhcmVudE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQV2lkZ2V0UmVuZGVyTW9kZSA9IGtleW9mIEFYUFdpZGdldENvbmZpZ0NvbXBvbmVudHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTGF5b3V0QnVpbGRlclN0YXR1c0NoYW5nZWRFdmVudCB7XG4gIHN0YXR1czogQVhQUGFnZVN0YXR1cztcbn1cblxuXG4iXX0=","import { AXBaseDataTable, AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject, signal, } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { getSmart } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n constructor() {\n super(...arguments);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.grid = inject(AXBaseDataTable);\n this.mergedOptions = signal({});\n this.loadingRow = signal(null);\n this.injector = inject(Injector);\n this.cdr = inject(ChangeDetectorRef);\n }\n get node() {\n return this._node;\n }\n set node(v) {\n this._node = v;\n }\n get renderFooterTemplate() {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n get renderCellTemplate() {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n async handleExpandRow(row) {\n this.loadingRow.set(row);\n await this.grid.expandRow(row);\n this.loadingRow.set(null);\n // if (row.data?.__meta__?.expanded === undefined) {\n // this.width = `${parseInt(this.width as string) + 24}px`;\n // }\n }\n get renderHeaderTemplate() {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n get loadingEnabled() {\n return true;\n }\n get name() {\n return `col-${this.node.path}`;\n }\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column';\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions(),\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n this.width = this.customWidth ? this.customWidth : this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n getInputs(data) {\n return {\n rawValue: getSmart(data, this.node.path),\n rowData: data\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPWidgetColumnRendererComponent, isStandalone: false, selector: \"axp-widget-column-renderer\", inputs: { caption: \"caption\", customExpandIcon: \"customExpandIcon\", customCollapseIcon: \"customCollapseIcon\", customWidth: \"customWidth\", node: \"node\", footerTemplate: \"footerTemplate\", expandHandler: \"expandHandler\", cellTemplate: \"cellTemplate\", headerTemplate: \"headerTemplate\" }, providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ], viewQueries: [{ propertyName: \"_contentFooterTemplate\", first: true, predicate: [\"footer\"], descendants: true }, { propertyName: \"_contentCellTemplate\", first: true, predicate: [\"cell\"], descendants: true }, { propertyName: \"_contentHeaderTemplate\", first: true, predicate: [\"header\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else { @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n } }\n </div>\n } @if(component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetColumnRendererComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n @if (expandHandler) {\n <div\n (click)=\"handleExpandRow(row)\"\n class=\"ax-expand-handler\"\n [class.ax-invisible]=\"row.data.hasChild === false\"\n id=\"ax-expand-handler-container\"\n [style.padding-inline-start.rem]=\"row.data?.__meta__?.level * 2\"\n >\n @if (loadingRow() === row) {\n <i class=\"fas fa-spinner-third ax-animate-twSpin ax-animate-infinite\"></i>\n } @else { @if (row.data?.__meta__?.expanded) {\n <i [class]=\"customCollapseIcon || 'far fa-minus-square ax-text-md ax-opacity-75'\"></i>\n } @else {\n <i [class]=\"customExpandIcon || 'far fa-plus-square ax-text-md ax-opacity-75'\"></i>\n } }\n </div>\n } @if(component && widgetInjector && row?.data) {\n <ng-container\n *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"\n ></ng-container>\n }\n </div>\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [\n AXPLayoutBuilderService,\n { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n standalone: false,\n }]\n }], propDecorators: { customExpandIcon: [{\n type: Input\n }], customCollapseIcon: [{\n type: Input\n }], customWidth: [{\n type: Input\n }], node: [{\n type: Input,\n args: [{ required: true }]\n }], footerTemplate: [{\n type: Input\n }], _contentFooterTemplate: [{\n type: ViewChild,\n args: ['footer']\n }], expandHandler: [{\n type: Input\n }], cellTemplate: [{\n type: Input\n }], _contentCellTemplate: [{\n type: ViewChild,\n args: ['cell']\n }], headerTemplate: [{\n type: Input\n }], _contentHeaderTemplate: [{\n type: ViewChild,\n args: ['header']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbHVtbi1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1jb2x1bW4tcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBdUIsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQXlDakQsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLDBCQUEwQjtJQXZDaEY7O1FBd0NZLG9CQUFlLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDckQsU0FBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQWdCL0Isa0JBQWEsR0FBRyxNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDOUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQW9ENUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0Ey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QUFjO3NCQURwQixLQUFLO2dCQUlFLHNCQUFzQjtzQkFEN0IsU0FBUzt1QkFBQyxRQUFRO2dCQVFaLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJRSxvQkFBb0I7c0JBRDNCLFNBQVM7dUJBQUMsTUFBTTtnQkFRVixjQUFjO3NCQURwQixLQUFLO2dCQUlFLHNCQUFzQjtzQkFEN0IsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYXNlRGF0YVRhYmxlLCBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb2x1bW5Ob2RlLCBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTiB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcbmltcG9ydCB7IGdldFNtYXJ0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPnt7IGNhcHRpb24gfX08L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtcm93PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIEBpZiAoZXhwYW5kSGFuZGxlcikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUV4cGFuZFJvdyhyb3cpXCJcbiAgICAgICAgICBjbGFzcz1cImF4LWV4cGFuZC1oYW5kbGVyXCJcbiAgICAgICAgICBbY2xhc3MuYXgtaW52aXNpYmxlXT1cInJvdy5kYXRhLmhhc0NoaWxkID09PSBmYWxzZVwiXG4gICAgICAgICAgaWQ9XCJheC1leHBhbmQtaGFuZGxlci1jb250YWluZXJcIlxuICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWlubGluZS1zdGFydC5yZW1dPVwicm93LmRhdGE/Ll9fbWV0YV9fPy5sZXZlbCAqIDJcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChsb2FkaW5nUm93KCkgPT09IHJvdykge1xuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXItdGhpcmQgYXgtYW5pbWF0ZS10d1NwaW4gYXgtYW5pbWF0ZS1pbmZpbml0ZVwiPjwvaT5cbiAgICAgICAgICB9IEBlbHNlIHsgQGlmIChyb3cuZGF0YT8uX19tZXRhX18/LmV4cGFuZGVkKSB7XG4gICAgICAgICAgPGkgW2NsYXNzXT1cImN1c3RvbUNvbGxhcHNlSWNvbiB8fCAnZmFyIGZhLW1pbnVzLXNxdWFyZSBheC10ZXh0LW1kIGF4LW9wYWNpdHktNzUnXCI+PC9pPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpIFtjbGFzc109XCJjdXN0b21FeHBhbmRJY29uIHx8ICdmYXIgZmEtcGx1cy1zcXVhcmUgYXgtdGV4dC1tZCAgYXgtb3BhY2l0eS03NSdcIj48L2k+XG4gICAgICAgICAgfSB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBpZihjb21wb25lbnQgJiYgd2lkZ2V0SW5qZWN0b3IgJiYgcm93Py5kYXRhKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb21wb25lbnQ7IGluamVjdG9yOiB3aWRnZXRJbmplY3RvcjsgaW5wdXRzOiBnZXRJbnB1dHMocm93LmRhdGEpXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyPjwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHByb3ZpZGVyczogW1xuICAgIEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBXaWRnZXRDb2x1bW5SZW5kZXJlckNvbXBvbmVudCB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBbJ2NhcHRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldENvbHVtblJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQge1xuICBwcm90ZWN0ZWQgd2lkZ2V0UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgZ3JpZCA9IGluamVjdChBWEJhc2VEYXRhVGFibGUpO1xuXG4gIEBJbnB1dCgpIGN1c3RvbUV4cGFuZEljb246IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tQ29sbGFwc2VJY29uOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY3VzdG9tV2lkdGg6IHN0cmluZztcblxuICBwcml2YXRlIF9ub2RlOiBBWFBXaWRnZXRDb2x1bW5Ob2RlO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgZ2V0IG5vZGUoKTogQVhQV2lkZ2V0Q29sdW1uTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGU7XG4gIH1cbiAgcHVibGljIHNldCBub2RlKHY6IEFYUFdpZGdldENvbHVtbk5vZGUpIHtcbiAgICB0aGlzLl9ub2RlID0gdjtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VkT3B0aW9ucyA9IHNpZ25hbDxhbnk+KHt9KTtcbiAgcHJvdGVjdGVkIGxvYWRpbmdSb3cgPSBzaWduYWwobnVsbCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdmb290ZXInKVxuICBwcml2YXRlIF9jb250ZW50Rm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCByZW5kZXJGb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9vdGVyVGVtcGxhdGUgPz8gdGhpcy5fY29udGVudEZvb3RlclRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV4cGFuZEhhbmRsZXI6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZCgnY2VsbCcpXG4gIHByaXZhdGUgX2NvbnRlbnRDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCByZW5kZXJDZWxsVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmNlbGxUZW1wbGF0ZSA/PyB0aGlzLl9jb250ZW50Q2VsbFRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdoZWFkZXInKVxuICBwcml2YXRlIF9jb250ZW50SGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVFeHBhbmRSb3cocm93OiBhbnkpIHtcbiAgICB0aGlzLmxvYWRpbmdSb3cuc2V0KHJvdyk7XG4gICAgYXdhaXQgdGhpcy5ncmlkLmV4cGFuZFJvdyhyb3cpO1xuICAgIHRoaXMubG9hZGluZ1Jvdy5zZXQobnVsbCk7XG4gICAgLy8gaWYgKHJvdy5kYXRhPy5fX21ldGFfXz8uZXhwYW5kZWQgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgdGhpcy53aWR0aCA9IGAke3BhcnNlSW50KHRoaXMud2lkdGggYXMgc3RyaW5nKSArIDI0fXB4YDtcbiAgICAvLyB9XG4gIH1cblxuICBnZXQgcmVuZGVySGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlclRlbXBsYXRlID8/IHRoaXMuX2NvbnRlbnRIZWFkZXJUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjb2wtJHt0aGlzLm5vZGUucGF0aH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHdpZGdldEluamVjdG9yITogSW5qZWN0b3I7XG4gIHByb3RlY3RlZCBjb21wb25lbnQhOiBhbnk7XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy53aWRnZXRSZWdpc3RlcnkucmVzb2x2ZSh0aGlzLm5vZGUudHlwZSk7XG4gICAgY29uc3QgbW9kZSA9ICdjb2x1bW4nO1xuICAgIHRoaXMuY29tcG9uZW50ID0gYXdhaXQgd2lkZ2V0Py5jb21wb25lbnRzW21vZGVdPy5jb21wb25lbnQoKTtcbiAgICAvL1xuICAgIGNvbnN0IHByb3BzID0gd2lkZ2V0Py5jb21wb25lbnRzW21vZGVdPy5wcm9wZXJ0aWVzXG4gICAgICA/LmZpbHRlcigoYykgPT4gYy5zY2hlbWEuZGVmYXVsdFZhbHVlKVxuICAgICAgLm1hcCgoYykgPT4gKHsgW2MubmFtZV06IGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSB9KSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmN1cnIgfTtcbiAgICAgIH0sIHt9KTtcbiAgICAvL1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXQobWVyZ2UocHJvcHMsIHRoaXMubm9kZS5vcHRpb25zKSB8fCB7fSk7XG5cbiAgICBjb25zdCB0b2tlblZhbHVlID0ge1xuICAgICAgcGF0aDogdGhpcy5ub2RlLnBhdGgsXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlZE9wdGlvbnMoKSxcbiAgICB9O1xuICAgIHRoaXMud2lkZ2V0SW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogdG9rZW5WYWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLndpZHRoID0gdGhpcy5jdXN0b21XaWR0aCA/IHRoaXMuY3VzdG9tV2lkdGggOiB0aGlzLm1lcmdlZE9wdGlvbnMoKS53aWR0aCA/PyAnMjAwcHgnO1xuICAgIHRoaXMuYWxsb3dSZXNpemluZyA9IHRoaXMubWVyZ2VkT3B0aW9ucygpLmFsbG93UmVzaXppbmcgfHwgdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXRJbnB1dHMoZGF0YTogYW55KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF3VmFsdWU6IGdldFNtYXJ0KGRhdGEsIHRoaXMubm9kZS5wYXRoISksXG4gICAgICByb3dEYXRhOiBkYXRhXG4gICAgfTtcbiAgfVxufVxuIl19","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, get, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { setSmart } from '@acorex/platform/core';\nexport class AXPLayoutContextChangeEvent {\n}\nexport const AXPLayoutBuilderContextStore = signalStore(\n// Initial State\nwithState(() => ({\n data: {}, // Shared context data\n state: 'initiated', // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n }, // Last change event\n})), \n// Computed Signals\nwithComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n})), \n// Methods for State Management\nwithMethods((store) => ({\n // Update a specific value\n update(path, value) {\n const currentData = cloneDeep(store.data());\n const oldValue = get(currentData, path);\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n patch(context) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent = {\n state: 'patch',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n // Initialize the state\n set(initialData) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n const changeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n // Get a specific value\n getValue(path) {\n return get(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvY29udGV4dC1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFPLE9BQU8sRUFBUyxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUlqRCxNQUFNLE9BQU8sMkJBQTJCO0NBTXZDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsV0FBVztBQUNuRCxnQkFBZ0I7QUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDYixJQUFJLEVBQUUsRUFBRSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsV0FBb0MsRUFBRSxnQkFBZ0I7SUFDN0QsZUFBZSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUN2RCxVQUFVLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNVLEVBQUUsb0JBQW9CO0NBQ3pELENBQUMsQ0FBQztBQUVILG1CQUFtQjtBQUNuQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtB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SUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKLENBQUMsQ0FBQyxDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aFN0YXRlLCB3aXRoQ29tcHV0ZWQsIHdpdGhNZXRob2RzLCBwYXRjaFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0LCBpc0VxdWFsLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0U21hcnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRDb250ZXh0U3RhdGUgPSAnaW5pdGlhdGVkJyB8ICdyZXN0b3JlZCcgfCAnY2hhbmdlZCcgfCAncGF0Y2gnO1xuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IHtcbiAgICBvbGRWYWx1ZT86IGFueTtcbiAgICBuZXdWYWx1ZT86IGFueTtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHN0YXRlOiBBWFBMYXlvdXRDb250ZXh0U3RhdGU7XG4gICAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgY29uc3QgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIC8vIEluaXRpYWwgU3RhdGVcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgICAgZGF0YToge30sIC8vIFNoYXJlZCBjb250ZXh0IGRhdGFcbiAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnIGFzIEFYUExheW91dENvbnRleHRTdGF0ZSwgLy8gQ3VycmVudCBzdGF0ZVxuICAgICAgICBpbml0aWFsU25hcHNob3Q6IHt9LCAvLyBTbmFwc2hvdCBvZiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICAgICAgcHJldmlvdXNTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICBsYXN0Q2hhbmdlOiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgIH0gYXMgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCAvLyBMYXN0IGNoYW5nZSBldmVudFxuICAgIH0pKSxcblxuICAgIC8vIENvbXB1dGVkIFNpZ25hbHNcbiAgICB3aXRoQ29tcHV0ZWQoKHsgZGF0YSwgc3RhdGUsIGxhc3RDaGFuZ2UsIGluaXRpYWxTbmFwc2hvdCwgcHJldmlvdXNTbmFwc2hvdCB9KSA9PiAoe1xuICAgICAgICBpc0NoYW5nZWQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdjaGFuZ2VkJyksXG4gICAgICAgIGlzUmVzZXQ6IGNvbXB1dGVkKCgpID0+IHN0YXRlKCkgPT09ICdyZXN0b3JlZCcpLFxuICAgICAgICBpc0luaXRpYXRlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2luaXRpYXRlZCcpLFxuICAgICAgICBpc0VtcHR5OiBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyhkYXRhKCkpLmxlbmd0aCA9PT0gMCksXG4gICAgICAgIHNuYXBzaG90OiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoZGF0YSgpKSksIC8vIEN1cnJlbnQgZGF0YSBzbmFwc2hvdFxuICAgICAgICBpbml0aWFsOiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoaW5pdGlhbFNuYXBzaG90KCkpKSwgLy8gSW5pdGlhbCBzbmFwc2hvdFxuICAgICAgICBwcmV2aW91czogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKHByZXZpb3VzU25hcHNob3QoKSkpLCAvLyBQcmV2aW91cyBzbmFwc2hvdFxuICAgICAgICBjaGFuZ2VFdmVudDogY29tcHV0ZWQoKCkgPT4gbGFzdENoYW5nZSgpKSwgLy8gUmVhY3RpdmUgbGFzdCBjaGFuZ2UgZXZlbnRcbiAgICB9KSksXG5cbiAgICAvLyBNZXRob2RzIGZvciBTdGF0ZSBNYW5hZ2VtZW50XG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyBVcGRhdGUgYSBzcGVjaWZpYyB2YWx1ZVxuICAgICAgICB1cGRhdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBnZXQoY3VycmVudERhdGEsIHBhdGgpO1xuXG4gICAgICAgICAgICAvLyBTa2lwIGlmIHRoZSB2YWx1ZSBoYXNuJ3QgY2hhbmdlZFxuICAgICAgICAgICAgaWYgKGlzRXF1YWwob2xkVmFsdWUsIHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgcHJlcGFyZSB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHNldFNtYXJ0KGN1cnJlbnREYXRhLCBwYXRoLCB2YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIG9sZFZhbHVlLFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBQYXRjaCB0aGUgc3RhdGVcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBwYXRjaChjb250ZXh0OiB7fSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBjbG9uZURlZXAoc3RvcmUuZGF0YSgpKTtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHByZXBhcmUgdGhlIGNoYW5nZSBldmVudFxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSB7IC4uLmN1cnJlbnREYXRhLCAuLi5jb250ZXh0IH07XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgIHN0YXRlOiAncGF0Y2gnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gUGF0Y2ggdGhlIHN0YXRlXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2NoYW5nZWQnLFxuICAgICAgICAgICAgICAgIGxhc3RDaGFuZ2U6IGNoYW5nZUV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gUmVzZXQgdG8gdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICBjb25zdCBpbml0aWFsRGF0YSA9IHN0b3JlLmluaXRpYWwoKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWU6IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpLCAvLyBDdXJyZW50IGRhdGEgYmVjb21lcyBvbGQgdmFsdWVcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSwgLy8gUmVzZXQgdG8gdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ3Jlc3RvcmVkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAncmVzdG9yZWQnLFxuICAgICAgICAgICAgICAgIGxhc3RDaGFuZ2U6IGNoYW5nZUV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3RhdGVcbiAgICAgICAgc2V0KGluaXRpYWxEYXRhOiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gc3RvcmUuZGF0YSgpO1xuICAgICAgICAgICAgaWYgKGlzRXF1YWwoY3VycmVudERhdGEsIGluaXRpYWxEYXRhKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gU2tpcCBpZiB0aGUgY3VycmVudCBzdGF0ZSBtYXRjaGVzIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IGNsb25lRGVlcChpbml0aWFsRGF0YSksXG4gICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIGluaXRpYWxTbmFwc2hvdDogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSwgLy8gU2F2ZSB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIGN1cnJlbnQgc3RhdGUgYXMgdGhlIHByZXZpb3VzXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdpbml0aWF0ZWQnLFxuICAgICAgICAgICAgICAgIGxhc3RDaGFuZ2U6IGNoYW5nZUV2ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gR2V0IGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgZ2V0VmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHN0b3JlLmRhdGEoKSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgfSkpXG4pO1xuIl19","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, computed, effect, inject, } from '@angular/core';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetContainerComponent {\n set context(value) {\n this.contextService.set(value);\n }\n set functions(v) {\n this.builderService.setFunctions(v);\n }\n constructor() {\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.builderService = inject(AXPLayoutBuilderService);\n this.onContextChanged = new EventEmitter();\n this.status = computed(() => {\n return this.builderService.status();\n });\n this.isBusy = computed(() => {\n return this.builderService.isBusy();\n });\n effect(() => {\n if (this.contextService.isChanged()) {\n this.onContextChanged.emit(this.contextService.changeEvent());\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPWidgetContainerComponent, isStandalone: false, selector: \"axp-widgets-container\", inputs: { context: \"context\", functions: \"functions\" }, outputs: { onContextChanged: \"onContextChanged\" }, host: { styleAttribute: \"display: contents;\" }, providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore],\n standalone: false,\n }]\n }], ctorParameters: () => [], propDecorators: { onContextChanged: [{\n type: Output\n }], context: [{\n type: Input\n }], functions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQStCLE1BQU0seUJBQXlCLENBQUM7O0FBVXBHLE1BQU0sT0FBTywyQkFBMkI7SUFPdEMsSUFDSSxPQUFPLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDVyxTQUFTLENBQUMsQ0FBTTtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7UUFoQmdCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDdEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUdqRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQW9CNUUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUksV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBYkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXZCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnT0FIM0IsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQywwQkFIeEQsMkJBQTJCOzsyRkFNMUIsMkJBQTJCO2tCQVJ2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLDRCQUE0QixDQUFDO29CQUNsRSxVQUFVLEVBQUUsS0FBSztpQkFDbEI7d0RBTWlCLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFJSCxPQUFPO3NCQURWLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IH0gZnJvbSAnLi9jb250ZXh0LXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtd2lkZ2V0cy1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGNvbnRlbnRzOycgfSxcbiAgcHJvdmlkZXJzOiBbQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmVdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUpO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb25Db250ZXh0Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb250ZXh0KHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZ1bmN0aW9ucyh2OiBhbnkpIHtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnNldEZ1bmN0aW9ucyh2KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0U2VydmljZS5pc0NoYW5nZWQoKSkge1xuICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZWQuZW1pdCh0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYW5nZUV2ZW50KCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5zdGF0dXMoKTtcbiAgfSk7XG5cbiAgcHVibGljIGlzQnVzeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5pc0J1c3koKTtcbiAgfSk7XG59XG4iXX0=","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/skeleton\";\nexport class AXPWidgetPlaceholderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPWidgetPlaceholderComponent, isStandalone: true, selector: \"axp-widget-placeholder\", ngImport: i0, template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i1.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetPlaceholderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-widget-placeholder',\n template: `<div>\n <ax-skeleton class=\"ax-w-full ax-h-10 ax-rounded-md\"></ax-skeleton>\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXSkeletonModule],\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBsYWNlaG9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBV25FLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGtGQVA5Qjs7U0FFSCwyREFFRyxnQkFBZ0I7OzJGQUdmLDZCQUE2QjtrQkFUekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7O1NBRUg7b0JBQ1AsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1wbGFjZWhvbGRlcicsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC0xMCBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgPC9kaXY+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWFNrZWxldG9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0UGxhY2Vob2xkZXJDb21wb25lbnQge31cbiJdfQ==","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { Directive, Injector, ViewContainerRef, effect, inject, input, output, signal, } from '@angular/core';\nimport { cloneDeep, get, isEmpty, isString, merge, set, sum } from 'lodash-es';\nimport { Subject, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetPlaceholderComponent } from './widget-placeholder.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_TOKEN, } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetRendererDirective {\n constructor() {\n this.parentNode = input();\n this.index = input();\n this.mode = input.required();\n this.node = input.required();\n this._options = signal({});\n this.options = this._options.asReadonly();\n this.onOptionsChanged = output();\n this.onValueChanged = output();\n this.mergedOptions = signal({});\n this.injector = inject(Injector);\n this.builderService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.widgetRegistery = inject(AXPWidgetRegistryService);\n this.unsubscriber = inject(AXUnsubscriber);\n this.translateService = inject(AXTranslationService);\n this.widgetService = inject(AXPWidgetRegistryService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.isLoading = signal(false);\n this.expressionCache = new Map();\n this.expressionEvaluators = new Map();\n this.scope = null;\n this.onContextChanged = new Subject();\n effect(async () => {\n const changed = this.contextService.changeEvent();\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, changed.path)) {\n await this.updateValueBasedOnFormula();\n }\n //\n if (changed.path) {\n this.onContextChanged.next({ path: changed.path });\n }\n });\n this.builderService.onRefresh.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n });\n }\n // Detect input changes\n ngOnChanges(changes) {\n if (changes['mode'] || changes['node']) {\n // Check if either 'mode' or 'node' has changed\n this.rerenderComponent();\n }\n }\n rerenderComponent() {\n this.isLoading.set(false);\n // Call loadComponent to create and render the component\n setTimeout(async () => {\n await this.loadComponent();\n });\n }\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n async loadComponent() {\n if (this.isLoading()) {\n return;\n }\n this.isLoading.set(true);\n // Destroy the existing component if it exists\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.viewContainerRef.clear();\n //\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: cloneDeep(c.schema.defaultValue) }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, widget?.options, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n const loadingRef = this.viewContainerRef.createComponent(AXPWidgetPlaceholderComponent);\n //\n const com = await widget?.components[this.mode()]?.component();\n if (!com) {\n console.error(`${this.node().type} widget component not found with mode: ${this.mode()}`);\n return;\n }\n this.componentRef = this.viewContainerRef.createComponent(com, { injector: token });\n this.instance = this.componentRef.instance;\n this.instance.setStatus(AXPWidgetStatus.Rendering);\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n this.instance.setStatus(AXPWidgetStatus.Rendered);\n this.instance?.onOptionsChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onOptionsChanged.emit({ sender: this, widget: c.sender });\n });\n this.instance?.onValueChanged?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onValueChanged.emit({ sender: this, widget: c.sender });\n });\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n loadingRef.destroy();\n this.isLoading.set(false);\n //\n }\n applyOptions() {\n if (!this.instance)\n return;\n this._options.update((val) => ({ ...val, ...this.mergedOptions() }));\n this.instance.setOptions(this.mergedOptions());\n }\n checkFormulaForUpdate(formula, path) {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n }\n else\n return false;\n }\n preprocessAndInitialOptions(obj, pathPrefix = '') {\n if (!obj) {\n return;\n }\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n }\n else if (typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n }\n else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n async updateOptionsBasedOnContext() {\n const updatePromises = Array.from(this.expressionEvaluators).map(async ([path, evaluator]) => {\n const newValue = await evaluator();\n return { path, newValue };\n });\n // Wait for all evaluators to complete\n const updates = await Promise.all(updatePromises);\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula);\n this.instance.setValue(value);\n }\n }\n async evaluateExpression(templateExpression) {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n }\n else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n getGlobalScope() {\n if (this.scope)\n return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n getContextScope() {\n const scope = {};\n set(scope, 'eval', (path) => this.contextService.getValue(path));\n set(scope, 'set', (path, value) => {\n this.contextService.update(path, value);\n });\n return scope;\n }\n getEventScope() {\n const scope = {};\n set(scope, 'context', (path) => {\n return this.onContextChanged.pipe(filter((c) => {\n if (path == null) {\n return true;\n }\n if (path.endsWith('*')) {\n return c.path.startsWith(path.substring(0, path.length - 1));\n }\n else if (path.startsWith('*')) {\n return c.path.startsWith(path.substring(1, path.length));\n }\n else {\n return path == c.path;\n }\n }));\n });\n set(scope, 'from', (event) => get(this.instance.api(), event));\n return scope;\n }\n getWidgetScope() {\n const scope = {};\n set(scope, 'call', (name, ...args) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'setValue', (value) => {\n this.instance.setValue(value);\n });\n set(scope, 'output', (name) => {\n this.instance.output(name);\n });\n set(scope, 'find', (id) => {\n return this.builderService.getWidget(id);\n });\n return scope;\n }\n getFunctionScope() {\n const scope = {};\n set(scope, 'sum', (values) => {\n return sum(values);\n });\n set(scope, 'translate', (text, options) => {\n return this.translateService.translateAsync(text, options);\n });\n set(scope, 'widgetInfo', (name) => {\n return this.widgetService.resolve(name);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n getVariablesScope() {\n const scope = {};\n set(scope, 'eval', (path) => get(this.builderService.variables, path));\n return scope;\n }\n async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n const exec = (action) => {\n if (!isEmpty(action) && isString(action)) {\n this.evaluateAction(action);\n }\n };\n const actions = Array.isArray(t.action) ? t.action : [t.action];\n actions.forEach((a) => exec(a));\n });\n });\n }\n evaluateTrigger(templateExpression) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n evaluateAction(templateExpression) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", type: AXPWidgetRendererDirective, isStandalone: false, selector: \"[axp-widget-renderer]\", inputs: { parentNode: { classPropertyName: \"parentNode\", publicName: \"parentNode\", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: \"index\", publicName: \"index\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: \"node\", publicName: \"node\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onOptionsChanged: \"onOptionsChanged\", onValueChanged: \"onValueChanged\" }, providers: [\n {\n provide: AXUnsubscriber,\n },\n ], exportAs: [\"widgetRenderer\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetRendererDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-widget-renderer]',\n exportAs: 'widgetRenderer',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n standalone: false,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXIvc3JjL2xpYi9idWlsZGVyL3dpZGdldC1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBRUwsU0FBUyxFQUNULFFBQVEsRUFFUixnQkFBZ0IsRUFFaEIsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBS0wsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7O0FBY3hCLE1BQU0sT0FBTywwQkFBMEI7SUFrQ3JDO1FBakNBLGVBQVUsR0FBRyxLQUFLLEVBQW1DLENBQUM7UUFFdEQsVUFBSyxH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LE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7OEdBaFlVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZvQkFQMUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsY0FBYzthQUN4QjtTQUNGOzsyRkFHVSwwQkFBMEI7a0JBVnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxjQUFjO3lCQUN4QjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFRyYW5zbGF0ZU9wdGlvbnMsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBJbmplY3RvcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGlzRW1wdHksIGlzU3RyaW5nLCBtZXJnZSwgc2V0LCBzdW0gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUgfSBmcm9tICcuL2NvbnRleHQtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50LCBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQsIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UGxhY2Vob2xkZXJDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXQtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0U3RhdHVzIH0gZnJvbSAnLi93aWRnZXQtc3RhdHVzLnR5cGVzJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0Tm9kZVRva2VuLFxuICBBWFBXaWRnZXRSZW5kZXJNb2RlLFxuICBBWFBfV0lER0VUX1RPS0VOLFxufSBmcm9tICcuL3dpZGdldC50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlT3B0aW9ucyA9IEFYUE1ldGFEYXRhO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwLXdpZGdldC1yZW5kZXJlcl0nLFxuICBleHBvcnRBczogJ3dpZGdldFJlbmRlcmVyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhVbnN1YnNjcmliZXIsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlIHtcbiAgcGFyZW50Tm9kZSA9IGlucHV0PEFYUExheW91dFdpZGdldENvbXBvbmVudCB8IG51bGw+KCk7XG5cbiAgaW5kZXggPSBpbnB1dDxudW1iZXIgfCBudWxsPigpO1xuXG4gIG1vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXRSZW5kZXJNb2RlPigpO1xuICBub2RlID0gaW5wdXQucmVxdWlyZWQ8QVhQV2lkZ2V0Tm9kZT4oKTtcblxuICBwcml2YXRlIF9vcHRpb25zID0gc2lnbmFsPEFYUFdpZGdldFJlbmRlcmVyRGlyZWN0aXZlT3B0aW9ucz4oe30pO1xuICBwdWJsaWMgb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyBvbk9wdGlvbnNDaGFuZ2VkID0gb3V0cHV0PHsgc2VuZGVyOiBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZTsgd2lkZ2V0OiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZCA9IG91dHB1dDx7IHNlbmRlcjogQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmU7IHdpZGdldDogQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfT4oKTtcblxuICBwcm90ZWN0ZWQgbWVyZ2VkT3B0aW9uczogV3JpdGFibGVTaWduYWw8YW55PiA9IHNpZ25hbDxhbnk+KHt9KTtcblxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJvdGVjdGVkIGJ1aWxkZXJTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCB3aWRnZXRTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBpbnN0YW5jZSE6IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50O1xuICBwcml2YXRlIGV4cHJlc3Npb25DYWNoZTogTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxhbnk+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yczogTWFwPHN0cmluZywgKCkgPT4gUHJvbWlzZTxhbnk+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzY29wZTogYW55ID0gbnVsbDtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIHByaXZhdGUgb25Db250ZXh0Q2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgcGF0aDogc3RyaW5nIH0+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNoYW5nZUV2ZW50KCk7XG4gICAgICBpZiAoKGF3YWl0IHRoaXMudXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCkpID4gMCkge1xuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucygpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY2hlY2tGb3JtdWxhRm9yVXBkYXRlKHRoaXMubm9kZSgpLmZvcm11bGEsIGNoYW5nZWQucGF0aCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVWYWx1ZUJhc2VkT25Gb3JtdWxhKCk7XG4gICAgICB9XG4gICAgICAvL1xuICAgICAgaWYgKGNoYW5nZWQucGF0aCkge1xuICAgICAgICB0aGlzLm9uQ29udGV4dENoYW5nZWQubmV4dCh7IHBhdGg6IGNoYW5nZWQucGF0aCB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLm9uUmVmcmVzaC5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoKGF3YWl0IHRoaXMudXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCkpID4gMCkge1xuICAgICAgICB0aGlzLmFwcGx5T3B0aW9ucygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRGV0ZWN0IGlucHV0IGNoYW5nZXNcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10gfHwgY2hhbmdlc1snbm9kZSddKSB7XG4gICAgICAvLyBDaGVjayBpZiBlaXRoZXIgJ21vZGUnIG9yICdub2RlJyBoYXMgY2hhbmdlZFxuICAgICAgdGhpcy5yZXJlbmRlckNvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVyZW5kZXJDb21wb25lbnQoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAvLyBDYWxsIGxvYWRDb21wb25lbnQgdG8gY3JlYXRlIGFuZCByZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIC8vIERlc3Ryb3kgdGhlIGV4aXN0aW5nIGNvbXBvbmVudCBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgLy9cbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeS5yZXNvbHZlKHRoaXMubm9kZSgpLnR5cGUpO1xuICAgIC8vXG4gICAgY29uc3QgcHJvcHMgPSBbLi4uKHdpZGdldD8ucHJvcGVydGllcyA/PyBbXSksIC4uLih3aWRnZXQ/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5wcm9wZXJ0aWVzID8/IFtdKV1cbiAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgIT0gbnVsbClcbiAgICAgIC5tYXAoKGMpID0+ICh7IFtjLm5hbWVdOiBjbG9uZURlZXAoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSB9KSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmN1cnIgfTtcbiAgICAgIH0sIHt9KTtcbiAgICAvL1xuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXQobWVyZ2UocHJvcHMsIHdpZGdldD8ub3B0aW9ucywgdGhpcy5ub2RlKCkub3B0aW9ucykgfHwge30pO1xuXG4gICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMoY2xvbmVEZWVwKHRoaXMubm9kZSgpLm9wdGlvbnMpKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpO1xuICAgIC8vXG4gICAgdGhpcy5fb3B0aW9ucy51cGRhdGUoKHZhbCkgPT4gKHsgLi4udmFsLCAuLi50aGlzLm1lcmdlZE9wdGlvbnMoKSB9KSk7XG4gICAgLy9cbiAgICBjb25zdCB0b2tlblZhbHVlID0ge1xuICAgICAgbm9kZTogdGhpcy5ub2RlKCksXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlZE9wdGlvbnMoKSxcbiAgICAgIGNvbmZpZzogd2lkZ2V0LFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZVRva2VuO1xuICAgIGNvbnN0IHRva2VuID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVhQX1dJREdFVF9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogdG9rZW5WYWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgLy9cbiAgICBjb25zdCBsb2FkaW5nUmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChBWFBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCk7XG4gICAgLy9cbiAgICBjb25zdCBjb20gPSBhd2FpdCB3aWRnZXQ/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5jb21wb25lbnQoKTtcbiAgICBpZiAoIWNvbSkge1xuICAgICAgY29uc29sZS5lcnJvcihgJHt0aGlzLm5vZGUoKS50eXBlfSB3aWRnZXQgY29tcG9uZW50IG5vdCBmb3VuZCB3aXRoIG1vZGU6ICR7dGhpcy5tb2RlKCl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+Pihjb20sIHsgaW5qZWN0b3I6IHRva2VuIH0pO1xuICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICB0aGlzLmluc3RhbmNlLnNldFN0YXR1cyhBWFBXaWRnZXRTdGF0dXMuUmVuZGVyaW5nKTtcbiAgICB0aGlzLmluc3RhbmNlLnBhcmVudCA9IHRoaXMucGFyZW50Tm9kZSgpO1xuICAgIHRoaXMuaW5zdGFuY2UuaW5kZXggPSB0aGlzLmluZGV4KCk7XG4gICAgdGhpcy5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgdGhpcy5pbnN0YW5jZS5zZXRTdGF0dXMoQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmVkKTtcbiAgICB0aGlzLmluc3RhbmNlPy5vbk9wdGlvbnNDaGFuZ2VkPy5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2VkLmVtaXQoeyBzZW5kZXI6IHRoaXMsIHdpZGdldDogYy5zZW5kZXIgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZT8ub25WYWx1ZUNoYW5nZWQ/LnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoeyBzZW5kZXI6IHRoaXMsIHdpZGdldDogYy5zZW5kZXIgYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVWYWx1ZUJhc2VkT25Gb3JtdWxhKCk7XG4gICAgYXdhaXQgdGhpcy5hc3NpZ25UcmlnZ2VycygpO1xuICAgIC8vXG4gICAgbG9hZGluZ1JlZi5kZXN0cm95KCk7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAvL1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU9wdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmluc3RhbmNlKSByZXR1cm47XG4gICAgdGhpcy5fb3B0aW9ucy51cGRhdGUoKHZhbCkgPT4gKHsgLi4udmFsLCAuLi50aGlzLm1lcmdlZE9wdGlvbnMoKSB9KSk7XG4gICAgdGhpcy5pbnN0YW5jZS5zZXRPcHRpb25zKHRoaXMubWVyZ2VkT3B0aW9ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JtdWxhRm9yVXBkYXRlKGZvcm11bGE6IHN0cmluZyB8IHVuZGVmaW5lZCwgcGF0aD86IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZm9ybXVsYSkge1xuICAgICAgY29uc3QgcmVnZXggPSAvY29udGV4dFxcLmV2YWxcXCgnKFteJ10rKSdcXCkvZztcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBmb3JtdWxhLm1hdGNoKHJlZ2V4KTtcbiAgICAgIGNvbnN0IG5vZGVzID0gbWF0Y2hlcyA/IG1hdGNoZXMubWFwKChtYXRjaDogYW55KSA9PiBtYXRjaC5tYXRjaCgvJyhbXiddKyknLylbMV0pIDogW107XG4gICAgICByZXR1cm4gbm9kZXMuaW5jbHVkZXMocGF0aCk7XG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyhvYmo6IGFueSwgcGF0aFByZWZpeDogc3RyaW5nID0gJycpOiB2b2lkIHtcbiAgICBpZiAoIW9iaikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtrZXl9YCA6IGtleTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluY2x1ZGVzKCd7eycpKSB7XG4gICAgICAgIC8vIENhY2hlIGR5bmFtaWMgZXhwcmVzc2lvbiBmb3IgbGF0ZXIgZXZhbHVhdGlvblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3JzLnNldChjdXJyZW50UGF0aCwgKCkgPT4gdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odmFsdWUpKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgKHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3QgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICApIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgaGFuZGxlIG5lc3RlZCBvYmplY3RzXG4gICAgICAgIHRoaXMucHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKHZhbHVlLCBjdXJyZW50UGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBcHBseSBzdGF0aWMgdmFsdWVzIGRpcmVjdGx5XG4gICAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNldChjdXJyZW50T3B0aW9ucywgY3VycmVudFBhdGgsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKSB7XG4gICAgY29uc3QgdXBkYXRlUHJvbWlzZXMgPSBBcnJheS5mcm9tKHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvcnMpLm1hcChhc3luYyAoW3BhdGgsIGV2YWx1YXRvcl0pID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgZXZhbHVhdG9yKCk7XG4gICAgICByZXR1cm4geyBwYXRoLCBuZXdWYWx1ZSB9O1xuICAgIH0pO1xuICAgIC8vIFdhaXQgZm9yIGFsbCBldmFsdWF0b3JzIHRvIGNvbXBsZXRlXG4gICAgY29uc3QgdXBkYXRlcyA9IGF3YWl0IFByb21pc2UuYWxsKHVwZGF0ZVByb21pc2VzKTtcbiAgICAvLyBBcHBseSB1cGRhdGVzIHRvIG1lcmdlZE9wdGlvbnNcbiAgICBpZiAodXBkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChvKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0geyAuLi5vIH07XG4gICAgICAgIHVwZGF0ZXMuZm9yRWFjaCgoeyBwYXRoLCBuZXdWYWx1ZSB9KSA9PiB7XG4gICAgICAgICAgLy8gU2V0IHRoZSBuZXcgdmFsdWUgaW4gdGhlIHVwZGF0ZWRPcHRpb25zIG9iamVjdCBieSBwYXRoXG4gICAgICAgICAgc2V0KHVwZGF0ZWRPcHRpb25zLCBwYXRoLCBuZXdWYWx1ZSk7IC8vIEFzc3VtaW5nICdzZXQnIGNhbiBoYW5kbGUgcGF0aHMgbGlrZSAncHJvcGVydHkuc3VicHJvcGVydHknXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdXBkYXRlZE9wdGlvbnM7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVwZGF0ZXMubGVuZ3RoO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpIHtcbiAgICBpZiAodGhpcy5ub2RlKCkuZm9ybXVsYSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLm5vZGUoKS5mb3JtdWxhISk7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0LCBidXQgY2FjaGUgdGhlIGZ1bmN0aW9uIGZvciBldmFsdWF0aW9uLCBub3QgdGhlIGV2YWx1YXRlZCB2YWx1ZVxuICAgICAgaWYgKCF0aGlzLmV4cHJlc3Npb25DYWNoZS5oYXModGVtcGxhdGVFeHByZXNzaW9uKSkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uTWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL1xce1xce1xccyooLio/KVxccypcXH1cXH0vKTtcbiAgICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcblxuICAgICAgICAvLyBDYWNoZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZXN1bHRcbiAgICAgICAgY29uc3Qgc2NvcGUgPSB0aGlzLmdldEdsb2JhbFNjb3BlKCk7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb25GdW5jdGlvbiA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKFxuICAgICAgICAgICAgJ3Njb3BlJyxcbiAgICAgICAgICAgIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSkoKTsgfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uQ2FjaGUuc2V0KHRlbXBsYXRlRXhwcmVzc2lvbiwgZXZhbHVhdGlvbkZ1bmN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmV0cmlldmUgdGhlIGZ1bmN0aW9uIGZyb20gdGhlIGNhY2hlIGFuZCBjYWxsIGl0IHRvIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uXG4gICAgICBjb25zdCBldmFsdWF0ZSA9IHRoaXMuZXhwcmVzc2lvbkNhY2hlLmdldCh0ZW1wbGF0ZUV4cHJlc3Npb24pO1xuICAgICAgaWYgKGV2YWx1YXRlKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBFcnJvcihgRmFpbGVkIHRvIHJldHJpZXZlIGV2YWx1YXRpb24gZnVuY3Rpb24gZm9yIGV4cHJlc3Npb246IFwiJHt0ZW1wbGF0ZUV4cHJlc3Npb259XCJgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEdsb2JhbFNjb3BlKCkge1xuICAgIGlmICh0aGlzLnNjb3BlKSByZXR1cm4gdGhpcy5zY29wZTtcbiAgICB0aGlzLnNjb3BlID0ge307XG4gICAgc2V0KHRoaXMuc2NvcGUsICdjb250ZXh0JywgdGhpcy5nZXRDb250ZXh0U2NvcGUoKSk7XG4gICAgc2V0KHRoaXMuc2NvcGUsICdldmVudHMnLCB0aGlzLmdldEV2ZW50U2NvcGUoKSk7XG4gICAgc2V0KHRoaXMuc2NvcGUsICd3aWRnZXQnLCB0aGlzLmdldFdpZGdldFNjb3BlKCkpO1xuICAgIHNldCh0aGlzLnNjb3BlLCAnbWV0aG9kcycsIHRoaXMuZ2V0RnVuY3Rpb25TY29wZSgpKTtcbiAgICBzZXQodGhpcy5zY29wZSwgJ3ZhcnMnLCB0aGlzLmdldFZhcmlhYmxlc1Njb3BlKCkpO1xuICAgIHJldHVybiB0aGlzLnNjb3BlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0U2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgc2V0KHNjb3BlLCAnZXZhbCcsIChwYXRoOiBzdHJpbmcpID0+IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0VmFsdWUocGF0aCkpO1xuICAgIHNldChzY29wZSwgJ3NldCcsIChwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHBhdGgsIHZhbHVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50U2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgc2V0KHNjb3BlLCAnY29udGV4dCcsIChwYXRoPzogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5vbkNvbnRleHRDaGFuZ2VkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoYykgPT4ge1xuICAgICAgICAgIGlmIChwYXRoID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGF0aC5lbmRzV2l0aCgnKicpKSB7XG4gICAgICAgICAgICByZXR1cm4gYy5wYXRoLnN0YXJ0c1dpdGgocGF0aC5zdWJzdHJpbmcoMCwgcGF0aC5sZW5ndGggLSAxKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChwYXRoLnN0YXJ0c1dpdGgoJyonKSkge1xuICAgICAgICAgICAgcmV0dXJuIGMucGF0aC5zdGFydHNXaXRoKHBhdGguc3Vic3RyaW5nKDEsIHBhdGgubGVuZ3RoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoID09IGMucGF0aDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICBzZXQoc2NvcGUsICdmcm9tJywgKGV2ZW50OiBzdHJpbmcpID0+IGdldCh0aGlzLmluc3RhbmNlLmFwaSgpLCBldmVudCkpO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0V2lkZ2V0U2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgc2V0KHNjb3BlLCAnY2FsbCcsIChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICB0aGlzLmluc3RhbmNlLmNhbGwobmFtZSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgc2V0KHNjb3BlLCAnc2V0VmFsdWUnLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG4gICAgc2V0KHNjb3BlLCAnb3V0cHV0JywgKG5hbWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pbnN0YW5jZS5vdXRwdXQobmFtZSk7XG4gICAgfSk7XG4gICAgc2V0KHNjb3BlLCAnZmluZCcsIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZGVyU2VydmljZS5nZXRXaWRnZXQoaWQpO1xuICAgIH0pO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RnVuY3Rpb25TY29wZSgpOiBhbnkge1xuICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB7fTtcbiAgICBzZXQoc2NvcGUsICdzdW0nLCAodmFsdWVzOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBzdW0odmFsdWVzKTtcbiAgICB9KTtcbiAgICBzZXQoc2NvcGUsICd0cmFuc2xhdGUnLCAodGV4dDogc3RyaW5nLCBvcHRpb25zPzogQVhUcmFuc2xhdGVPcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRleHQsIG9wdGlvbnMpO1xuICAgIH0pO1xuICAgIHNldChzY29wZSwgJ3dpZGdldEluZm8nLCAobmFtZTogc3RyaW5nKTogQVhQV2lkZ2V0Q29uZmlnIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIHJldHVybiB0aGlzLndpZGdldFNlcnZpY2UucmVzb2x2ZShuYW1lKTtcbiAgICB9KTtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmJ1aWxkZXJTZXJ2aWNlLmZ1bmN0aW9ucykuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgc2V0KHNjb3BlLCBpWzBdLCAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgcmV0dXJuIGlbMV0oLi4uYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhYmxlc1Njb3BlKCk6IGFueSB7XG4gICAgY29uc3Qgc2NvcGU6IGFueSA9IHt9O1xuICAgIHNldChzY29wZSwgJ2V2YWwnLCAocGF0aDogc3RyaW5nKSA9PiBnZXQodGhpcy5idWlsZGVyU2VydmljZS52YXJpYWJsZXMsIHBhdGgpKTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFzc2lnblRyaWdnZXJzKCkge1xuICAgIHRoaXMubm9kZSgpLnRyaWdnZXJzPy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHRoaXMuZXZhbHVhdGVUcmlnZ2VyKHQuZXZlbnQpO1xuICAgICAgZXZlbnQ/LnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4ZWMgPSAoYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoIWlzRW1wdHkoYWN0aW9uKSAmJiBpc1N0cmluZyhhY3Rpb24pKSB7XG4gICAgICAgICAgICB0aGlzLmV2YWx1YXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gQXJyYXkuaXNBcnJheSh0LmFjdGlvbikgPyB0LmFjdGlvbiA6IFt0LmFjdGlvbl07XG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoYSkgPT4gZXhlYyhhKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVUcmlnZ2VyKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25NYXRjaCA9IHRlbXBsYXRlRXhwcmVzc2lvbi5tYXRjaCgvXFx7XFx7XFxzKiguKj8pXFxzKlxcfVxcfS8pO1xuICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHZhbGlkIGV4cHJlc3Npb24gZm91bmQgaW4gXCIke3RlbXBsYXRlRXhwcmVzc2lvbn1cImApO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcblxuICAgICAgLy8gQ2FjaGUgdGhlIGV2YWx1YXRpb24gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVzdWx0XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0R2xvYmFsU2NvcGUoKTtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgYHdpdGggKHNjb3BlKSB7IHJldHVybiAoICBmdW5jdGlvbigpIHsgcmV0dXJuICR7ZXhwcmVzc2lvbn07IH0pKCk7IH1gKTtcbiAgICAgIHJldHVybiBzYW5kYm94KHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVBY3Rpb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbk1hdGNoID0gdGVtcGxhdGVFeHByZXNzaW9uLm1hdGNoKC9cXHtcXHtcXHMqKC4qPylcXHMqXFx9XFx9Lyk7XG4gICAgICBpZiAoIWV4cHJlc3Npb25NYXRjaCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICB9XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gZXhwcmVzc2lvbk1hdGNoWzFdO1xuXG4gICAgICAvLyBDYWNoZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZXN1bHRcbiAgICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB0aGlzLmdldEdsb2JhbFNjb3BlKCk7XG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyAgJHtleHByZXNzaW9ufSB9YCk7XG4gICAgICBzYW5kYm94KHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPWidgetColumnRendererComponent } from './widget-column-renderer';\nimport { AXPWidgetContainerComponent } from './widget-container.component';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetRendererDirective } from './widget-renderer.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\nexport class AXPLayoutBuilderModule {\n static forRoot(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry) => async () => {\n await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);\n await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);\n },\n deps: [AXPWidgetRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderModule, deps: [{ token: 'AXPLayoutBuilderModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutBuilderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPLayoutBuilderModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBUXpFLE1BQU0sVUFBVSxHQUFHLENBQUMsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQU8vRyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0M7UUFDbkQsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwrQkFBK0I7b0JBQ3hDLFVBQVUsRUFBRSxDQUFDLFFBQWtDLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO3dCQUM3RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRTVGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3ZHLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDaEMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFzQztRQUNwRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsVUFBVSxFQUFFLENBQUMsUUFBa0MsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7d0JBQzdELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFNUYsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDdkcsQ0FBQztvQkFDSixDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUNoQyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQWlFLFNBQWdCO1FBQy9FLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FoRFUsc0JBQXNCLGtCQTRDRCwrQkFBK0I7K0dBNUNwRCxzQkFBc0IsaUJBUGYsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsMEJBQTBCLGFBR2pHLFlBQVksRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxhQUhsRCwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEI7K0dBT2hHLHNCQUFzQixZQUp2QixZQUFZLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFlBQVk7OzJGQUl6RCxzQkFBc0I7a0JBTGxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7b0JBQ3JFLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUN4QixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztpQkFDOUI7OzBCQTZDYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2tlbGV0b24nO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvbHVtblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29sdW1uLXJlbmRlcmVyJztcbmltcG9ydCB7IEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXQtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuL3dpZGdldC1yZW5kZXJlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBleHRlbmRlZFdpZGdldCB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlQ29uZmlncyB7XG4gIHdpZGdldHM/OiBBWFBXaWRnZXRDb25maWdbXTtcbiAgZXh0ZW5kZWRXaWRnZXRzPzogZXh0ZW5kZWRXaWRnZXRbXTtcbn1cblxuY29uc3QgQ09NUE9ORU5UUyA9IFtBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQsIEFYUFdpZGdldENvbHVtblJlbmRlcmVyQ29tcG9uZW50LCBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBvcnRhbE1vZHVsZSwgQVhTa2VsZXRvbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFNdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYUExheW91dEJ1aWxkZXJNb2R1bGVDb25maWdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWFBMYXlvdXRCdWlsZGVyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQTGF5b3V0QnVpbGRlck1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKSA9PiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChjb25maWc/LndpZGdldHM/Lm1hcCgodykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LnJlZ2lzdGVyKHcpKSkgfHwgW10pO1xuXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgY29uZmlnPy5leHRlbmRlZFdpZGdldHM/Lm1hcCgoZXcpID0+IFByb21pc2UucmVzb2x2ZShyZWdpc3RyeS5leHRlbmQoZXcucGFyZW50TmFtZSwgZXcud2lkZ2V0KSkpIHx8IFtdXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdpZGdldFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnPzogQVhQTGF5b3V0QnVpbGRlck1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUExheW91dEJ1aWxkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZz8ud2lkZ2V0cz8ubWFwKCh3KSA9PiBQcm9taXNlLnJlc29sdmUocmVnaXN0cnkucmVnaXN0ZXIodykpKSB8fCBbXSk7XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBjb25maWc/LmV4dGVuZGVkV2lkZ2V0cz8ubWFwKChldykgPT4gUHJvbWlzZS5yZXNvbHZlKHJlZ2lzdHJ5LmV4dGVuZChldy5wYXJlbnROYW1lLCBldy53aWRnZXQpKSkgfHwgW11cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KCdBWFBMYXlvdXRCdWlsZGVyTW9kdWxlRmFjdG9yeScpIGluc3RhbmNlczogYW55W10pIHtcbiAgICBpbnN0YW5jZXM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgIGYoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_WIDGET_DATASOURCE_PROVIDER = new InjectionToken('AXP_WIDGET_DATASOURCE_PROVIDER');\nexport class AXPWidgetDataSourceProviderService {\n constructor() {\n this.providers = inject(AXP_WIDGET_DATASOURCE_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n async get(name) {\n return (await this.items()).find((c) => c.name == name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetDataSourceProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetDataSourceProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPWidgetDataSourceProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvZGF0YXNvdXJjZS1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQm5FLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCxnQ0FBZ0MsQ0FDakMsQ0FBQztBQUdGLE1BQU0sT0FBTyxrQ0FBa0M7SUFEL0M7UUFFVSxjQUFTLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FnQmhGO0lBZEMsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLEtBQUssR0FBMEIsRUFBRSxDQUFDO1FBRXhDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQWhCVSxrQ0FBa0M7a0hBQWxDLGtDQUFrQyxjQURyQixNQUFNOzsyRkFDbkIsa0NBQWtDO2tCQUQ5QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0RGF0YVNvdXJjZTxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdmFsdWVGaWVsZDogc3RyaW5nO1xuICB0ZXh0RmllbGQ6IHN0cmluZztcbiAgY29sdW1uczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8vIGRhdGFUeXBlOiBzdHJpbmc7XG4gICAgLy8gbnVsbGFibGU/OiBib29sZWFuO1xuICAgIC8vIGludGVyZmFjZT86IFBhcnRpYWw8QVhFbnRpdHlQcm9wZXJ0eVdpZGdldD47XG4gIH1bXTtcbiAgc2FtcGxlcz86IGFueVtdO1xuICBzb3VyY2U6ICgpID0+IEFYRGF0YVNvdXJjZTxUPiB8IFByb21pc2U8QVhEYXRhU291cmNlPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXREYXRhU291cmNlUHJvdmlkZXIge1xuICBpdGVtcygpOiBQcm9taXNlPEFYUFdpZGdldERhdGFTb3VyY2VbXT47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUX0RBVEFTT1VSQ0VfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQV2lkZ2V0RGF0YVNvdXJjZVByb3ZpZGVyW10+KFxuICAnQVhQX1dJREdFVF9EQVRBU09VUkNFX1BST1ZJREVSJyxcbik7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0RGF0YVNvdXJjZVByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIEFYUFdpZGdldERhdGFTb3VyY2VQcm92aWRlciB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9XSURHRVRfREFUQVNPVVJDRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBhc3luYyBpdGVtcygpOiBQcm9taXNlPEFYUFdpZGdldERhdGFTb3VyY2VbXT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWFBXaWRnZXREYXRhU291cmNlW10gPSBbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICBpdGVtcy5wdXNoKC4uLihhd2FpdCBwcm92aWRlci5pdGVtcygpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGFzeW5jIGdldChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUFdpZGdldERhdGFTb3VyY2UgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaXRlbXMoKSkuZmluZCgoYykgPT4gYy5uYW1lID09IG5hbWUpO1xuICB9XG59XG4iXX0=","export const AXP_WIDGETS_LAYOUT_CATEGORY = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\nexport const AXP_WIDGETS_EDITOR_CATEGORY = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\nexport const AXP_WIDGETS_ACTION_CATEGORY = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\nexport const AXP_WIDGETS_ADVANCE_CATEGORY = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\nexport const AXP_WIDGETS_CATEGORIES = [\n AXP_WIDGETS_LAYOUT_CATEGORY,\n AXP_WIDGETS_EDITOR_CATEGORY,\n AXP_WIDGETS_ACTION_CATEGORY,\n AXP_WIDGETS_ADVANCE_CATEGORY,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNhdGVnb3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtY2F0ZWdvcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0I7SUFDNUQsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0I7SUFDN0QsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFJRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBd0I7SUFDekQsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsNEJBQTRCO0NBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENhdGVnb3J5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfTEFZT1VUX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2xheW91dCcsXG4gIG9yZGVyOiAxLFxuICB0aXRsZTogJ0xheW91dCcsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfRURJVE9SX0NBVEVHT1JZOiBBWFBXaWRnZXRDYXRlZ29yeSA9IHtcbiAgbmFtZTogJ2VkaXRvcicsXG4gIG9yZGVyOiAyLFxuICB0aXRsZTogJ0VkaXRvcnMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FDVElPTl9DQVRFR09SWTogQVhQV2lkZ2V0Q2F0ZWdvcnkgPSB7XG4gIG5hbWU6ICdhY3Rpb24nLFxuICBvcmRlcjogMyxcbiAgdGl0bGU6ICdBY3Rpb24nLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRTX0FEVkFOQ0VfQ0FURUdPUlk6IEFYUFdpZGdldENhdGVnb3J5ID0ge1xuICBuYW1lOiAnYWR2YW5jZScsXG4gIG9yZGVyOiA0LFxuICB0aXRsZTogJ0FkdmFuY2UnLFxufTtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUU19DQVRFR09SSUVTOiBBWFBXaWRnZXRDYXRlZ29yeVtdID0gW1xuICBBWFBfV0lER0VUU19MQVlPVVRfQ0FURUdPUlksXG4gIEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSxcbiAgQVhQX1dJREdFVFNfQUNUSU9OX0NBVEVHT1JZLFxuICBBWFBfV0lER0VUU19BRFZBTkNFX0NBVEVHT1JZLFxuXTtcbiJdfQ==","export var AXPWidgetGroupEnum;\n(function (AXPWidgetGroupEnum) {\n AXPWidgetGroupEnum[\"FormElement\"] = \"form-element\";\n AXPWidgetGroupEnum[\"DashboardWidget\"] = \"dashboard-widget\";\n AXPWidgetGroupEnum[\"FormTemplate\"] = \"form-template\";\n AXPWidgetGroupEnum[\"PropertyEditor\"] = \"property-editor\";\n AXPWidgetGroupEnum[\"MetaData\"] = \"meta-data\";\n AXPWidgetGroupEnum[\"SettingWidget\"] = \"setting-widget\";\n AXPWidgetGroupEnum[\"EntityWidget\"] = \"entity-widget\";\n})(AXPWidgetGroupEnum || (AXPWidgetGroupEnum = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWdyb3VwLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWdyb3VwLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGtCQVFYO0FBUkQsV0FBWSxrQkFBa0I7SUFDNUIsa0RBQTRCLENBQUE7SUFDNUIsMERBQW9DLENBQUE7SUFDcEMsb0RBQThCLENBQUE7SUFDOUIsd0RBQWtDLENBQUE7SUFDbEMsNENBQXNCLENBQUE7SUFDdEIsc0RBQWdDLENBQUE7SUFDaEMsb0RBQThCLENBQUE7QUFDaEMsQ0FBQyxFQVJXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFRN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBWFBXaWRnZXRHcm91cCA9XG4gICdmb3JtLWVsZW1lbnQnIHxcbiAgJ2Rhc2hib2FyZC13aWRnZXQnIHxcbiAgJ2Zvcm0tdGVtcGxhdGUnIHxcbiAgJ3Byb3BlcnR5LWVkaXRvcicgfFxuICAnbWV0YS1kYXRhJyB8XG4gICdzZXR0aW5nLXdpZGdldCcgfFxuICAnZW50aXR5LXdpZGdldCc7XG5cblxuZXhwb3J0IGVudW0gQVhQV2lkZ2V0R3JvdXBFbnVtIHtcbiAgRm9ybUVsZW1lbnQgPSAnZm9ybS1lbGVtZW50JyxcbiAgRGFzaGJvYXJkV2lkZ2V0ID0gJ2Rhc2hib2FyZC13aWRnZXQnLFxuICBGb3JtVGVtcGxhdGUgPSAnZm9ybS10ZW1wbGF0ZScsXG4gIFByb3BlcnR5RWRpdG9yID0gJ3Byb3BlcnR5LWVkaXRvcicsXG4gIE1ldGFEYXRhID0gJ21ldGEtZGF0YScsXG4gIFNldHRpbmdXaWRnZXQgPSAnc2V0dGluZy13aWRnZXQnLFxuICBFbnRpdHlXaWRnZXQgPSAnZW50aXR5LXdpZGdldCcsXG59Il19","import { AXDataSource, convertArrayToDataSource } from '@acorex/cdk/common';\nimport { computed, effect, ElementRef, inject, Injectable, signal } from '@angular/core';\nimport { get, isEqual, isNil, isUndefined } from 'lodash-es';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPLayoutBuilderContextStore } from './context-store.service';\nimport { AXPWidgetDataSourceProviderService } from './datasource-provider.service';\nimport { AXPWidgetStatus } from './widget-status.types';\nimport { AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN } from './widget.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPBaseWidgetComponent extends AXPLayoutElement {\n constructor() {\n super(...arguments);\n this.token = inject(AXP_WIDGET_TOKEN);\n this.host = inject(ElementRef).nativeElement;\n this.layoutService = inject(AXPLayoutBuilderService);\n this.contextService = inject(AXPLayoutBuilderContextStore);\n this.config = this.token.config;\n this.node = this.token.node;\n this.name = this.token.node.name;\n this._options = signal(this.token.options ?? {});\n this.options = this._options.asReadonly();\n this.onOptionsChanged = new Subject();\n this._status = signal(AXPWidgetStatus.Rendering);\n this.status = this._status.asReadonly();\n this.onStatusChanged = new BehaviorSubject(this._status());\n this.#statusEffect = effect(() => {\n this.onStatusChanged.next(this.status());\n });\n this.isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()));\n this._children = signal(this.token.node.children ?? []);\n this.children = this._children.asReadonly();\n }\n get id() {\n return this._id;\n }\n #statusEffect;\n outputs() {\n return [];\n }\n ngOnInit() {\n if (get(this.node, '__meta__.added')) {\n this.onAdded();\n }\n this.setStatus(AXPWidgetStatus.Rendered);\n }\n setStatus(status) {\n this._status.set(status);\n this.layoutService.updateStatus();\n }\n setOptions(values) {\n this._options.set({ ...this.options(), ...values });\n this.onOptionsChanged.next({ sender: this });\n }\n output(name) {\n const outputs = this.outputs().map((c) => (typeof c == 'string' ? { name: c, value: c } : c));\n if (outputs.some((c) => c.name == name)) {\n const opt = get(this, name);\n if (typeof opt == 'function') {\n return opt();\n }\n return opt;\n }\n return null;\n }\n call(name, ...args) {\n const fn = get(this, name);\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n setChildren(children) {\n this._children.set([...children]);\n }\n onAdded() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPBaseWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPBaseWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPLayoutWidgetComponent extends AXPBaseWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPLayoutWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPValueWidgetComponent extends AXPLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.path = this.token.node.path;\n this.defaultValue = this.token.node.defaultValue;\n this._isValueWidget = false;\n this.isValueWidget = () => this._isValueWidget;\n this.onValueChanged = new Subject();\n this.fullPath = signal(null);\n this.getValue = computed(() => {\n return this.fullPath() ? this.extractValue(this.fullPath()) : null;\n }, { equal: isEqual });\n this.validationRules = computed(() => {\n const validationsRaw = this.options()['validations'];\n if (validationsRaw == null) {\n return [];\n }\n return Object.values(this.options()['validations'])\n .filter((c) => c != null)\n .map((c) => ({\n rule: c.rule,\n message: c.message,\n options: c.options,\n }));\n });\n }\n ngOnInit() {\n this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;\n if (this.isValueWidget()) {\n this.detectFullPath();\n if (!isNil(this.defaultValue) && isNil(this.getValue())) {\n this.setValue(this.defaultValue);\n }\n }\n //\n super.ngOnInit();\n }\n extractValue(path) {\n const rawValue = this.contextService.getValue(path);\n if (this.node.valueTransforms?.getter) {\n return this.node.valueTransforms?.getter(rawValue);\n }\n return rawValue;\n }\n setValue(value) {\n if (this.node.valueTransforms?.setter) {\n value = this.node.valueTransforms?.setter(value);\n }\n const oldValue = this.getValue();\n value = isUndefined(value) ? null : value;\n if (isNil(value) && isNil(oldValue)) {\n return;\n }\n if (isEqual(oldValue, value)) {\n return;\n }\n if (this.fullPath()) {\n this.contextService.update(this.fullPath(), value);\n this.onValueChanged.next({ sender: this });\n }\n }\n detectFullPath() {\n const sections = [];\n const ids = [];\n //\n let parent = this;\n //\n while (parent) {\n const isValueWidget = parent instanceof AXPValueWidgetComponent && parent.isValueWidget();\n const valueParent = parent;\n const path = valueParent.path ?? (isValueWidget ? valueParent.name : null);\n const id = valueParent.name;\n //\n if (path) {\n sections.push(path);\n }\n if (parent.index != null && isValueWidget) {\n sections.push(`[${parent.index}]`);\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this.fullPath.set(sections.reverse().join('.'));\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.layoutService.registerWidget(this._id, this);\n }\n }\n handleValueChanged(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPValueWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPValueWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPValueWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPDataListWidgetComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.dataService = inject(AXPWidgetDataSourceProviderService);\n this.dataSource = signal(convertArrayToDataSource([]));\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n this.valueField = computed(() => this.options()['valueField'] ?? 'id');\n this.selectedItems = signal([]);\n this.rf = effect(async () => {\n const rawValue = this.options()['dataSource'];\n // static datasource class\n if (rawValue instanceof AXDataSource) {\n this.dataSource.set(rawValue);\n }\n // static array datasource\n else if (Array.isArray(rawValue)) {\n const ds = new AXDataSource({\n key: this.valueField(),\n pageSize: 10,\n load: async (e) => {\n const raw = this.options()['dataSource'];\n return {\n items: raw,\n total: raw.length,\n };\n },\n byKey: (key) => {\n const raw = this.options()['dataSource'];\n const item = raw.filter((c) => c[this.valueField()] == key);\n return Promise.resolve(item[0]);\n },\n });\n this.dataSource.set(ds);\n }\n // resolve data source by name\n else if (rawValue && (typeof rawValue == 'string' || typeof rawValue == 'object')) {\n const id = typeof rawValue == 'object' ? rawValue['id'] : rawValue;\n const c = await this.dataService.get(id);\n if (this.mode == 'designer' && c?.samples?.length) {\n this.dataSource.set(convertArrayToDataSource(c.samples, {\n key: this.valueField(),\n pageSize: 500,\n }));\n }\n else {\n const ds = c?.source();\n if (ds && ds instanceof Promise) {\n const d = await ds;\n this.dataSource.set(d);\n }\n else if (ds) {\n this.dataSource.set(ds);\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n }\n }\n // empty datasource\n else {\n this.dataSource.set(convertArrayToDataSource([]));\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataListWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPDataListWidgetComponent, decorators: [{\n type: Injectable\n }] });\nexport class AXPColumnWidgetComponent {\n constructor() {\n this.token = inject(AXP_WIDGET_COLUMN_TOKEN);\n this.path = this.token.path;\n this.options = this.token.options ?? {};\n this.rawValue = null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPColumnWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPColumnWidgetComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPColumnWidgetComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQXVCLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHL0csTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxnQkFBZ0I7SUFEckU7O1FBRXFCLFVBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQStCLENBQUM7UUFFdkQsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxt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ImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhWYWx1ZUNoYW5nZWRFdmVudCwgY29udmVydEFycmF5VG9EYXRhU291cmNlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlLCBBWFBWYWxpZGF0aW9uUnVsZXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBpc0VxdWFsLCBpc05pbCwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSwgQVhQTGF5b3V0RWxlbWVudCB9IGZyb20gJy4vYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJDb250ZXh0U3RvcmUgfSBmcm9tICcuL2NvbnRleHQtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXREYXRhU291cmNlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhc291cmNlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0U3RhdHVzIH0gZnJvbSAnLi93aWRnZXQtc3RhdHVzLnR5cGVzJztcbmltcG9ydCB7IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOLCBBWFBfV0lER0VUX1RPS0VOLCBBWFBXaWRnZXROb2RlLCBBWFBXaWRnZXRSZW5kZXJNb2RlIH0gZnJvbSAnLi93aWRnZXQudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQmFzZVdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUExheW91dEVsZW1lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9UT0tFTik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlckNvbnRleHRTdG9yZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMudG9rZW4uY29uZmlnO1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZSA9IHRoaXMudG9rZW4ubm9kZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZSA9IHRoaXMudG9rZW4ubm9kZS5uYW1lO1xuXG4gIHByb3RlY3RlZCBfaWQ6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9vcHRpb25zID0gc2lnbmFsPGFueT4odGhpcy50b2tlbi5vcHRpb25zID8/IHt9KTtcbiAgcHVibGljIG9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmFzUmVhZG9ubHkoKTtcblxuICBwdWJsaWMgb25PcHRpb25zQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgc2VuZGVyOiBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50IH0+KCk7XG5cbiAgcHJpdmF0ZSBfc3RhdHVzID0gc2lnbmFsPEFYUFdpZGdldFN0YXR1cz4oQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZyk7XG4gIHB1YmxpYyBzdGF0dXMgPSB0aGlzLl9zdGF0dXMuYXNSZWFkb25seSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvblN0YXR1c0NoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFdpZGdldFN0YXR1cz4odGhpcy5fc3RhdHVzKCkpO1xuXG4gICNzdGF0dXNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMoKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBpc0J1c3kgPSBjb21wdXRlZCgoKSA9PiBbQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmluZywgQVhQV2lkZ2V0U3RhdHVzLlByb2Nlc3NpbmddLmluY2x1ZGVzKHRoaXMuc3RhdHVzKCkpKTtcblxuICBwYXJlbnQ6IEFYUExheW91dFdpZGdldENvbXBvbmVudCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIGluZGV4OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBtb2RlOiBBWFBXaWRnZXRSZW5kZXJNb2RlO1xuICBsb2NrZWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIG91dHB1dHMoKTogKHN0cmluZyB8IHsgW25hbWU6IHN0cmluZ106IHVua25vd24gfSlbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKGdldCh0aGlzLm5vZGUsICdfX21ldGFfXy5hZGRlZCcpKSB7XG4gICAgICB0aGlzLm9uQWRkZWQoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0dXMoQVhQV2lkZ2V0U3RhdHVzLlJlbmRlcmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0dXMoc3RhdHVzOiBBWFBXaWRnZXRTdGF0dXMpIHtcbiAgICB0aGlzLl9zdGF0dXMuc2V0KHN0YXR1cyk7XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnVwZGF0ZVN0YXR1cygpO1xuICB9XG5cbiAgcHVibGljIHNldE9wdGlvbnModmFsdWVzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vcHRpb25zLnNldCh7IC4uLnRoaXMub3B0aW9ucygpLCAuLi52YWx1ZXMgfSk7XG4gICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2VkLm5leHQoeyBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cblxuICBvdXRwdXQ8VCA9IGFueT4obmFtZTogc3RyaW5nKTogVCB7XG4gICAgY29uc3Qgb3V0cHV0cyA9IHRoaXMub3V0cHV0cygpLm1hcCgoYykgPT4gKHR5cGVvZiBjID09ICdzdHJpbmcnID8geyBuYW1lOiBjLCB2YWx1ZTogYyB9IDogYykpIGFzIHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHZhbHVlOiB1bmtub3duO1xuICAgIH1bXTtcblxuICAgIGlmIChvdXRwdXRzLnNvbWUoKGMpID0+IGMubmFtZSA9PSBuYW1lKSkge1xuICAgICAgY29uc3Qgb3B0ID0gZ2V0KHRoaXMsIG5hbWUpO1xuICAgICAgaWYgKHR5cGVvZiBvcHQgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gb3B0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3B0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbCBhcyBUO1xuICB9XG5cbiAgY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3QgZm4gPSBnZXQodGhpcywgbmFtZSkgYXMgRnVuY3Rpb247XG4gICAgaWYgKGZuICYmIHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmbi5iaW5kKHRoaXMpKC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBfY2hpbGRyZW4gPSBzaWduYWwodGhpcy50b2tlbi5ub2RlLmNoaWxkcmVuID8/IFtdKTtcbiAgcHJvdGVjdGVkIGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW4uYXNSZWFkb25seSgpO1xuXG4gIHNldENoaWxkcmVuKGNoaWxkcmVuOiBBWFBXaWRnZXROb2RlW10pIHtcbiAgICB0aGlzLl9jaGlsZHJlbi5zZXQoWy4uLmNoaWxkcmVuXSk7XG4gIH1cblxuICBvbkFkZGVkKCkge31cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExheW91dFdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUEJhc2VXaWRnZXRDb21wb25lbnQge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PFQgPSBhbnkgfCBudWxsPiBleHRlbmRzIEFYUExheW91dFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYXRoID0gdGhpcy50b2tlbi5ub2RlLnBhdGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0VmFsdWUgPSB0aGlzLnRva2VuLm5vZGUuZGVmYXVsdFZhbHVlO1xuXG4gIHByaXZhdGUgX2lzVmFsdWVXaWRnZXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1ZhbHVlV2lkZ2V0ID0gKCkgPT4gdGhpcy5faXNWYWx1ZVdpZGdldDtcblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhQQmFzZVdpZGdldENvbXBvbmVudCB9PigpO1xuXG4gIHByb3RlY3RlZCBmdWxsUGF0aCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pc1ZhbHVlV2lkZ2V0ID0gdGhpcy5jb25maWcucHJvcGVydGllcz8uc29tZSgoYykgPT4gYy5uYW1lID09ICdwYXRoJykgPz8gZmFsc2U7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZVdpZGdldCgpKSB7XG4gICAgICB0aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuZGVmYXVsdFZhbHVlKSAmJiBpc05pbCh0aGlzLmdldFZhbHVlKCkpKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICAvL1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUgPSBjb21wdXRlZDxUPihcbiAgICAoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5mdWxsUGF0aCgpID8gdGhpcy5leHRyYWN0VmFsdWUodGhpcy5mdWxsUGF0aCgpISkgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuXG4gIHByb3RlY3RlZCB2YWxpZGF0aW9uUnVsZXMgPSBjb21wdXRlZDxBWFBWYWxpZGF0aW9uUnVsZXM+KCgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0aW9uc1JhdyA9IHRoaXMub3B0aW9ucygpWyd2YWxpZGF0aW9ucyddO1xuICAgIGlmICh2YWxpZGF0aW9uc1JhdyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMub3B0aW9ucygpWyd2YWxpZGF0aW9ucyddKVxuICAgICAgLmZpbHRlcigoYykgPT4gYyAhPSBudWxsKVxuICAgICAgLm1hcChcbiAgICAgICAgKGM6IGFueSkgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgcnVsZTogYy5ydWxlLFxuICAgICAgICAgICAgbWVzc2FnZTogYy5tZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogYy5vcHRpb25zLFxuICAgICAgICAgIH0pIGFzIEFYUFZhbGlkYXRpb25SdWxlLFxuICAgICAgKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGV4dHJhY3RWYWx1ZShwYXRoOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5jb250ZXh0U2VydmljZS5nZXRWYWx1ZShwYXRoKTtcbiAgICBpZiAodGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uZ2V0dGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlLnZhbHVlVHJhbnNmb3Jtcz8uZ2V0dGVyKHJhd1ZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhd1ZhbHVlO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMubm9kZS52YWx1ZVRyYW5zZm9ybXM/LnNldHRlcikge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGUudmFsdWVUcmFuc2Zvcm1zPy5zZXR0ZXIodmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICB2YWx1ZSA9IGlzVW5kZWZpbmVkKHZhbHVlKSA/IG51bGwgOiB2YWx1ZTtcbiAgICBpZiAoaXNOaWwodmFsdWUpICYmIGlzTmlsKG9sZFZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmZ1bGxQYXRoKCkpIHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHRoaXMuZnVsbFBhdGgoKSEsIHZhbHVlKTtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQubmV4dCh7IHNlbmRlcjogdGhpcyB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEZ1bGxQYXRoKCkge1xuICAgIGNvbnN0IHNlY3Rpb25zID0gW107XG4gICAgY29uc3QgaWRzID0gW107XG4gICAgLy9cbiAgICBsZXQgcGFyZW50OiBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcyBhcyBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQ7XG4gICAgLy9cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICBjb25zdCBpc1ZhbHVlV2lkZ2V0ID0gcGFyZW50IGluc3RhbmNlb2YgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgJiYgcGFyZW50LmlzVmFsdWVXaWRnZXQoKTtcbiAgICAgIGNvbnN0IHZhbHVlUGFyZW50ID0gcGFyZW50IGFzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT47XG4gICAgICBjb25zdCBwYXRoID0gdmFsdWVQYXJlbnQucGF0aCA/PyAoaXNWYWx1ZVdpZGdldCA/IHZhbHVlUGFyZW50Lm5hbWUgOiBudWxsKTtcbiAgICAgIGNvbnN0IGlkID0gdmFsdWVQYXJlbnQubmFtZTtcbiAgICAgIC8vXG4gICAgICBpZiAocGF0aCkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKHBhdGgpO1xuICAgICAgfVxuICAgICAgaWYgKHBhcmVudC5pbmRleCAhPSBudWxsICYmIGlzVmFsdWVXaWRnZXQpIHtcbiAgICAgICAgc2VjdGlvbnMucHVzaChgWyR7cGFyZW50LmluZGV4fV1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChpZCkge1xuICAgICAgICBpZHMucHVzaChpZCk7XG4gICAgICAgIGlmIChwYXJlbnQuaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIGlkcy5wdXNoKGAke3BhcmVudC5pbmRleH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmZ1bGxQYXRoLnNldChzZWN0aW9ucy5yZXZlcnNlKCkuam9pbignLicpKTtcbiAgICB0aGlzLl9pZCA9IHRoaXMubmFtZSB8fCB0aGlzLnBhcmVudCA/IGlkcy5yZXZlcnNlKCkuam9pbignXycpIDogbnVsbDtcbiAgICBpZiAodGhpcy5faWQpIHtcbiAgICAgIHRoaXMubGF5b3V0U2VydmljZS5yZWdpc3RlcldpZGdldCh0aGlzLl9pZCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PFQ+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoZS52YWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBEYXRhTGlzdFdpZGdldENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcml2YXRlIGRhdGFTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldERhdGFTb3VyY2VQcm92aWRlclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBkYXRhU291cmNlID0gc2lnbmFsPEFYRGF0YVNvdXJjZT4oY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKSk7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSA/PyAndGl0bGUnKTtcbiAgcHJvdGVjdGVkIHZhbHVlRmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndmFsdWVGaWVsZCddIGFzIHN0cmluZykgPz8gJ2lkJyk7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcml2YXRlIHJmID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByYXdWYWx1ZSA9IHRoaXMub3B0aW9ucygpWydkYXRhU291cmNlJ107XG4gICAgLy8gc3RhdGljICBkYXRhc291cmNlIGNsYXNzXG4gICAgaWYgKHJhd1ZhbHVlIGluc3RhbmNlb2YgQVhEYXRhU291cmNlKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KHJhd1ZhbHVlKTtcbiAgICB9XG4gICAgLy8gc3RhdGljIGFycmF5IGRhdGFzb3VyY2VcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJhd1ZhbHVlKSkge1xuICAgICAgY29uc3QgZHMgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICAgICAga2V5OiB0aGlzLnZhbHVlRmllbGQoKSxcbiAgICAgICAgcGFnZVNpemU6IDEwLFxuICAgICAgICBsb2FkOiBhc3luYyAoZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gdGhpcy5vcHRpb25zKClbJ2RhdGFTb3VyY2UnXTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHJhdyxcbiAgICAgICAgICAgIHRvdGFsOiByYXcubGVuZ3RoLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGJ5S2V5OiAoa2V5OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gdGhpcy5vcHRpb25zKClbJ2RhdGFTb3VyY2UnXTtcbiAgICAgICAgICBjb25zdCBpdGVtID0gcmF3LmZpbHRlcigoYzogYW55KSA9PiBjW3RoaXMudmFsdWVGaWVsZCgpXSA9PSBrZXkpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaXRlbVswXSkgYXMgYW55O1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGRzKTtcbiAgICB9XG4gICAgLy8gcmVzb2x2ZSBkYXRhIHNvdXJjZSBieSBuYW1lXG4gICAgZWxzZSBpZiAocmF3VmFsdWUgJiYgKHR5cGVvZiByYXdWYWx1ZSA9PSAnc3RyaW5nJyB8fCB0eXBlb2YgcmF3VmFsdWUgPT0gJ29iamVjdCcpKSB7XG4gICAgICBjb25zdCBpZCA9IHR5cGVvZiByYXdWYWx1ZSA9PSAnb2JqZWN0JyA/IHJhd1ZhbHVlWydpZCddIDogcmF3VmFsdWU7XG4gICAgICBjb25zdCBjID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5nZXQoaWQpO1xuICAgICAgaWYgKHRoaXMubW9kZSA9PSAnZGVzaWduZXInICYmIGM/LnNhbXBsZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KFxuICAgICAgICAgIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShjLnNhbXBsZXMsIHtcbiAgICAgICAgICAgIGtleTogdGhpcy52YWx1ZUZpZWxkKCksXG4gICAgICAgICAgICBwYWdlU2l6ZTogNTAwLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZHMgPSBjPy5zb3VyY2UoKTtcbiAgICAgICAgaWYgKGRzICYmIGRzIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgIGNvbnN0IGQgPSBhd2FpdCBkcztcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGQpO1xuICAgICAgICB9IGVsc2UgaWYgKGRzKSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnNldChkcyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZW1wdHkgZGF0YXNvdXJjZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGVtcHR5IGRhdGFzb3VyY2VcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5zZXQoY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKSk7XG4gICAgfVxuICB9KTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUENvbHVtbldpZGdldENvbXBvbmVudDxUID0gYW55IHwgbnVsbCB8IHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlbiA9IGluamVjdChBWFBfV0lER0VUX0NPTFVNTl9UT0tFTik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhdGggPSB0aGlzLnRva2VuLnBhdGg7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gdGhpcy50b2tlbi5vcHRpb25zID8/IHt9O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmF3VmFsdWU6IFQgPSBudWxsIGFzIFQ7XG4gIHByb3RlY3RlZCByZWFkb25seSByb3dEYXRhOiBhbnk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
|