@acorex/platform 18.1.3 → 18.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/app/app-startup.service.d.ts +16 -0
- package/common/lib/app/application.types.d.ts +3 -1
- package/common/lib/app/index.d.ts +1 -0
- package/common/lib/common.module.d.ts +7 -1
- package/common/lib/configs/app.config.d.ts +1 -0
- package/common/lib/data/dexie-storage.service.d.ts +18 -2
- package/common/lib/data/entity-data-provider.d.ts +2 -2
- package/common/lib/data/{storage-service.d.ts → entity-storage-service.d.ts} +1 -1
- package/common/lib/data/index.d.ts +1 -1
- package/common/lib/layout/theme/components/slots/index.d.ts +0 -1
- package/common/lib/layout/theme/store/admin-layout.actions.d.ts +0 -1
- package/common/lib/layout/theme/store/admin-layout.effects.d.ts +1 -2
- package/common/lib/layout/theme/store/admin-layout.reducers.d.ts +0 -5
- package/common/lib/layout/theme/store/admin-layout.selectors.d.ts +0 -1
- package/common/lib/layout/theme/store/admin-layout.state.d.ts +0 -3
- package/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.d.ts +1 -1
- package/common/lib/schema/widgets/text/largetext-widget-edit.component.d.ts +1 -1
- package/common/lib/settings/index.d.ts +1 -1
- package/common/lib/settings/settings.provider.d.ts +7 -0
- package/common/lib/settings/settings.service.d.ts +8 -4
- package/common/lib/settings/settings.types.d.ts +2 -3
- package/common/lib/store/common.actions.d.ts +7 -1
- package/common/lib/store/common.effects.d.ts +6 -1
- package/esm2022/common/lib/app/app-startup.service.mjs +40 -0
- package/esm2022/common/lib/app/application.types.mjs +1 -1
- package/esm2022/common/lib/app/index.mjs +2 -1
- package/esm2022/common/lib/common.module.mjs +39 -9
- package/esm2022/common/lib/configs/app.config.mjs +2 -1
- package/esm2022/common/lib/data/dexie-storage.service.mjs +84 -2
- package/esm2022/common/lib/data/entity-data-provider.mjs +1 -1
- package/esm2022/common/lib/data/entity-storage-service.mjs +5 -0
- package/esm2022/common/lib/data/index.mjs +2 -2
- package/esm2022/common/lib/layout/theme/components/slots/index.mjs +1 -2
- package/esm2022/common/lib/layout/theme/store/admin-layout.actions.mjs +1 -2
- package/esm2022/common/lib/layout/theme/store/admin-layout.effects.mjs +6 -14
- package/esm2022/common/lib/layout/theme/store/admin-layout.reducers.mjs +5 -7
- package/esm2022/common/lib/layout/theme/store/admin-layout.selectors.mjs +1 -2
- package/esm2022/common/lib/layout/theme/store/admin-layout.state.mjs +1 -4
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +15 -9
- package/esm2022/common/lib/schema/widgets/common-widget-filter/number-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +38 -11
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +43 -15
- package/esm2022/common/lib/schema/widgets/number/number-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +10 -6
- package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +15 -16
- package/esm2022/common/lib/settings/index.mjs +2 -2
- package/esm2022/common/lib/settings/settings.provider.mjs +35 -0
- package/esm2022/common/lib/settings/settings.service.mjs +36 -6
- package/esm2022/common/lib/settings/settings.types.mjs +1 -1
- package/esm2022/common/lib/store/common.actions.mjs +3 -2
- package/esm2022/common/lib/store/common.effects.mjs +10 -6
- package/esm2022/layout/builder/lib/builder/builder.service.mjs +4 -6
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.directive.mjs +33 -11
- package/esm2022/layout/builder/lib/builder/widget.types.mjs +10 -13
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.mjs +49 -0
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.mjs +53 -0
- package/esm2022/layout/designer/lib/designer/components/add-widget-button/index.mjs +4 -0
- package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +7 -3
- package/esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.mjs +24 -9
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +4 -4
- package/esm2022/layout/designer/lib/designer/index.mjs +3 -3
- package/esm2022/layout/designer/lib/designer/shared/designer-connector.service.mjs +1 -1
- package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +2 -4
- package/esm2022/layout/designer/lib/designer/shared/designer.types.mjs +6 -0
- package/esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.mjs +2 -3
- package/esm2022/layout/designer/lib/property-viewer/widget-property-viewer.component.mjs +3 -3
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +3 -4
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +23 -6
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +45 -9
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -1
- package/esm2022/themes/default/lib/default.module.mjs +7 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +17 -4
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +8 -3
- package/esm2022/themes/shared/index.mjs +3 -1
- package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +44 -20
- package/esm2022/themes/shared/lib/comments/comments.service.mjs +1 -1
- package/esm2022/themes/shared/lib/comments/comments.type.mjs +1 -1
- package/esm2022/themes/shared/lib/components/theme-slot.component.mjs +117 -0
- package/esm2022/themes/shared/lib/services/theme.service.mjs +79 -0
- package/esm2022/themes/shared/lib/shared.module.mjs +14 -8
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +2 -2
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +1 -2
- package/esm2022/widgets/lib/widgets/actions/button/button-widget.config.mjs +3 -2
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.mjs +1 -1
- package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.mjs +35 -23
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-designer.component.mjs +3 -2
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-edit.component.mjs +3 -2
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/color/color-box-widget-view.component.mjs +4 -3
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +33 -32
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget.config.mjs +5 -24
- package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +32 -22
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-edit.component.mjs +5 -4
- package/esm2022/widgets/lib/widgets/editors/number/number-box-widget-view.component.mjs +5 -5
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +23 -11
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.mjs +3 -2
- package/esm2022/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.mjs +68 -28
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +7 -8
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/block/block-widget.config.mjs +3 -2
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.mjs +11 -10
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget.config.mjs +6 -2
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +6 -6
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +5 -4
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +8 -19
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +5 -4
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.mjs +2 -1
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +5 -4
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-designer.component.mjs +95 -9
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/layout/page/page-widget.config.mjs +18 -3
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +10 -10
- package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +18 -11
- package/esm2022/widgets/lib/widgets/layout/text-block/text-block-widget.config.mjs +3 -2
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-CfqY7kKi.mjs → acorex-platform-common-avatar-widget-edit.component-CSSz-dqg.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-CfqY7kKi.mjs.map → acorex-platform-common-avatar-widget-edit.component-CSSz-dqg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-DXC7INdQ.mjs → acorex-platform-common-avatar-widget-view.component-WofmamJK.mjs} +2 -3
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-WofmamJK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-DLGnsXy4.mjs → acorex-platform-common-boolean-widget-filter.component-ByoMpVAs.mjs} +14 -9
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-ByoMpVAs.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-change-password.component-BBPFxmB6.mjs → acorex-platform-common-change-password.component-Djd4SeNv.mjs} +6 -6
- package/fesm2022/{acorex-platform-common-change-password.component-BBPFxmB6.mjs.map → acorex-platform-common-change-password.component-Djd4SeNv.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Ch2bdAjo.mjs → acorex-platform-common-checkbox-widget-column.component-BAK1Wlh_.mjs} +4 -5
- package/fesm2022/{acorex-platform-common-checkbox-widget-column.component-Ch2bdAjo.mjs.map → acorex-platform-common-checkbox-widget-column.component-BAK1Wlh_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-checkbox-widget-edit.component-DOGMfGby.mjs → acorex-platform-common-checkbox-widget-edit.component-C1PgHZsE.mjs} +2 -3
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-C1PgHZsE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-BhGOtblX.mjs → acorex-platform-common-checkbox-widget-view.component-B4BG4mCQ.mjs} +4 -5
- package/fesm2022/{acorex-platform-common-checkbox-widget-view.component-BhGOtblX.mjs.map → acorex-platform-common-checkbox-widget-view.component-B4BG4mCQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-column.component-BkUDt0Kj.mjs → acorex-platform-common-dateTime-widget-column.component-BnW8m1wn.mjs} +2 -3
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BnW8m1wn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DEqsapFH.mjs → acorex-platform-common-dateTime-widget-edit.component-DCYX2iyT.mjs} +5 -5
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DEqsapFH.mjs.map → acorex-platform-common-dateTime-widget-edit.component-DCYX2iyT.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-CqddjYjP.mjs → acorex-platform-common-dateTime-widget-filter.component-Dbxz84tm.mjs} +37 -11
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-Dbxz84tm.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-BKUPKE9M.mjs → acorex-platform-common-dateTime-widget-view.component-Bg1h8xAj.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-dateTime-widget-view.component-BKUPKE9M.mjs.map → acorex-platform-common-dateTime-widget-view.component-Bg1h8xAj.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-column.component-BOer2nZi.mjs → acorex-platform-common-email-widget-column.component-BqRR2jW9.mjs} +2 -3
- package/fesm2022/acorex-platform-common-email-widget-column.component-BqRR2jW9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-BoKsGiEI.mjs → acorex-platform-common-email-widget-edit.component-C7oCyByG.mjs} +5 -5
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-BoKsGiEI.mjs.map → acorex-platform-common-email-widget-edit.component-C7oCyByG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-view.component-BZtK5dMd.mjs → acorex-platform-common-email-widget-view.component-hfVZnW_L.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-email-widget-view.component-BZtK5dMd.mjs.map → acorex-platform-common-email-widget-view.component-hfVZnW_L.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-column.component-DpcUmwAT.mjs → acorex-platform-common-file-widget-column.component-Dt2mR6hJ.mjs} +1 -2
- package/fesm2022/acorex-platform-common-file-widget-column.component-Dt2mR6hJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-CNLXguLn.mjs → acorex-platform-common-file-widget-edit.component-DQol3UN8.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-file-widget-edit.component-CNLXguLn.mjs.map → acorex-platform-common-file-widget-edit.component-DQol3UN8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-Dwt-LYWG.mjs → acorex-platform-common-file-widget-filter.component-CGd1mY-z.mjs} +2 -3
- package/fesm2022/acorex-platform-common-file-widget-filter.component-CGd1mY-z.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-file-widget-view.component-CjDhjHQR.mjs → acorex-platform-common-file-widget-view.component-lKWnGSSb.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-file-widget-view.component-CjDhjHQR.mjs.map → acorex-platform-common-file-widget-view.component-lKWnGSSb.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CzKFKaPH.mjs → acorex-platform-common-gallery-widget-edit.component-DgjY3ZWk.mjs} +6 -6
- package/fesm2022/{acorex-platform-common-gallery-widget-edit.component-CzKFKaPH.mjs.map → acorex-platform-common-gallery-widget-edit.component-DgjY3ZWk.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-B-KxKtY4.mjs → acorex-platform-common-gallery-widget-filter.component-CUw4kxTW.mjs} +2 -3
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-CUw4kxTW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-ca-JB8qW.mjs → acorex-platform-common-gallery-widget-view.component-DK52JTds.mjs} +5 -5
- package/fesm2022/{acorex-platform-common-gallery-widget-view.component-ca-JB8qW.mjs.map → acorex-platform-common-gallery-widget-view.component-DK52JTds.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-CrqPJ58V.mjs → acorex-platform-common-largetext-widget-edit.component-7bbHUOnp.mjs} +16 -18
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-7bbHUOnp.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-BEZNLQZi.mjs → acorex-platform-common-lookup-widget-column.component-PGf5qjC4.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-BEZNLQZi.mjs.map → acorex-platform-common-lookup-widget-column.component-PGf5qjC4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D50jPeKP.mjs → acorex-platform-common-lookup-widget-edit.component-CGZf6rH2.mjs} +2 -3
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CGZf6rH2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-CZHDDnR3.mjs → acorex-platform-common-lookup-widget-filter.component-CUBdIuu9.mjs} +41 -13
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-CUBdIuu9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-view.component-CQCvJxgi.mjs → acorex-platform-common-lookup-widget-view.component-dmGctRc9.mjs} +2 -3
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-dmGctRc9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-edit.component-OanYRQ3B.mjs → acorex-platform-common-map-widget-edit.component-Cyi6AF9u.mjs} +2 -3
- package/fesm2022/acorex-platform-common-map-widget-edit.component-Cyi6AF9u.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-map-widget-view.component-BWdndMYJ.mjs → acorex-platform-common-map-widget-view.component-Cbl1KClC.mjs} +2 -3
- package/fesm2022/acorex-platform-common-map-widget-view.component-Cbl1KClC.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-column.component-BHP6R3OI.mjs → acorex-platform-common-messenger-widget-column.component-BGiTw0jL.mjs} +2 -3
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BGiTw0jL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-B7ycb6tX.mjs → acorex-platform-common-messenger-widget-edit.component-BBSmai_5.mjs} +4 -4
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-BBSmai_5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-Dz5X-FS5.mjs → acorex-platform-common-messenger-widget-view.component-C15KdEZ6.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-messenger-widget-view.component-Dz5X-FS5.mjs.map → acorex-platform-common-messenger-widget-view.component-C15KdEZ6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-number-widget-edit.component-XSWI6466.mjs → acorex-platform-common-number-widget-edit.component-CGmS-gd7.mjs} +5 -6
- package/fesm2022/acorex-platform-common-number-widget-edit.component-CGmS-gd7.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs → acorex-platform-common-number-widget-filter.component-8RC01k_0.mjs} +6 -6
- package/fesm2022/acorex-platform-common-number-widget-filter.component-8RC01k_0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-number-widget-view.component-CP5aboLU.mjs → acorex-platform-common-number-widget-view.component-DGPcZ-yE.mjs} +2 -3
- package/fesm2022/acorex-platform-common-number-widget-view.component-DGPcZ-yE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CGxTbd_S.mjs → acorex-platform-common-password-widget-column.component-O3L2DvZq.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-password-widget-column.component-CGxTbd_S.mjs.map → acorex-platform-common-password-widget-column.component-O3L2DvZq.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-password-widget-edit.component-CHQ_Kp4t.mjs → acorex-platform-common-password-widget-edit.component-DZz6rAL3.mjs} +6 -7
- package/fesm2022/acorex-platform-common-password-widget-edit.component-DZz6rAL3.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BQ9jlt6g.mjs → acorex-platform-common-password-widget-view.component-OxinnOs8.mjs} +3 -3
- package/fesm2022/{acorex-platform-common-password-widget-view.component-BQ9jlt6g.mjs.map → acorex-platform-common-password-widget-view.component-OxinnOs8.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-column.component-RJp6wHul.mjs → acorex-platform-common-phone-widget-column.component-D9AXNMVq.mjs} +2 -3
- package/fesm2022/acorex-platform-common-phone-widget-column.component-D9AXNMVq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BB5wTbjd.mjs → acorex-platform-common-phone-widget-edit.component-CKvODAMQ.mjs} +5 -5
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BB5wTbjd.mjs.map → acorex-platform-common-phone-widget-edit.component-CKvODAMQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-SIzFWfjV.mjs → acorex-platform-common-phone-widget-view.component-Cx-SrpUs.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-phone-widget-view.component-SIzFWfjV.mjs.map → acorex-platform-common-phone-widget-view.component-Cx-SrpUs.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-rich-text-widget-column.component-Ced0WqvI.mjs → acorex-platform-common-rich-text-widget-column.component-C7IqYbqM.mjs} +2 -3
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-C7IqYbqM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs → acorex-platform-common-rich-text-widget-edit.component-DtEcLWte.mjs} +2 -2
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-DtEcLWte.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-rich-text-widget-view.component-BIRyPRtw.mjs → acorex-platform-common-rich-text-widget-view.component-DI4I6wII.mjs} +2 -3
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-DI4I6wII.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-column.component-DxeK2RPc.mjs → acorex-platform-common-selection-list-widget-column.component-CHDTopqW.mjs} +2 -3
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-CHDTopqW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-edit.component-CBLEeILz.mjs → acorex-platform-common-selection-list-widget-edit.component-Ds7Pc22g.mjs} +4 -5
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-Ds7Pc22g.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-B01t7mso.mjs → acorex-platform-common-selection-list-widget-filter.component-D7h2tUqB.mjs} +11 -9
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-D7h2tUqB.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-view.component-QJMp11dd.mjs → acorex-platform-common-selection-list-widget-view.component-DGuotR-q.mjs} +2 -3
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-DGuotR-q.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BQiY7RIp.mjs → acorex-platform-common-signature-pad-widget-edit.component-DPr0hCtB.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-signature-pad-widget-edit.component-BQiY7RIp.mjs.map → acorex-platform-common-signature-pad-widget-edit.component-DPr0hCtB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-signature-pad-widget-view.component-CEhRqgEn.mjs → acorex-platform-common-signature-pad-widget-view.component-CdqZ17tU.mjs} +2 -3
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CdqZ17tU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-string-widget-filter.component--L4PeRCB.mjs → acorex-platform-common-string-widget-filter.component-Ctde9CDD.mjs} +6 -6
- package/fesm2022/acorex-platform-common-string-widget-filter.component-Ctde9CDD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs → acorex-platform-common-text-widget-column.component-BHd_WWKq.mjs} +2 -3
- package/fesm2022/acorex-platform-common-text-widget-column.component-BHd_WWKq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-edit.component-CN7OyTfJ.mjs → acorex-platform-common-text-widget-edit.component-BwfelIOW.mjs} +4 -4
- package/fesm2022/acorex-platform-common-text-widget-edit.component-BwfelIOW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-text-widget-view.component-B-R4-5Ra.mjs → acorex-platform-common-text-widget-view.component-SHWXqKZS.mjs} +2 -3
- package/fesm2022/{acorex-platform-common-text-widget-view.component-B-R4-5Ra.mjs.map → acorex-platform-common-text-widget-view.component-SHWXqKZS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-B5NFRPgX.mjs → acorex-platform-common-toggle-widget-column.component-Dc_Ahdvn.mjs} +4 -5
- package/fesm2022/{acorex-platform-common-toggle-widget-column.component-B5NFRPgX.mjs.map → acorex-platform-common-toggle-widget-column.component-Dc_Ahdvn.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-toggle-widget-edit.component-CLWHwf8V.mjs → acorex-platform-common-toggle-widget-edit.component-BnPyXdAA.mjs} +2 -2
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-BnPyXdAA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Di2S7vub.mjs → acorex-platform-common-toggle-widget-view.component-D14GMwWe.mjs} +4 -5
- package/fesm2022/{acorex-platform-common-toggle-widget-view.component-Di2S7vub.mjs.map → acorex-platform-common-toggle-widget-view.component-D14GMwWe.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +326 -181
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +43 -26
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer-preview.component-CaRHf4x_.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +125 -19
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +67 -15
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-CPGbLM4C.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-CZpEcVi9.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bt4MLEou.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts.mjs +2 -1
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/acorex-platform-mocks.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CNXG0nP4.mjs +294 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CNXG0nP4.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +21 -12
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +239 -26
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs → acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs} +2 -2
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-M_JuDPbt.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-j1jG8pCr.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs → acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs} +35 -23
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CDA7Jwov.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs → acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs} +3 -2
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-DIvi0BtT.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-GTwK51nJ.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs +153 -0
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-BL_EAwUs.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-RCdFIz45.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-Bi9hlpvB.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +286 -220
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/lib/builder/builder.service.d.ts +1 -1
- package/layout/builder/lib/builder/widget-renderer.component.directive.d.ts +5 -1
- package/layout/builder/lib/builder/widget.types.d.ts +4 -4
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.d.ts +8 -0
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +9 -0
- package/layout/designer/lib/designer/components/add-widget-button/index.d.ts +3 -0
- package/layout/designer/lib/designer/components/board/board.component.d.ts +1 -0
- package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +1 -1
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +3 -1
- package/layout/designer/lib/designer/index.d.ts +2 -2
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +1 -1
- package/layout/designer/lib/designer/shared/designer.service.d.ts +2 -2
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -1
- package/package.json +19 -19
- package/themes/default/lib/default.module.d.ts +2 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -1
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -1
- package/themes/shared/README.md +2 -3
- package/themes/shared/index.d.ts +2 -0
- package/themes/shared/lib/comments/comment-list-view.component.d.ts +3 -2
- package/themes/shared/lib/comments/comments.service.d.ts +6 -6
- package/themes/shared/lib/comments/comments.type.d.ts +5 -5
- package/themes/shared/lib/components/theme-slot.component.d.ts +23 -0
- package/themes/shared/lib/services/theme.service.d.ts +21 -0
- package/themes/shared/lib/shared.module.d.ts +6 -4
- package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +1 -3
- package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +1 -0
- package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +2 -0
- package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +0 -2
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +11 -1
- package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +3 -3
- package/common/lib/layout/theme/components/slots/theme-slot.component.d.ts +0 -8
- package/common/lib/settings/settings.loader.d.ts +0 -8
- package/esm2022/common/lib/data/storage-service.mjs +0 -5
- package/esm2022/common/lib/layout/theme/components/slots/theme-slot.component.mjs +0 -48
- package/esm2022/common/lib/settings/settings.loader.mjs +0 -17
- package/esm2022/layout/designer/lib/designer/shared/designer.typs.mjs +0 -6
- package/fesm2022/acorex-platform-common-avatar-widget-view.component-DXC7INdQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-boolean-widget-filter.component-DLGnsXy4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-checkbox-widget-edit.component-DOGMfGby.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-column.component-BkUDt0Kj.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-dateTime-widget-filter.component-CqddjYjP.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-email-widget-column.component-BOer2nZi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-column.component-DpcUmwAT.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-file-widget-filter.component-Dwt-LYWG.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-gallery-widget-filter.component-B-KxKtY4.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-largetext-widget-edit.component-CrqPJ58V.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D50jPeKP.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-filter.component-CZHDDnR3.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-view.component-CQCvJxgi.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-edit.component-OanYRQ3B.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-map-widget-view.component-BWdndMYJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-column.component-BHP6R3OI.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-messenger-widget-edit.component-B7ycb6tX.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-edit.component-XSWI6466.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-filter.component-BOT9wPJ5.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-number-widget-view.component-CP5aboLU.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-password-widget-edit.component-CHQ_Kp4t.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-column.component-RJp6wHul.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-column.component-Ced0WqvI.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-rich-text-widget-view.component-BIRyPRtw.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-column.component-DxeK2RPc.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-edit.component-CBLEeILz.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-filter.component-B01t7mso.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-selection-list-widget-view.component-QJMp11dd.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-signature-pad-widget-view.component-CEhRqgEn.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-string-widget-filter.component--L4PeRCB.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-column.component-ytX4OqZX.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-text-widget-edit.component-CN7OyTfJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-toggle-widget-edit.component-CLWHwf8V.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs +0 -281
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-tPk6Gylo.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-Bb3aXCNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs +0 -67
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-6BMZ0qRw.mjs.map +0 -1
- /package/layout/designer/lib/designer/shared/{designer.typs.d.ts → designer.types.d.ts} +0 -0
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
import { Injectable, inject } from "@angular/core";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { AXP_SETTINGS_PROVIDER } from "./settings.provider";
|
|
3
|
+
import { Subject } from "rxjs";
|
|
4
|
+
import { cloneDeep } from "lodash-es";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class AXPSettingsService {
|
|
6
7
|
constructor() {
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
8
|
+
this.settingsProvider = inject(AXP_SETTINGS_PROVIDER);
|
|
9
|
+
this.settingsCache = new Map();
|
|
10
|
+
this.changed = new Subject();
|
|
11
|
+
}
|
|
12
|
+
async load() {
|
|
13
|
+
try {
|
|
14
|
+
const settingsList = await this.settingsProvider.load();
|
|
15
|
+
this.settingsCache.clear();
|
|
16
|
+
settingsList.forEach(setting => {
|
|
17
|
+
this.settingsCache.set(setting.key, setting.value);
|
|
18
|
+
});
|
|
19
|
+
return settingsList;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error('Error loading settings', error);
|
|
23
|
+
throw error; // Re-throw or handle it appropriately
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
get(key) {
|
|
27
|
+
return cloneDeep(this.settingsCache.get(key));
|
|
28
|
+
}
|
|
29
|
+
async set(key, value) {
|
|
30
|
+
if (this.settingsCache.has(key)) {
|
|
31
|
+
this.settingsCache.set(key, value);
|
|
32
|
+
await this.settingsProvider.set(key, value);
|
|
33
|
+
this.changed.next({ key, value });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.warn(`Setting with key "${key}" not found.`);
|
|
37
|
+
this.settingsCache.set(key, value);
|
|
38
|
+
this.set(key, value);
|
|
39
|
+
}
|
|
10
40
|
}
|
|
11
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12
42
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsService, providedIn: 'root' }); }
|
|
@@ -17,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
17
47
|
providedIn: 'root',
|
|
18
48
|
}]
|
|
19
49
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQXVCLE1BQU0scUJBQXFCLENBQUM7QUFFakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUt0QyxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBS3FCLHFCQUFnQixHQUFHLE1BQU0sQ0FBc0IscUJBQXFCLENBQUMsQ0FBQztRQUMvRSxrQkFBYSxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRWpELFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztLQWlDNUQ7SUE5QkcsS0FBSyxDQUFDLElBQUk7UUFDTixJQUFJLENBQUM7WUFDRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxZQUFZLENBQUM7UUFDeEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE1BQU0sS0FBSyxDQUFDLENBQUMsc0NBQXNDO1FBQ3ZELENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRyxDQUFVLEdBQVc7UUFDcEIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQU0sQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBVSxHQUFXLEVBQUUsS0FBUTtRQUNwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsY0FBYyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDOzhHQXBDUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQX1NFVFRJTkdTX1BST1ZJREVSLCBBWFBTZXR0aW5nc1Byb3ZpZGVyIH0gZnJvbSBcIi4vc2V0dGluZ3MucHJvdmlkZXJcIjtcbmltcG9ydCB7IEFYUFNldHRpbmdWYWx1ZSB9IGZyb20gXCIuL3NldHRpbmdzLnR5cGVzXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ3NTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NQcm92aWRlciA9IGluamVjdDxBWFBTZXR0aW5nc1Byb3ZpZGVyPihBWFBfU0VUVElOR1NfUFJPVklERVIpO1xuICAgIHByaXZhdGUgc2V0dGluZ3NDYWNoZTogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlZCA9IG5ldyBTdWJqZWN0PEFYUFNldHRpbmdWYWx1ZT4oKTtcblxuXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPEFYUFNldHRpbmdWYWx1ZVtdPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzZXR0aW5nc0xpc3QgPSBhd2FpdCB0aGlzLnNldHRpbmdzUHJvdmlkZXIubG9hZCgpO1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0NhY2hlLmNsZWFyKCk7XG4gICAgICAgICAgICBzZXR0aW5nc0xpc3QuZm9yRWFjaChzZXR0aW5nID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzQ2FjaGUuc2V0KHNldHRpbmcua2V5LCBzZXR0aW5nLnZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmdzTGlzdDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgc2V0dGluZ3MnLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUmUtdGhyb3cgb3IgaGFuZGxlIGl0IGFwcHJvcHJpYXRlbHlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldDxUID0gYW55PihrZXk6IHN0cmluZyk6IFQge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKHRoaXMuc2V0dGluZ3NDYWNoZS5nZXQoa2V5KSkgYXMgVDtcbiAgICB9XG5cbiAgICBhc3luYyBzZXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NDYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdzUHJvdmlkZXIuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkLm5leHQoeyBrZXksIHZhbHVlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBTZXR0aW5nIHdpdGgga2V5IFwiJHtrZXl9XCIgbm90IGZvdW5kLmApO1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc0NhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NldHRpbmdzL3NldHRpbmdzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFYUFNldHRpbmdWYWx1ZSB7XG4gICAga2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IGFueSxcbn1cblxuIl19
|
|
@@ -2,5 +2,6 @@ import { createAction, props } from "@ngrx/store";
|
|
|
2
2
|
export const AXPNavigateAction = createAction('[Navigate] Action', props());
|
|
3
3
|
export const AXPSignOutAction = createAction('[SignOut] Action');
|
|
4
4
|
export const AXPSignInAction = createAction('[SignIn] Action');
|
|
5
|
-
export const
|
|
6
|
-
|
|
5
|
+
export const AXPLoadSettingAction = createAction('[App] Load Settings');
|
|
6
|
+
export const AXPLoadSettingSuccessAction = createAction('[App] Load Settings Data Success', props());
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3N0b3JlL2NvbW1vbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQXdFLENBQUMsQ0FBQztBQUNsSixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssRUFBK0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7IEFYUFNldHRpbmdWYWx1ZSB9IGZyb20gXCIuLi9zZXR0aW5nc1wiO1xuXG5leHBvcnQgY29uc3QgQVhQTmF2aWdhdGVBY3Rpb24gPSBjcmVhdGVBY3Rpb24oJ1tOYXZpZ2F0ZV0gQWN0aW9uJywgcHJvcHM8eyBwYXlsb2FkOiB7IGNvbW1hbmRzOiBzdHJpbmcgfCBhbnlbXSwgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyB9IH0+KCkpO1xuZXhwb3J0IGNvbnN0IEFYUFNpZ25PdXRBY3Rpb24gPSBjcmVhdGVBY3Rpb24oJ1tTaWduT3V0XSBBY3Rpb24nKTtcbmV4cG9ydCBjb25zdCBBWFBTaWduSW5BY3Rpb24gPSBjcmVhdGVBY3Rpb24oJ1tTaWduSW5dIEFjdGlvbicpO1xuXG5leHBvcnQgY29uc3QgQVhQTG9hZFNldHRpbmdBY3Rpb24gPSBjcmVhdGVBY3Rpb24oJ1tBcHBdIExvYWQgU2V0dGluZ3MnKTtcbmV4cG9ydCBjb25zdCBBWFBMb2FkU2V0dGluZ1N1Y2Nlc3NBY3Rpb24gPSBjcmVhdGVBY3Rpb24oJ1tBcHBdIExvYWQgU2V0dGluZ3MgRGF0YSBTdWNjZXNzJywgcHJvcHM8eyBkYXRhOiBBWFBTZXR0aW5nVmFsdWVbXSB9PigpKTtcbiJdfQ==
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
2
|
import { Router } from "@angular/router";
|
|
3
3
|
import { Actions, createEffect, ofType } from "@ngrx/effects";
|
|
4
|
-
import { AXPNavigateAction } from "./common.actions";
|
|
5
|
-
import { of, switchMap } from "rxjs";
|
|
4
|
+
import { AXPLoadSettingAction, AXPLoadSettingSuccessAction, AXPNavigateAction } from "./common.actions";
|
|
5
|
+
import { from, map, mergeMap, of, switchMap } from "rxjs";
|
|
6
|
+
import { AXPSettingsService } from "../settings";
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@ngrx/effects";
|
|
8
9
|
import * as i2 from "@angular/router";
|
|
10
|
+
import * as i3 from "../settings";
|
|
9
11
|
export class AXPCommonEffects {
|
|
10
|
-
constructor(actions$, router) {
|
|
12
|
+
constructor(actions$, router, settingService) {
|
|
11
13
|
this.actions$ = actions$;
|
|
12
14
|
this.router = router;
|
|
15
|
+
this.settingService = settingService;
|
|
16
|
+
this.loadInitialData$ = createEffect(() => this.actions$.pipe(ofType(AXPLoadSettingAction), mergeMap(() => from(this.settingService.load()).pipe(map((data) => AXPLoadSettingSuccessAction({ data }))))));
|
|
13
17
|
this.command$ = createEffect(() => this.actions$.pipe(ofType(AXPNavigateAction), switchMap((action) => {
|
|
14
18
|
if (Array.isArray(action.payload.commands))
|
|
15
19
|
this.router.navigate(action.payload.commands, action.payload.extras);
|
|
@@ -22,10 +26,10 @@ export class AXPCommonEffects {
|
|
|
22
26
|
return of();
|
|
23
27
|
})), { dispatch: false });
|
|
24
28
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, deps: [{ token: i1.Actions }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, deps: [{ token: i1.Actions }, { token: i2.Router }, { token: i3.AXPSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
30
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects }); }
|
|
27
31
|
}
|
|
28
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPCommonEffects, decorators: [{
|
|
29
33
|
type: Injectable
|
|
30
|
-
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Router }] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Router }, { type: i3.AXPSettingsService }] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3N0b3JlL2NvbW1vbi5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBR2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0IsUUFBaUIsRUFBVSxNQUFjLEVBQVUsY0FBa0M7UUFBckYsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFJekcscUJBQWdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzVCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDWixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDckQsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUVGLGFBQVEsR0FBRyxZQUFZLENBQ3JCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsaUJBQWlCLENBQUMsRUFDekIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsRSxDQUFDO2dCQUNKLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQzs7b0JBRS9DLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztJQS9CRixDQUFDOzhHQUhVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XG5pbXBvcnQgeyBBWFBMb2FkU2V0dGluZ0FjdGlvbiwgQVhQTG9hZFNldHRpbmdTdWNjZXNzQWN0aW9uLCBBWFBOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gXCIuL2NvbW1vbi5hY3Rpb25zXCI7XG5pbXBvcnQgeyBmcm9tLCBtYXAsIG1lcmdlTWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFYUFNldHRpbmdzU2VydmljZSB9IGZyb20gXCIuLi9zZXR0aW5nc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQQ29tbW9uRWZmZWN0cyB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogQVhQU2V0dGluZ3NTZXJ2aWNlKSB7XG4gIH1cblxuXG4gIGxvYWRJbml0aWFsRGF0YSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQVhQTG9hZFNldHRpbmdBY3Rpb24pLFxuICAgICAgbWVyZ2VNYXAoKCkgPT5cbiAgICAgICAgZnJvbSh0aGlzLnNldHRpbmdTZXJ2aWNlLmxvYWQoKSkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IEFYUExvYWRTZXR0aW5nU3VjY2Vzc0FjdGlvbih7IGRhdGEgfSkpLFxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgKTtcblxuICBjb21tYW5kJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoQVhQTmF2aWdhdGVBY3Rpb24pLFxuICAgICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdGlvbi5wYXlsb2FkLmNvbW1hbmRzKSlcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKGFjdGlvbi5wYXlsb2FkLmNvbW1hbmRzLCBhY3Rpb24ucGF5bG9hZC5leHRyYXMpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkLmNvbW1hbmRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImh0dHBcIikpXG4gICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGFjdGlvbi5wYXlsb2FkLmNvbW1hbmRzLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFthY3Rpb24ucGF5bG9hZC5jb21tYW5kc10sIGFjdGlvbi5wYXlsb2FkLmV4dHJhcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG59XG4iXX0=
|
|
@@ -16,11 +16,9 @@ export class AXPLayoutBuilderService {
|
|
|
16
16
|
this.debouncers = {};
|
|
17
17
|
this.debouncerSubscriptions = {};
|
|
18
18
|
this.widgets = new Map();
|
|
19
|
+
this.context = this.context$.asReadonly();
|
|
19
20
|
}
|
|
20
21
|
;
|
|
21
|
-
get context() {
|
|
22
|
-
return this.context$();
|
|
23
|
-
}
|
|
24
22
|
get variables() {
|
|
25
23
|
return this.variables$();
|
|
26
24
|
}
|
|
@@ -64,7 +62,7 @@ export class AXPLayoutBuilderService {
|
|
|
64
62
|
this.onChanged.next({
|
|
65
63
|
oldValue: oldValue,
|
|
66
64
|
newValue: value,
|
|
67
|
-
data: this.context,
|
|
65
|
+
data: this.context(),
|
|
68
66
|
path,
|
|
69
67
|
init
|
|
70
68
|
});
|
|
@@ -76,7 +74,7 @@ export class AXPLayoutBuilderService {
|
|
|
76
74
|
this.debouncers[path].next({ path, value, init });
|
|
77
75
|
}
|
|
78
76
|
getValue(path) {
|
|
79
|
-
return get(this.context, path);
|
|
77
|
+
return get(this.context(), path);
|
|
80
78
|
}
|
|
81
79
|
registerWidget(id, widget) {
|
|
82
80
|
this.widgets.set(id, widget);
|
|
@@ -100,4 +98,4 @@ export class AXPLayoutBuilderService {
|
|
|
100
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPLayoutBuilderService, decorators: [{
|
|
101
99
|
type: Injectable
|
|
102
100
|
}] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU0zRCxNQUFNLE9BQWdCLGdCQUFnQjtJQUdwQyxHQUFHO1FBQ0QsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDM0IsZUFBVSxHQUFHLE1BQU0sQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUE4QixFQUFFLENBQUMsQ0FBQztRQUV0RCxjQUFTLEdBQW1DLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3pGLGVBQVUsR0FBNEUsRUFBRSxDQUFDO1FBQ3pGLDJCQUFzQixHQUFvQyxFQUFFLENBQUM7UUFFN0QsWUFBTyxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBRS9DLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBOEY3QztJQWhHdUQsQ0FBQztJQUl2RCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FB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O1FBQ25CLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQVUsRUFBRSxNQUF3QjtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUNuRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7UUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7OEdBeEdVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0LCBpc0VxdWFsLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUExheW91dENvbnRleHRFdmVudCB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuXG5leHBvcnQgdHlwZSBBWFBMYXlvdXRFbGVtZW50QVBJID0geyBbbmFtZTogc3RyaW5nXTogU3ViamVjdDxhbnk+IHwgRnVuY3Rpb24gfVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQTGF5b3V0RWxlbWVudCB7XG4gIGFic3RyYWN0IGdldCBpZCgpOiBzdHJpbmcgfCBudWxsO1xuXG4gIGFwaSgpOiBBWFBMYXlvdXRFbGVtZW50QVBJIHtcbiAgICByZXR1cm4ge31cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQkID0gc2lnbmFsPGFueT4oe30pO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhcmlhYmxlcyQgPSBzaWduYWw8YW55Pih7fSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZnVuY3Rpb25zJCA9IHNpZ25hbDx7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH0+KHt9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25DaGFuZ2VkOiBTdWJqZWN0PEFYUExheW91dENvbnRleHRFdmVudD4gPSBuZXcgU3ViamVjdDxBWFBMYXlvdXRDb250ZXh0RXZlbnQ+KCk7XG4gIHByaXZhdGUgZGVib3VuY2VyczogeyBba2V5OiBzdHJpbmddOiBTdWJqZWN0PHsgcGF0aDogc3RyaW5nOyB2YWx1ZTogYW55LCBpbml0OiBib29sZWFuIH0+IH0gPSB7fTtcbiAgcHJpdmF0ZSBkZWJvdW5jZXJTdWJzY3JpcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9ID0ge307XG5cbiAgcHJpdmF0ZSB3aWRnZXRzID0gbmV3IE1hcDxzdHJpbmcsIEFYUExheW91dEVsZW1lbnQ+KCk7O1xuXG4gIHB1YmxpYyBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC5hc1JlYWRvbmx5KCk7XG5cbiAgZ2V0IHZhcmlhYmxlcygpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZXMkKCk7XG4gIH1cblxuICBnZXQgZnVuY3Rpb25zKCk6IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25zJCgpO1xuICB9XG5cbiAgaW5pdGlhbCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jb250ZXh0JC5zZXQodmFsdWUpO1xuICB9XG5cblxuICBzZXRWYXJpYWJsZXMoa2V5c1ZhbHVlczogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgc2V0VmFyaWFibGVzKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDApXG4gICAgICByZXR1cm47XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMSlcbiAgICAgIHRoaXMudmFyaWFibGVzJC5zZXQoYXJnc1swXSk7XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMikge1xuICAgICAgdGhpcy52YXJpYWJsZXMkLnVwZGF0ZSh2ID0+IHNldCh2LCBhcmdzWzBdLCBhcmdzWzFdKSk7XG4gICAgfVxuICB9XG5cblxuICBzZXRGdW5jdGlvbnMoa2V5c1ZhbHVlczogYW55KTogdm9pZDtcbiAgc2V0RnVuY3Rpb25zKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZDtcbiAgc2V0RnVuY3Rpb25zKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDApXG4gICAgICByZXR1cm47XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMSlcbiAgICAgIHRoaXMuZnVuY3Rpb25zJC5zZXQoYXJnc1swXSk7XG4gICAgZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMikge1xuICAgICAgdGhpcy5mdW5jdGlvbnMkLnVwZGF0ZSh2ID0+IHNldCh2LCBhcmdzWzBdLCBhcmdzWzFdKSk7XG4gICAgfVxuICB9XG5cblxuICBzZXRWYWx1ZShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnksIGluaXQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gZ2V0KHRoaXMuY29udGV4dCQoKSwgcGF0aCk7XG4gICAgaWYgKGlzRXF1YWwob2xkVmFsdWUsIHZhbHVlKSlcbiAgICAgIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZGVib3VuY2Vyc1twYXRoXSkge1xuICAgICAgLy8gQ3JlYXRlIGEgbmV3IFN1YmplY3QgZm9yIGRlYm91bmNpbmcgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAgdGhpcy5kZWJvdW5jZXJzW3BhdGhdID0gbmV3IFN1YmplY3Q8eyBwYXRoOiBzdHJpbmc7IHZhbHVlOiBhbnksIGluaXQ6IGJvb2xlYW4gfT4oKTtcblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBzdWJqZWN0IHdpdGggZGVib3VuY2VUaW1lXG4gICAgICB0aGlzLmRlYm91bmNlclN1YnNjcmlwdGlvbnNbcGF0aF0gPVxuICAgICAgICB0aGlzLmRlYm91bmNlcnNbcGF0aF1cbiAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTUwKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh7IHZhbHVlLCBpbml0IH0pID0+IHtcbiAgICAgICAgICAgIC8vIE9ubHkgZW1pdCBvbkNoYW5nZWQgZXZlbnQgYWZ0ZXIgZGVib3VuY2UgdGltZVxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCh7XG4gICAgICAgICAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgICAgICAgICAgbmV3VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmNvbnRleHQoKSxcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgaW5pdFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIGNvbnRleHQgaW1tZWRpYXRlbHlcbiAgICB0aGlzLmNvbnRleHQkLnVwZGF0ZSgoY3R4KSA9PiBzZXQoY2xvbmUoY3R4KSwgcGF0aCwgdmFsdWUpKTtcbiAgICAvLyBFbWl0IHZhbHVlIHRocm91Z2ggdGhlIGRlYm91bmNlciBzdWJqZWN0XG4gICAgdGhpcy5kZWJvdW5jZXJzW3BhdGhdLm5leHQoeyBwYXRoLCB2YWx1ZSwgaW5pdCB9KTtcbiAgfVxuXG4gIGdldFZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBnZXQodGhpcy5jb250ZXh0KCksIHBhdGgpO1xuICB9XG5cbiAgcmVnaXN0ZXJXaWRnZXQoaWQ6IHN0cmluZywgd2lkZ2V0OiBBWFBMYXlvdXRFbGVtZW50KSB7XG4gICAgdGhpcy53aWRnZXRzLnNldChpZCwgd2lkZ2V0KTtcbiAgfVxuXG4gIGdldFdpZGdldChpZDogc3RyaW5nKTogQVhQTGF5b3V0RWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0cy5nZXQoaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZURlYm91bmNlcnMoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5kZWJvdW5jZXJTdWJzY3JpcHRpb25zKS5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICB0aGlzLmRlYm91bmNlclN1YnNjcmlwdGlvbnNbcGF0aF0udW5zdWJzY3JpYmUoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmRlYm91bmNlclN1YnNjcmlwdGlvbnNbcGF0aF07IC8vIENsZWFuIHVwIHRoZSByZWZlcmVuY2VcbiAgICAgIGRlbGV0ZSB0aGlzLmRlYm91bmNlcnNbcGF0aF07IC8vIEFsc28gY2xlYW4gdXAgdGhlIGRlYm91bmNlciBzdWJqZWN0XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRGVib3VuY2VycygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
2
|
-
import { Directive, Injector, ViewContainerRef,
|
|
2
|
+
import { Directive, Injector, ViewContainerRef, inject, input, signal } from '@angular/core';
|
|
3
3
|
import { cloneDeep, get, merge, set, sum } from 'lodash-es';
|
|
4
4
|
import { filter } from 'rxjs';
|
|
5
5
|
import { AXPLayoutBuilderService } from './builder.service';
|
|
@@ -18,11 +18,13 @@ export class AXPWidgetRendererDirective {
|
|
|
18
18
|
this.widgetRegistery = inject(AXPWidgetRegistryService);
|
|
19
19
|
this.unsubscriber = inject(AXUnsubscriber);
|
|
20
20
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
21
|
-
this.isLoading = signal(
|
|
21
|
+
this.isLoading = signal(false);
|
|
22
22
|
this.expressionCache = new Map();
|
|
23
23
|
this.expressionEvaluators = new Map();
|
|
24
24
|
this.scope = null;
|
|
25
|
-
this.builderService.onChanged
|
|
25
|
+
this.builderService.onChanged
|
|
26
|
+
.pipe(this.unsubscriber.takeUntilDestroy)
|
|
27
|
+
.subscribe(async (e) => {
|
|
26
28
|
if ((await this.updateOptionsBasedOnContext()) > 0) {
|
|
27
29
|
this.applyOptions();
|
|
28
30
|
}
|
|
@@ -30,12 +32,31 @@ export class AXPWidgetRendererDirective {
|
|
|
30
32
|
await this.updateValueBasedOnFormula();
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
}
|
|
36
|
+
// Detect input changes
|
|
37
|
+
async ngOnChanges(changes) {
|
|
38
|
+
if (changes['mode'] || changes['node']) {
|
|
39
|
+
// Check if either 'mode' or 'node' has changed
|
|
40
|
+
await this.rerenderComponent();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async rerenderComponent() {
|
|
44
|
+
// Destroy the existing component if it exists
|
|
45
|
+
if (this.componentRef) {
|
|
46
|
+
this.componentRef.destroy();
|
|
47
|
+
}
|
|
48
|
+
this.viewContainerRef.clear();
|
|
49
|
+
// Call loadComponent to create and render the component
|
|
50
|
+
await this.loadComponent();
|
|
51
|
+
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
if (this.componentRef) {
|
|
54
|
+
this.componentRef.destroy();
|
|
55
|
+
}
|
|
37
56
|
}
|
|
38
57
|
async loadComponent() {
|
|
58
|
+
if (this.isLoading())
|
|
59
|
+
return;
|
|
39
60
|
this.isLoading.set(true);
|
|
40
61
|
this.viewContainerRef.clear();
|
|
41
62
|
const widget = this.widgetRegistery.resolve(this.node().type);
|
|
@@ -66,8 +87,9 @@ export class AXPWidgetRendererDirective {
|
|
|
66
87
|
],
|
|
67
88
|
});
|
|
68
89
|
//
|
|
69
|
-
|
|
70
|
-
this.
|
|
90
|
+
const com = await widget?.components[this.mode()]?.component();
|
|
91
|
+
this.componentRef = this.viewContainerRef.createComponent(com, { injector: token });
|
|
92
|
+
this.instance = this.componentRef.instance;
|
|
71
93
|
this.instance.parent = this.parentNode();
|
|
72
94
|
this.instance.index = this.index();
|
|
73
95
|
this.instance.mode = this.mode();
|
|
@@ -264,7 +286,7 @@ export class AXPWidgetRendererDirective {
|
|
|
264
286
|
{
|
|
265
287
|
provide: AXUnsubscriber,
|
|
266
288
|
},
|
|
267
|
-
], ngImport: i0 }); }
|
|
289
|
+
], usesOnChanges: true, ngImport: i0 }); }
|
|
268
290
|
}
|
|
269
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPWidgetRendererDirective, decorators: [{
|
|
270
292
|
type: Directive,
|
|
@@ -277,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
277
299
|
],
|
|
278
300
|
}]
|
|
279
301
|
}], ctorParameters: () => [] });
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtcmVuZGVyZXIuY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBOEUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFXOUgsTUFBTSxPQUFPLDBCQUEwQjtJQXdCckM7UUFyQkEsZUFBVSxHQUFHLEtBQUssRUFBNkIsQ0FBQztRQUVoRCxVQUFLLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBRS9CLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO1FBQzdDLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRTdCLGtCQUFhLEdBQXdCLE1BQU0sQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUV2RCxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLG1CQUFj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QyxpQ0FBaUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEMsc0RBQXNEO1lBQ3RELE1BQU0sS0FBSyxHQUFRLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLFVBQVUsSUFBSSxDQUFDLENBQUM7WUFDekUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQzs4R0FsUlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsbWlCQU4xQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2FBQ3hCO1NBQ0Y7OzJGQUVVLDBCQUEwQjtrQkFSdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGNBQWM7eUJBQ3hCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVmlld0NvbnRhaW5lclJlZiwgV3JpdGFibGVTaWduYWwsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgbWVyZ2UsIHNldCwgc3VtIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldE5vZGVUb2tlbiwgQVhQV2lkZ2V0UmVuZGVyTW9kZSwgQVhQX1dJREdFVF9UT0tFTiB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwLXdpZGdldC1yZW5kZXJlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFVuc3Vic2NyaWJlcixcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZSB7XG5cblxuICBwYXJlbnROb2RlID0gaW5wdXQ8QVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbD4oKTtcblxuICBpbmRleCA9IGlucHV0PG51bWJlciB8IG51bGw+KCk7XG5cbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldFJlbmRlck1vZGU+KCk7XG4gIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByb3RlY3RlZCBtZXJnZWRPcHRpb25zOiBXcml0YWJsZVNpZ25hbDxhbnk+ID0gc2lnbmFsPGFueT4oe30pO1xuXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSBpbnN0YW5jZSE6IEFYUFdpZGdldENvbXBvbmVudDtcbiAgcHJpdmF0ZSBleHByZXNzaW9uQ2FjaGU6IE1hcDxzdHJpbmcsICgpID0+IFByb21pc2U8YW55Pj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvcnM6IE1hcDxzdHJpbmcsICgpID0+IFByb21pc2U8YW55Pj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgc2NvcGU6IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5idWlsZGVyU2VydmljZS5vbkNoYW5nZWQucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoYXN5bmMgKGUpID0+IHtcbiAgICAgIGlmICgoYXdhaXQgdGhpcy51cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKSkgPiAwKSB7XG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaGVja0Zvcm11bGFGb3JVcGRhdGUodGhpcy5ub2RlKCkuZm9ybXVsYSwgZS5wYXRoKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVZhbHVlQmFzZWRPbkZvcm11bGEoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIGVmZmVjdChcbiAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZENvbXBvbmVudCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy53aWRnZXRSZWdpc3RlcnkucmVzb2x2ZSh0aGlzLm5vZGUoKS50eXBlKTtcbiAgICAvL1xuICAgIGNvbnN0IHByb3BzID0gd2lkZ2V0Py5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8ucHJvcGVydGllc1xuICAgICAgPy5maWx0ZXIoKGMpID0+IGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSlcbiAgICAgIC5tYXAoKGMpID0+ICh7IFtjLm5hbWVdOiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgfSkpXG4gICAgICAucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCAuLi5jdXJyIH07XG4gICAgICB9LCB7fSk7XG4gICAgLy9cbiAgICB0aGlzLm1lcmdlZE9wdGlvbnMuc2V0KG1lcmdlKHByb3BzLCB0aGlzLm5vZGUoKS5vcHRpb25zKSB8fCB7fSk7XG4gICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMoY2xvbmVEZWVwKHRoaXMubm9kZSgpLm9wdGlvbnMpKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpO1xuICAgIC8vXG4gICAgY29uc3QgdG9rZW5WYWx1ZSA9IHtcbiAgICAgIG5vZGU6IHRoaXMubm9kZSgpLFxuICAgICAgb3B0aW9uczogdGhpcy5tZXJnZWRPcHRpb25zKCksXG4gICAgICBjb25maWc6IHdpZGdldCxcbiAgICB9IGFzIEFYUFdpZGdldE5vZGVUb2tlbjtcbiAgICBjb25zdCB0b2tlbiA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9XSURHRVRfVE9LRU4sXG4gICAgICAgICAgdXNlVmFsdWU6IHRva2VuVmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIC8vXG4gICAgdmFyIGNvbSA9IGF3YWl0IHdpZGdldD8uY29tcG9uZW50c1t0aGlzLm1vZGUoKV0/LmNvbXBvbmVudCgpO1xuICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFYUFdpZGdldENvbXBvbmVudDxhbnk+Pihjb20sIHsgaW5qZWN0b3I6IHRva2VuIH0pLmluc3RhbmNlO1xuICAgIHRoaXMuaW5zdGFuY2UucGFyZW50ID0gdGhpcy5wYXJlbnROb2RlKCk7XG4gICAgdGhpcy5pbnN0YW5jZS5pbmRleCA9IHRoaXMuaW5kZXgoKTtcbiAgICB0aGlzLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGUoKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVZhbHVlQmFzZWRPbkZvcm11bGEoKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblRyaWdnZXJzKCk7XG4gICAgLy9cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseU9wdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmluc3RhbmNlKSByZXR1cm47XG4gICAgdGhpcy5pbnN0YW5jZS5zZXRPcHRpb25zKHRoaXMubWVyZ2VkT3B0aW9ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JtdWxhRm9yVXBkYXRlKGZvcm11bGE6IHN0cmluZyB8IHVuZGVmaW5lZCwgcGF0aD86IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoZm9ybXVsYSkge1xuICAgICAgY29uc3QgcmVnZXggPSAvY29udGV4dFxcLmV2YWxcXCgnKFteJ10rKSdcXCkvZztcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBmb3JtdWxhLm1hdGNoKHJlZ2V4KTtcbiAgICAgIGNvbnN0IG5vZGVzID0gbWF0Y2hlcyA/IG1hdGNoZXMubWFwKChtYXRjaDogYW55KSA9PiBtYXRjaC5tYXRjaCgvJyhbXiddKyknLylbMV0pIDogW107XG4gICAgICByZXR1cm4gbm9kZXMuaW5jbHVkZXMocGF0aCk7XG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyhvYmo6IGFueSwgcGF0aFByZWZpeDogc3RyaW5nID0gJycpOiB2b2lkIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuO1xuICAgIE9iamVjdC5lbnRyaWVzKG9iaikuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGhQcmVmaXggPyBgJHtwYXRoUHJlZml4fS4ke2tleX1gIDoga2V5O1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5jbHVkZXMoJ3t7JykpIHtcbiAgICAgICAgLy8gQ2FjaGUgZHluYW1pYyBleHByZXNzaW9uIGZvciBsYXRlciBldmFsdWF0aW9uXG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvcnMuc2V0KGN1cnJlbnRQYXRoLCAoKSA9PiB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbih2YWx1ZSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICh2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0IHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBoYW5kbGUgbmVzdGVkIG9iamVjdHNcbiAgICAgICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnModmFsdWUsIGN1cnJlbnRQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHN0YXRpYyB2YWx1ZXMgZGlyZWN0bHlcbiAgICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnVwZGF0ZSgoY3VycmVudE9wdGlvbnMpID0+IHtcbiAgICAgICAgICByZXR1cm4gc2V0KGN1cnJlbnRPcHRpb25zLCBjdXJyZW50UGF0aCwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU9wdGlvbnNCYXNlZE9uQ29udGV4dCgpIHtcbiAgICBjb25zdCB1cGRhdGVzOiBhbnlbXSA9IFtdO1xuICAgIGZvciAobGV0IFtwYXRoLCBldmFsdWF0b3JdIG9mIHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvcnMpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXdhaXQgZXZhbHVhdG9yKCk7XG4gICAgICB1cGRhdGVzLnB1c2goeyBwYXRoLCBuZXdWYWx1ZSB9KTtcbiAgICB9XG4gICAgLy8gQXBwbHkgdXBkYXRlcyB0byBtZXJnZWRPcHRpb25zXG4gICAgaWYgKHVwZGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5tZXJnZWRPcHRpb25zLnVwZGF0ZSgobykgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkT3B0aW9ucyA9IHsgLi4ubyB9O1xuICAgICAgICB1cGRhdGVzLmZvckVhY2goKHsgcGF0aCwgbmV3VmFsdWUgfSkgPT4ge1xuICAgICAgICAgIC8vIFNldCB0aGUgbmV3IHZhbHVlIGluIHRoZSB1cGRhdGVkT3B0aW9ucyBvYmplY3QgYnkgcGF0aFxuICAgICAgICAgIHNldCh1cGRhdGVkT3B0aW9ucywgcGF0aCwgbmV3VmFsdWUpOyAvLyBBc3N1bWluZyAnc2V0JyBjYW4gaGFuZGxlIHBhdGhzIGxpa2UgJ3Byb3BlcnR5LnN1YnByb3BlcnR5J1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRPcHRpb25zO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1cGRhdGVzLmxlbmd0aDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVZhbHVlQmFzZWRPbkZvcm11bGEoKSB7XG4gICAgaWYgKHRoaXMubm9kZSgpLmZvcm11bGEpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odGhpcy5ub2RlKCkuZm9ybXVsYSEpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUV4cHJlc3Npb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBjYWNoZSBmaXJzdCwgYnV0IGNhY2hlIHRoZSBmdW5jdGlvbiBmb3IgZXZhbHVhdGlvbiwgbm90IHRoZSBldmFsdWF0ZWQgdmFsdWVcbiAgICAgIGlmICghdGhpcy5leHByZXNzaW9uQ2FjaGUuaGFzKHRlbXBsYXRlRXhwcmVzc2lvbikpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbk1hdGNoID0gdGVtcGxhdGVFeHByZXNzaW9uLm1hdGNoKC9cXHtcXHtcXHMqKC4qPylcXHMqXFx9XFx9Lyk7XG4gICAgICAgIGlmICghZXhwcmVzc2lvbk1hdGNoKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHZhbGlkIGV4cHJlc3Npb24gZm91bmQgaW4gXCIke3RlbXBsYXRlRXhwcmVzc2lvbn1cImApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBleHByZXNzaW9uTWF0Y2hbMV07XG5cbiAgICAgICAgLy8gQ2FjaGUgdGhlIGV2YWx1YXRpb24gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVzdWx0XG4gICAgICAgIGNvbnN0IHNjb3BlID0gdGhpcy5nZXRHbG9iYWxTY29wZSgpO1xuICAgICAgICBjb25zdCBldmFsdWF0aW9uRnVuY3Rpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2FuZGJveCA9IG5ldyBGdW5jdGlvbignc2NvcGUnLCBgd2l0aCAoc2NvcGUpIHsgcmV0dXJuIChhc3luYyBmdW5jdGlvbigpIHsgcmV0dXJuICR7ZXhwcmVzc2lvbn07IH0pKCk7IH1gKTtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uQ2FjaGUuc2V0KHRlbXBsYXRlRXhwcmVzc2lvbiwgZXZhbHVhdGlvbkZ1bmN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmV0cmlldmUgdGhlIGZ1bmN0aW9uIGZyb20gdGhlIGNhY2hlIGFuZCBjYWxsIGl0IHRvIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uXG4gICAgICBjb25zdCBldmFsdWF0ZSA9IHRoaXMuZXhwcmVzc2lvbkNhY2hlLmdldCh0ZW1wbGF0ZUV4cHJlc3Npb24pO1xuICAgICAgaWYgKGV2YWx1YXRlKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBFcnJvcihgRmFpbGVkIHRvIHJldHJpZXZlIGV2YWx1YXRpb24gZnVuY3Rpb24gZm9yIGV4cHJlc3Npb246IFwiJHt0ZW1wbGF0ZUV4cHJlc3Npb259XCJgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEdsb2JhbFNjb3BlKCkge1xuICAgIGlmICh0aGlzLnNjb3BlKSByZXR1cm4gdGhpcy5zY29wZTtcbiAgICB0aGlzLnNjb3BlID0ge307XG4gICAgc2V0KHRoaXMuc2NvcGUsICdjb250ZXh0JywgdGhpcy5nZXRDb250ZXh0U2NvcGUoKSk7XG4gICAgc2V0KHRoaXMuc2NvcGUsICdldmVudHMnLCB0aGlzLmdldEV2ZW50U2NvcGUoKSk7XG4gICAgc2V0KHRoaXMuc2NvcGUsICd3aWRnZXQnLCB0aGlzLmdldFdpZGdldFNjb3BlKCkpO1xuICAgIHNldCh0aGlzLnNjb3BlLCAnbWV0aG9kcycsIHRoaXMuZ2V0RnVuY3Rpb25TY29wZSgpKTtcbiAgICBzZXQodGhpcy5zY29wZSwgJ3ZhcnMnLCB0aGlzLmdldFZhcmlhYmxlc1Njb3BlKCkpO1xuICAgIHJldHVybiB0aGlzLnNjb3BlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0U2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgc2V0KHNjb3BlLCAnZXZhbCcsIChwYXRoOiBzdHJpbmcpID0+IHRoaXMuYnVpbGRlclNlcnZpY2UuZ2V0VmFsdWUocGF0aCkpO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRTY29wZSgpOiBhbnkge1xuICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB7fTtcbiAgICBzZXQoc2NvcGUsICdjb250ZXh0JywgKHBhdGg6IHN0cmluZykgPT4gdGhpcy5idWlsZGVyU2VydmljZS5vbkNoYW5nZWQucGlwZShmaWx0ZXIoKGMpID0+IGMucGF0aCA9PSBwYXRoKSkpO1xuICAgIHNldChzY29wZSwgJ2Zyb20nLCAoZXZlbnQ6IHN0cmluZykgPT4gZ2V0KHRoaXMuaW5zdGFuY2UuYXBpKCksIGV2ZW50KSk7XG4gICAgcmV0dXJuIHNjb3BlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRXaWRnZXRTY29wZSgpOiBhbnkge1xuICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB7fTtcbiAgICBzZXQoc2NvcGUsICdjYWxsJywgKG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuY2FsbChuYW1lLCAuLi5hcmdzKTtcbiAgICB9KTtcbiAgICBzZXQoc2NvcGUsICdmaW5kJywgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkZXJTZXJ2aWNlLmdldFdpZGdldChpZCk/LmFwaSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RnVuY3Rpb25TY29wZSgpOiBhbnkge1xuICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB7fTtcbiAgICBzZXQoc2NvcGUsICdzdW0nLCAodmFsdWVzOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBzdW0odmFsdWVzKTtcbiAgICB9KTtcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmJ1aWxkZXJTZXJ2aWNlLmZ1bmN0aW9ucykuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgc2V0KHNjb3BlLCBpWzBdLCAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgcmV0dXJuIGlbMV0oLi4uYXJncyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhYmxlc1Njb3BlKCk6IGFueSB7XG4gICAgY29uc3Qgc2NvcGU6IGFueSA9IHt9O1xuICAgIHNldChzY29wZSwgJ2V2YWwnLCAocGF0aDogc3RyaW5nKSA9PiBnZXQodGhpcy5idWlsZGVyU2VydmljZS52YXJpYWJsZXMsIHBhdGgpKTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFzc2lnblRyaWdnZXJzKCkge1xuICAgIHRoaXMubm9kZSgpLnRyaWdnZXJzPy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHRoaXMuZXZhbHVhdGVUcmlnZ2VyKHQuZXZlbnQpO1xuICAgICAgZXZlbnQ/LnBpcGUodGhpcy51bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMuZXZhbHVhdGVBY3Rpb24odC5hY3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlVHJpZ2dlcih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uTWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL1xce1xce1xccyooLio/KVxccypcXH1cXH0vKTtcbiAgICAgIGlmICghZXhwcmVzc2lvbk1hdGNoKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBObyB2YWxpZCBleHByZXNzaW9uIGZvdW5kIGluIFwiJHt0ZW1wbGF0ZUV4cHJlc3Npb259XCJgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBleHByZXNzaW9uTWF0Y2hbMV07XG5cbiAgICAgIC8vIENhY2hlIHRoZSBldmFsdWF0aW9uIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIHJlc3VsdFxuICAgICAgY29uc3Qgc2NvcGUgPSB0aGlzLmdldEdsb2JhbFNjb3BlKCk7XG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKCAgZnVuY3Rpb24oKSB7IHJldHVybiAke2V4cHJlc3Npb259OyB9KSgpOyB9YCk7XG4gICAgICByZXR1cm4gc2FuZGJveChzY29wZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZXhwcmVzc2lvbjonLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlQWN0aW9uKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25NYXRjaCA9IHRlbXBsYXRlRXhwcmVzc2lvbi5tYXRjaCgvXFx7XFx7XFxzKiguKj8pXFxzKlxcfVxcfS8pO1xuICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHZhbGlkIGV4cHJlc3Npb24gZm91bmQgaW4gXCIke3RlbXBsYXRlRXhwcmVzc2lvbn1cImApO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcblxuICAgICAgLy8gQ2FjaGUgdGhlIGV2YWx1YXRpb24gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVzdWx0XG4gICAgICBjb25zdCBzY29wZTogYW55ID0gdGhpcy5nZXRHbG9iYWxTY29wZSgpO1xuICAgICAgY29uc3Qgc2FuZGJveCA9IG5ldyBGdW5jdGlvbignc2NvcGUnLCBgd2l0aCAoc2NvcGUpIHsgICR7ZXhwcmVzc2lvbn0gfWApO1xuICAgICAgc2FuZGJveChzY29wZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV2YWx1YXRpbmcgZXhwcmVzc2lvbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlbmRlcmVyLmNvbXBvbmVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9idWlsZGVyL3NyYy9saWIvYnVpbGRlci93aWRnZXQtcmVuZGVyZXIuY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFnQixTQUFTLEVBQUUsUUFBUSxFQUFpQixnQkFBZ0IsRUFBMEIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUQsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQThFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVzlILE1BQU0sT0FBTywwQkFBMEI7SUF5QnJDO1FBdEJBLGVBQVUsR0FBRyxLQUFLLEVBQTZCLENBQUM7UUFFaEQsVUFBSyxHQUFHLEtBQUssRUFBaUIsQ0FBQztRQUUvQixTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUM3QyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUIsQ0FBQztRQUU3QixrQkFBYSxHQUF3QixNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFdkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixtQkFBYyxHQUFHLE1B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RkFFVSwwQkFBMEI7a0JBUnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxjQUFjO3lCQUN4QjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgRGlyZWN0aXZlLCBJbmplY3RvciwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiwgV3JpdGFibGVTaWduYWwsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgbWVyZ2UsIHNldCwgc3VtIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldE5vZGVUb2tlbiwgQVhQV2lkZ2V0UmVuZGVyTW9kZSwgQVhQX1dJREdFVF9UT0tFTiB9IGZyb20gJy4vd2lkZ2V0LnR5cGVzJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwLXdpZGdldC1yZW5kZXJlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFVuc3Vic2NyaWJlcixcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXaWRnZXRSZW5kZXJlckRpcmVjdGl2ZSB7XG5cblxuICBwYXJlbnROb2RlID0gaW5wdXQ8QVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbD4oKTtcblxuICBpbmRleCA9IGlucHV0PG51bWJlciB8IG51bGw+KCk7XG5cbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldFJlbmRlck1vZGU+KCk7XG4gIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByb3RlY3RlZCBtZXJnZWRPcHRpb25zOiBXcml0YWJsZVNpZ25hbDxhbnk+ID0gc2lnbmFsPGFueT4oe30pO1xuXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgd2lkZ2V0UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgaW5zdGFuY2UhOiBBWFBXaWRnZXRDb21wb25lbnQ7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkNhY2hlOiBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPGFueT4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGV4cHJlc3Npb25FdmFsdWF0b3JzOiBNYXA8c3RyaW5nLCAoKSA9PiBQcm9taXNlPGFueT4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHNjb3BlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5idWlsZGVyU2VydmljZS5vbkNoYW5nZWRcbiAgICAgIC5waXBlKHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChlKSA9PiB7XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy51cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKSkgPiAwKSB7XG4gICAgICAgICAgdGhpcy5hcHBseU9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jaGVja0Zvcm11bGFGb3JVcGRhdGUodGhpcy5ub2RlKCkuZm9ybXVsYSwgZS5wYXRoKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIERldGVjdCBpbnB1dCBjaGFuZ2VzXG4gIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddIHx8IGNoYW5nZXNbJ25vZGUnXSkge1xuICAgICAgLy8gQ2hlY2sgaWYgZWl0aGVyICdtb2RlJyBvciAnbm9kZScgaGFzIGNoYW5nZWRcbiAgICAgIGF3YWl0IHRoaXMucmVyZW5kZXJDb21wb25lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcmVuZGVyQ29tcG9uZW50KCkge1xuICAgIC8vIERlc3Ryb3kgdGhlIGV4aXN0aW5nIGNvbXBvbmVudCBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKClcblxuICAgIC8vIENhbGwgbG9hZENvbXBvbmVudCB0byBjcmVhdGUgYW5kIHJlbmRlciB0aGUgY29tcG9uZW50XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDb21wb25lbnQoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKCkpXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5LnJlc29sdmUodGhpcy5ub2RlKCkudHlwZSk7XG4gICAgLy9cbiAgICBjb25zdCBwcm9wcyA9IHdpZGdldD8uY29tcG9uZW50c1t0aGlzLm1vZGUoKV0/LnByb3BlcnRpZXNcbiAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUpXG4gICAgICAubWFwKChjKSA9PiAoeyBbYy5uYW1lXTogYy5zY2hlbWEuZGVmYXVsdFZhbHVlIH0pKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgLi4uY3VyciB9O1xuICAgICAgfSwge30pO1xuICAgIC8vXG4gICAgdGhpcy5tZXJnZWRPcHRpb25zLnNldChtZXJnZShwcm9wcywgdGhpcy5ub2RlKCkub3B0aW9ucykgfHwge30pO1xuICAgIHRoaXMucHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKGNsb25lRGVlcCh0aGlzLm5vZGUoKS5vcHRpb25zKSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVPcHRpb25zQmFzZWRPbkNvbnRleHQoKTtcbiAgICAvL1xuICAgIGNvbnN0IHRva2VuVmFsdWUgPSB7XG4gICAgICBub2RlOiB0aGlzLm5vZGUoKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgICAgY29uZmlnOiB3aWRnZXQsXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlVG9rZW47XG4gICAgY29uc3QgdG9rZW4gPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX1RPS0VOLFxuICAgICAgICAgIHVzZVZhbHVlOiB0b2tlblZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICAvL1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHdpZGdldD8uY29tcG9uZW50c1t0aGlzLm1vZGUoKV0/LmNvbXBvbmVudCgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxBWFBXaWRnZXRDb21wb25lbnQ8YW55Pj4oY29tLCB7IGluamVjdG9yOiB0b2tlbiB9KTtcbiAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgdGhpcy5pbnN0YW5jZS5wYXJlbnQgPSB0aGlzLnBhcmVudE5vZGUoKTtcbiAgICB0aGlzLmluc3RhbmNlLmluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgIHRoaXMuaW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpO1xuICAgIGF3YWl0IHRoaXMuYXNzaWduVHJpZ2dlcnMoKTtcbiAgICAvL1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5T3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcbiAgICB0aGlzLmluc3RhbmNlLnNldE9wdGlvbnModGhpcy5tZXJnZWRPcHRpb25zKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0Zvcm11bGFGb3JVcGRhdGUoZm9ybXVsYTogc3RyaW5nIHwgdW5kZWZpbmVkLCBwYXRoPzogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmIChmb3JtdWxhKSB7XG4gICAgICBjb25zdCByZWdleCA9IC9jb250ZXh0XFwuZXZhbFxcKCcoW14nXSspJ1xcKS9nO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGZvcm11bGEubWF0Y2gocmVnZXgpO1xuICAgICAgY29uc3Qgbm9kZXMgPSBtYXRjaGVzID8gbWF0Y2hlcy5tYXAoKG1hdGNoOiBhbnkpID0+IG1hdGNoLm1hdGNoKC8nKFteJ10rKScvKVsxXSkgOiBbXTtcbiAgICAgIHJldHVybiBub2Rlcy5pbmNsdWRlcyhwYXRoKTtcbiAgICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKG9iajogYW55LCBwYXRoUHJlZml4OiBzdHJpbmcgPSAnJyk6IHZvaWQge1xuICAgIGlmICghb2JqKSByZXR1cm47XG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGF0aFByZWZpeCA/IGAke3BhdGhQcmVmaXh9LiR7a2V5fWAgOiBrZXk7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5pbmNsdWRlcygne3snKSkge1xuICAgICAgICAvLyBDYWNoZSBkeW5hbWljIGV4cHJlc3Npb24gZm9yIGxhdGVyIGV2YWx1YXRpb25cbiAgICAgICAgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycy5zZXQoY3VycmVudFBhdGgsICgpID0+IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9uKHZhbHVlKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgKHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3QgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpKSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGhhbmRsZSBuZXN0ZWQgb2JqZWN0c1xuICAgICAgICB0aGlzLnByZXByb2Nlc3NBbmRJbml0aWFsT3B0aW9ucyh2YWx1ZSwgY3VycmVudFBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQXBwbHkgc3RhdGljIHZhbHVlcyBkaXJlY3RseVxuICAgICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChjdXJyZW50T3B0aW9ucykgPT4ge1xuICAgICAgICAgIHJldHVybiBzZXQoY3VycmVudE9wdGlvbnMsIGN1cnJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT3B0aW9uc0Jhc2VkT25Db250ZXh0KCkge1xuICAgIGNvbnN0IHVwZGF0ZXM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgW3BhdGgsIGV2YWx1YXRvcl0gb2YgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9ycykge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBhd2FpdCBldmFsdWF0b3IoKTtcbiAgICAgIHVwZGF0ZXMucHVzaCh7IHBhdGgsIG5ld1ZhbHVlIH0pO1xuICAgIH1cbiAgICAvLyBBcHBseSB1cGRhdGVzIHRvIG1lcmdlZE9wdGlvbnNcbiAgICBpZiAodXBkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm1lcmdlZE9wdGlvbnMudXBkYXRlKChvKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0geyAuLi5vIH07XG4gICAgICAgIHVwZGF0ZXMuZm9yRWFjaCgoeyBwYXRoLCBuZXdWYWx1ZSB9KSA9PiB7XG4gICAgICAgICAgLy8gU2V0IHRoZSBuZXcgdmFsdWUgaW4gdGhlIHVwZGF0ZWRPcHRpb25zIG9iamVjdCBieSBwYXRoXG4gICAgICAgICAgc2V0KHVwZGF0ZWRPcHRpb25zLCBwYXRoLCBuZXdWYWx1ZSk7IC8vIEFzc3VtaW5nICdzZXQnIGNhbiBoYW5kbGUgcGF0aHMgbGlrZSAncHJvcGVydHkuc3VicHJvcGVydHknXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdXBkYXRlZE9wdGlvbnM7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVwZGF0ZXMubGVuZ3RoO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVmFsdWVCYXNlZE9uRm9ybXVsYSgpIHtcbiAgICBpZiAodGhpcy5ub2RlKCkuZm9ybXVsYSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLm5vZGUoKS5mb3JtdWxhISk7XG4gICAgICB0aGlzLmluc3RhbmNlLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0LCBidXQgY2FjaGUgdGhlIGZ1bmN0aW9uIGZvciBldmFsdWF0aW9uLCBub3QgdGhlIGV2YWx1YXRlZCB2YWx1ZVxuICAgICAgaWYgKCF0aGlzLmV4cHJlc3Npb25DYWNoZS5oYXModGVtcGxhdGVFeHByZXNzaW9uKSkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uTWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL1xce1xce1xccyooLio/KVxccypcXH1cXH0vKTtcbiAgICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcblxuICAgICAgICAvLyBDYWNoZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZXN1bHRcbiAgICAgICAgY29uc3Qgc2NvcGUgPSB0aGlzLmdldEdsb2JhbFNjb3BlKCk7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb25GdW5jdGlvbiA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSkoKTsgfWApO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBzYW5kYm94KHNjb3BlKTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25DYWNoZS5zZXQodGVtcGxhdGVFeHByZXNzaW9uLCBldmFsdWF0aW9uRnVuY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXRyaWV2ZSB0aGUgZnVuY3Rpb24gZnJvbSB0aGUgY2FjaGUgYW5kIGNhbGwgaXQgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb25cbiAgICAgIGNvbnN0IGV2YWx1YXRlID0gdGhpcy5leHByZXNzaW9uQ2FjaGUuZ2V0KHRlbXBsYXRlRXhwcmVzc2lvbik7XG4gICAgICBpZiAoZXZhbHVhdGUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IEVycm9yKGBGYWlsZWQgdG8gcmV0cmlldmUgZXZhbHVhdGlvbiBmdW5jdGlvbiBmb3IgZXhwcmVzc2lvbjogXCIke3RlbXBsYXRlRXhwcmVzc2lvbn1cImApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBldmFsdWF0aW5nIGV4cHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0R2xvYmFsU2NvcGUoKSB7XG4gICAgaWYgKHRoaXMuc2NvcGUpIHJldHVybiB0aGlzLnNjb3BlO1xuICAgIHRoaXMuc2NvcGUgPSB7fTtcbiAgICBzZXQodGhpcy5zY29wZSwgJ2NvbnRleHQnLCB0aGlzLmdldENvbnRleHRTY29wZSgpKTtcbiAgICBzZXQodGhpcy5zY29wZSwgJ2V2ZW50cycsIHRoaXMuZ2V0RXZlbnRTY29wZSgpKTtcbiAgICBzZXQodGhpcy5zY29wZSwgJ3dpZGdldCcsIHRoaXMuZ2V0V2lkZ2V0U2NvcGUoKSk7XG4gICAgc2V0KHRoaXMuc2NvcGUsICdtZXRob2RzJywgdGhpcy5nZXRGdW5jdGlvblNjb3BlKCkpO1xuICAgIHNldCh0aGlzLnNjb3BlLCAndmFycycsIHRoaXMuZ2V0VmFyaWFibGVzU2NvcGUoKSk7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHRTY29wZSgpOiBhbnkge1xuICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB7fTtcbiAgICBzZXQoc2NvcGUsICdldmFsJywgKHBhdGg6IHN0cmluZykgPT4gdGhpcy5idWlsZGVyU2VydmljZS5nZXRWYWx1ZShwYXRoKSk7XG4gICAgcmV0dXJuIHNjb3BlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudFNjb3BlKCk6IGFueSB7XG4gICAgY29uc3Qgc2NvcGU6IGFueSA9IHt9O1xuICAgIHNldChzY29wZSwgJ2NvbnRleHQnLCAocGF0aDogc3RyaW5nKSA9PiB0aGlzLmJ1aWxkZXJTZXJ2aWNlLm9uQ2hhbmdlZC5waXBlKGZpbHRlcigoYykgPT4gYy5wYXRoID09IHBhdGgpKSk7XG4gICAgc2V0KHNjb3BlLCAnZnJvbScsIChldmVudDogc3RyaW5nKSA9PiBnZXQodGhpcy5pbnN0YW5jZS5hcGkoKSwgZXZlbnQpKTtcbiAgICByZXR1cm4gc2NvcGU7XG4gIH1cblxuICBwcml2YXRlIGdldFdpZGdldFNjb3BlKCk6IGFueSB7XG4gICAgY29uc3Qgc2NvcGU6IGFueSA9IHt9O1xuICAgIHNldChzY29wZSwgJ2NhbGwnLCAobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgdGhpcy5pbnN0YW5jZS5jYWxsKG5hbWUsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIHNldChzY29wZSwgJ2ZpbmQnLCAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRlclNlcnZpY2UuZ2V0V2lkZ2V0KGlkKT8uYXBpKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNjb3BlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGdW5jdGlvblNjb3BlKCk6IGFueSB7XG4gICAgY29uc3Qgc2NvcGU6IGFueSA9IHt9O1xuICAgIHNldChzY29wZSwgJ3N1bScsICh2YWx1ZXM6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHN1bSh2YWx1ZXMpO1xuICAgIH0pO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuYnVpbGRlclNlcnZpY2UuZnVuY3Rpb25zKS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICBzZXQoc2NvcGUsIGlbMF0sICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICByZXR1cm4gaVsxXSguLi5hcmdzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFyaWFibGVzU2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgc2V0KHNjb3BlLCAnZXZhbCcsIChwYXRoOiBzdHJpbmcpID0+IGdldCh0aGlzLmJ1aWxkZXJTZXJ2aWNlLnZhcmlhYmxlcywgcGF0aCkpO1xuICAgIHJldHVybiBzY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXNzaWduVHJpZ2dlcnMoKSB7XG4gICAgdGhpcy5ub2RlKCkudHJpZ2dlcnM/LmZvckVhY2goKHQpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5ldmFsdWF0ZVRyaWdnZXIodC5ldmVudCk7XG4gICAgICBldmVudD8ucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5ldmFsdWF0ZUFjdGlvbih0LmFjdGlvbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVUcmlnZ2VyKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25NYXRjaCA9IHRlbXBsYXRlRXhwcmVzc2lvbi5tYXRjaCgvXFx7XFx7XFxzKiguKj8pXFxzKlxcfVxcfS8pO1xuICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHZhbGlkIGV4cHJlc3Npb24gZm91bmQgaW4gXCIke3RlbXBsYXRlRXhwcmVzc2lvbn1cImApO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcblxuICAgICAgLy8gQ2FjaGUgdGhlIGV2YWx1YXRpb24gZnVuY3Rpb24gaW5zdGVhZCBvZiB0aGUgcmVzdWx0XG4gICAgICBjb25zdCBzY29wZSA9IHRoaXMuZ2V0R2xvYmFsU2NvcGUoKTtcbiAgICAgIGNvbnN0IHNhbmRib3ggPSBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgYHdpdGggKHNjb3BlKSB7IHJldHVybiAoICBmdW5jdGlvbigpIHsgcmV0dXJuICR7ZXhwcmVzc2lvbn07IH0pKCk7IH1gKTtcbiAgICAgIHJldHVybiBzYW5kYm94KHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVBY3Rpb24odGVtcGxhdGVFeHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbk1hdGNoID0gdGVtcGxhdGVFeHByZXNzaW9uLm1hdGNoKC9cXHtcXHtcXHMqKC4qPylcXHMqXFx9XFx9Lyk7XG4gICAgICBpZiAoIWV4cHJlc3Npb25NYXRjaCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICB9XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gZXhwcmVzc2lvbk1hdGNoWzFdO1xuXG4gICAgICAvLyBDYWNoZSB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRoZSByZXN1bHRcbiAgICAgIGNvbnN0IHNjb3BlOiBhbnkgPSB0aGlzLmdldEdsb2JhbFNjb3BlKCk7XG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyAgJHtleHByZXNzaW9ufSB9YCk7XG4gICAgICBzYW5kYm94KHNjb3BlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { afterNextRender, computed, ElementRef, inject, Injectable, InjectionToken, signal } from '@angular/core';
|
|
2
2
|
import { cloneDeep, get, isUndefined, merge } from 'lodash-es';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';
|
|
@@ -81,12 +81,9 @@ export class AXPWidgetComponent extends AXPLayoutElement {
|
|
|
81
81
|
this._options = signal(this.token.options ?? {});
|
|
82
82
|
this.options = this._options.asReadonly();
|
|
83
83
|
this.contextService = inject(AXPLayoutBuilderService);
|
|
84
|
-
this.rawValue = computed(() => {
|
|
85
|
-
debugger;
|
|
86
|
-
return this._fullPath ? get(this.contextService.context, this._fullPath) : null;
|
|
87
|
-
});
|
|
88
84
|
this.onReady = new Subject();
|
|
89
85
|
this.isRendered = false;
|
|
86
|
+
this.fullPath = signal(null);
|
|
90
87
|
this.nextRender = afterNextRender(() => {
|
|
91
88
|
//
|
|
92
89
|
if (!this.isRendered) {
|
|
@@ -97,6 +94,9 @@ export class AXPWidgetComponent extends AXPLayoutElement {
|
|
|
97
94
|
this.isRendered = true;
|
|
98
95
|
}
|
|
99
96
|
});
|
|
97
|
+
this.getValue = computed(() => {
|
|
98
|
+
return this.fullPath() ? get(this.contextService.context(), this.fullPath()) : null;
|
|
99
|
+
});
|
|
100
100
|
}
|
|
101
101
|
get id() {
|
|
102
102
|
return this._id;
|
|
@@ -112,14 +112,11 @@ export class AXPWidgetComponent extends AXPLayoutElement {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
getValue() {
|
|
116
|
-
return this.rawValue();
|
|
117
|
-
}
|
|
118
115
|
setValue(value, init = false) {
|
|
119
|
-
const oldValue = this.
|
|
116
|
+
const oldValue = this.getValue();
|
|
120
117
|
value = isUndefined(value) ? null : value;
|
|
121
|
-
if (this.
|
|
122
|
-
this.contextService.setValue(this.
|
|
118
|
+
if (this.fullPath()) {
|
|
119
|
+
this.contextService.setValue(this.fullPath(), value, init);
|
|
123
120
|
this.onValueChanged(oldValue, value);
|
|
124
121
|
}
|
|
125
122
|
}
|
|
@@ -161,7 +158,7 @@ export class AXPWidgetComponent extends AXPLayoutElement {
|
|
|
161
158
|
parent = parent.parent;
|
|
162
159
|
}
|
|
163
160
|
//
|
|
164
|
-
this.
|
|
161
|
+
this.fullPath.set(sections.reverse().join('.'));
|
|
165
162
|
this._id = this.name || this.parent ? ids.reverse().join('_') : null;
|
|
166
163
|
if (this._id) {
|
|
167
164
|
this.contextService.registerWidget(this._id, this);
|
|
@@ -202,4 +199,4 @@ export class AXPColumnWidgetComponent {
|
|
|
202
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPColumnWidgetComponent, decorators: [{
|
|
203
200
|
type: Injectable
|
|
204
201
|
}] });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQStDckQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsUUFBMkIsRUFDM0IsTUFBMkM7SUFFM0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFPcEM7SUFDQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixNQUFNLEVBQUU7WUFDTixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENB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SUFEbEY7O1FBRWtCLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztLQUN4Qzs4R0FGcUIsMkJBQTJCO2tIQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRGhELFVBQVU7O0FBTVgsTUFBTSxPQUFnQix3QkFBd0I7SUFEOUM7UUFFbUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXRDLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixZQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBUSxJQUFJLENBQUM7S0FDekM7OEdBTnFCLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBNZXRhRGF0YSwgQVhQT3B0aW9uc0RhdGEsIEFYUFBhcnRpYWxOZXN0ZWQsIEFYUFZhbGlkYXRpb25SdWxlcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgYWZ0ZXJOZXh0UmVuZGVyLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc1VuZGVmaW5lZCwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUExheW91dEVsZW1lbnQgfSBmcm9tICcuL2J1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJy4vd2lkZ2V0LWNhdGFsb2cnO1xuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRUcmlnZ2VyID0geyBldmVudDogc3RyaW5nOyBhY3Rpb246IHN0cmluZzsgZGlzYWJsZWQ/OiBib29sZWFuIH07XG5leHBvcnQgdHlwZSBBWFBXaWRnZXRUcmlnZ2VycyA9IEFYUFdpZGdldFRyaWdnZXJbXTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXREYXRhU291cmNlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2x1bW5zOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLy8gZGF0YVR5cGU6IHN0cmluZztcbiAgICAvLyBudWxsYWJsZT86IGJvb2xlYW47XG4gICAgLy8gaW50ZXJmYWNlPzogUGFydGlhbDxBWEVudGl0eVByb3BlcnR5V2lkZ2V0PjtcbiAgfVtdO1xuICBzb3VyY2U6IEFYRGF0YVNvdXJjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldEdyb3VwIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXREYXRhVHlwZSA9ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnb2JqZWN0JyB8ICdib29sZWFuJyB8ICdhcnJheSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHkge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IEFYUFdpZGdldERhdGFUeXBlO1xuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnkgfCBzdHJpbmcgfCAoKGNvbnRleHQ6IGFueSB8IG51bGwpID0+IGFueSk7XG4gICAgaW50ZXJmYWNlOiBSZXF1aXJlZDxQaWNrPEFYUFdpZGdldE5vZGUsICdwYXRoJz4+ICYgT21pdDxBWFBXaWRnZXROb2RlLCAncGF0aCc+O1xuICB9O1xuICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVQcm9wZXJ0eShcbiAgcHJvcGVydHk6IEFYUFdpZGdldFByb3BlcnR5LFxuICB2YWx1ZXM6IEFYUFBhcnRpYWxOZXN0ZWQ8QVhQV2lkZ2V0UHJvcGVydHk+XG4pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiBtZXJnZShjbG9uZURlZXAocHJvcGVydHkpLCB2YWx1ZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nUHJvcGVydHkoY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGN0b3IuZGVmYXVsdFZhbHVlLFxuICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICAgICAgcGF0aDogY3Rvci5wYXRoID8/IGN0b3IubmFtZSxcbiAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiBjdG9yLnZpc2libGUgPz8gdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvb2xlYW5Qcm9wZXJ0eShjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZT86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZ3JvdXA6IEFYUFdpZGdldFByb3BlcnR5R3JvdXA7XG4gIHZpc2libGU/OiBib29sZWFuO1xufSk6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgdGl0bGU6IGN0b3IudGl0bGUsXG4gICAgZ3JvdXA6IGN0b3IuZ3JvdXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgZGVmYXVsdFZhbHVlOiBjdG9yLmRlZmF1bHRWYWx1ZSA/PyBmYWxzZSxcbiAgICAgIGludGVyZmFjZToge1xuICAgICAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgICAgIHBhdGg6IGN0b3IucGF0aCA/PyBjdG9yLm5hbWUsXG4gICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiBjdG9yLnZpc2libGUgPz8gdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdFByb3BlcnR5PFQgPSBzdHJpbmcgfCB7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfT4oY3Rvcjoge1xuICBkZWZhdWx0VmFsdWU6IFQgfCBUW107XG4gIGRhdGFTb3VyY2U6IFRbXTtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogQXJyYXkuaXNBcnJheShjdG9yLmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgPyBjdG9yLmRlZmF1bHRWYWx1ZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7IGlkOiBpdGVtIH0gOiBpdGVtKSlcbiAgICAgICAgOiB0eXBlb2YgY3Rvci5kZWZhdWx0VmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgID8geyBpZDogY3Rvci5kZWZhdWx0VmFsdWUsIHRpdGxlOiBjdG9yLmRlZmF1bHRWYWx1ZSB9XG4gICAgICAgIDogY3Rvci5kZWZhdWx0VmFsdWUsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBkYXRhU291cmNlOiBjdG9yLmRhdGFTb3VyY2UubWFwKChpdGVtKSA9PiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnID8geyBpZDogaXRlbSwgdGl0bGU6IGl0ZW0gfSA6IGl0ZW0pKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2aXNpYmxlOiBjdG9yLnZpc2libGUgPz8gdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXROb2RlIHtcbiAgdHlwZTogQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdO1xuICBwYXRoPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU/OiBhbnk7XG4gIGZvcm11bGE/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogQVhQV2lkZ2V0Tm9kZVtdO1xuICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG4gIHRyaWdnZXJzPzogQVhQV2lkZ2V0VHJpZ2dlcnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0VHlwZXNNYXAge1xuICBjaGVja2JveDogJ2NoZWNrYm94LWVkaXRvcic7XG4gIGNvbG9yOiAnY29sb3ItZWRpdG9yJztcbiAgY29udGFjdDogJ2NvbnRhY3QtZWRpdG9yJztcbiAgZGF0ZVRpbWU6ICdkYXRlLXRpbWUtZWRpdG9yJztcbiAgZW1haWw6ICdlbWFpbC1lZGl0b3InO1xuICBsYXJnZVRleHQ6ICdsYXJnZS10ZXh0LWVkaXRvcic7XG4gIGxpbms6ICdsaW5rLWVkaXRvcic7XG4gIG51bWJlcjogJ251bWJlci1lZGl0b3InO1xuICBwYXNzd29yZDogJ3Bhc3N3b3JkLWVkaXRvcic7XG4gIHBob25lOiAncGhvbmUtZWRpdG9yJztcbiAgcmljaFRleHQ6ICdyaWNoLXRleHQtZWRpdG9yJztcbiAgc2VsZWN0OiAnc2VsZWN0LWVkaXRvcic7XG4gIHNlbGVjdGlvbkxpc3Q6ICdzZWxlY3Rpb24tbGlzdC1lZGl0b3InO1xuICB0ZXh0OiAndGV4dC1lZGl0b3InO1xuICB0b2dnbGU6ICd0b2dnbGUtZWRpdG9yJztcbiAgYmxvY2tMYXlvdXQ6ICdibG9jay1sYXlvdXQnO1xuICBwYWdlTGF5b3V0OiAncGFnZS1sYXlvdXQnO1xuICByZXBlYXRlckxheW91dDogJ3JlcGVhdGVyLWxheW91dCc7XG4gIHRleHRCbG9ja0xheW91dDogJ3RleHQtYmxvY2stbGF5b3V0JztcbiAgZmlsZTogJ2ZpbGUnO1xuICBtYXA6ICdtYXAnO1xuICBnYWxsZXJ5OiAnZ2FsbGVyeSc7XG4gIHNpZ25hdHVyZTogJ3NpZ25hdHVyZSc7XG4gIGJ1dHRvbkFjdGlvbjogJ2J1dHRvbi1hY3Rpb24nO1xuICBkb2N1bWVudDogJ2RvY3VtZW50LWxheW91dCc7XG4gIGxvb2t1cDogJ2xvb2t1cC1lZGl0b3InO1xuICBmb3JtRmllbGQ6ICdmb3JtLWZpZWxkJztcbiAgZ3JpZDogJ2dyaWQtbGF5b3V0JztcbiAgZ3JpZFJvdzogJ2dyaWQtcm93LWxheW91dCc7XG4gIGdyaWRJdGVtOiAnZ3JpZC1pdGVtLWxheW91dCc7XG4gIHFyY29kZTogJ3FyY29kZSc7XG4gIHdpZGdldFNlbGVjdG9yOiAnd2lkZ2V0LXNlbGVjdG9yJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXROb2RlVG9rZW4ge1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbiAgbm9kZTogQVhQV2lkZ2V0Tm9kZTtcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbiBleHRlbmRzIEFYUFdpZGdldENvbHVtbk5vZGUge1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQV2lkZ2V0Tm9kZVRva2VuPignQVhQX1dJREdFVF9UT0tFTicpO1xuZXhwb3J0IGNvbnN0IEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFdpZGdldENvbHVtbk5vZGVUb2tlbj4oJ0FYUF9XSURHRVRfQ09MVU1OX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiAoKSA9PiBQcm9taXNlPGFueT47XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbmZpZ0NvbXBvbmVudHMge1xuICBkZXNpZ25lcj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgdmlldz86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZWRpdD86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgcHJpbnQ/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGNvbHVtbj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbiAgZmlsdGVyPzogQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRUeXBlID0gJ2NvbnRhaW5lcicgfCAnZWRpdG9yJyB8ICdhY3Rpb24nIHwgJ3ZpZXcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbmZpZyB7XG4gIG5hbWU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXTtcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRHcm91cDtcbiAgcHJvcGVydGllcz86IEFYUFdpZGdldFByb3BlcnR5W107XG4gIGNvbXBvbmVudHM6IEFYUFdpZGdldENvbmZpZ0NvbXBvbmVudHM7XG4gIG1ldGE/OiBBWFBNZXRhRGF0YTtcbiAgdHlwZTogQVhQV2lkZ2V0VHlwZTtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldFJlbmRlck1vZGUgPSBrZXlvZiBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUExheW91dENvbnRleHRFdmVudCB7XG4gIG9sZFZhbHVlOiBhbnk7XG4gIG5ld1ZhbHVlOiBhbnk7XG4gIHBhdGg/OiBzdHJpbmcgfCBudWxsO1xuICBkYXRhOiBhbnk7XG4gIGluaXQ6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXaWRnZXRDb21wb25lbnQ8VCA9IGFueSB8IG51bGwgfCB2b2lkPiBleHRlbmRzIEFYUExheW91dEVsZW1lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9UT0tFTik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMudG9rZW4uY29uZmlnO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBuYW1lID0gdGhpcy50b2tlbi5ub2RlLm5hbWU7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYXRoID0gdGhpcy50b2tlbi5ub2RlLnBhdGggPz8gKHRoaXMuY29uZmlnLnR5cGUgPT0gJ2VkaXRvcicgPyB0aGlzLm5hbWUgOiBudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRWYWx1ZSA9IHRoaXMudG9rZW4ubm9kZS5kZWZhdWx0VmFsdWU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jaGlsZHJlbiA9IHNpZ25hbCh0aGlzLnRva2VuLm5vZGUuY2hpbGRyZW4gPz8gW10pO1xuICBwcm90ZWN0ZWQgY2hpbGRyZW4gPSB0aGlzLl9jaGlsZHJlbi5hc1JlYWRvbmx5KCk7XG5cbiAgcHJvdGVjdGVkIF9vcHRpb25zID0gc2lnbmFsPGFueT4odGhpcy50b2tlbi5vcHRpb25zID8/IHt9KTtcbiAgcHJvdGVjdGVkIG9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmFzUmVhZG9ubHkoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmF3VmFsdWUgPSBjb21wdXRlZDxUPigoKSA9PiB7XG4gICAgZGVidWdnZXI7XG4gICAgcmV0dXJuIHRoaXMuX2Z1bGxQYXRoID8gZ2V0KHRoaXMuY29udGV4dFNlcnZpY2UuY29udGV4dCwgdGhpcy5fZnVsbFBhdGgpIDogbnVsbDtcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uUmVhZHkgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgaXNSZW5kZXJlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHBhcmVudDogQVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgaW5kZXg6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIG1vZGU6IEFYUFdpZGdldFJlbmRlck1vZGU7XG5cbiAgcHJpdmF0ZSBfZnVsbFBhdGg6IHN0cmluZztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRSZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJlbmRlciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgLy9cbiAgICBpZiAoIXRoaXMuaXNSZW5kZXJlZCkge1xuICAgICAgLy90aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICAvL1xuICAgICAgdGhpcy5vblJlYWR5Lm5leHQoKTtcbiAgICAgIC8vXG4gICAgICB0aGlzLmlzUmVuZGVyZWQgPSB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBpbml0UmVuZGVyKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50eXBlID09ICdlZGl0b3InKSB7XG4gICAgICB0aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZGVmYXVsdFZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZTxUPigpIHtcbiAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZSgpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsLCBpbml0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMucmF3VmFsdWUoKTtcbiAgICB2YWx1ZSA9IGlzVW5kZWZpbmVkKHZhbHVlKSA/IG51bGwgOiB2YWx1ZTtcbiAgICBpZiAodGhpcy5fZnVsbFBhdGgpIHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc2V0VmFsdWUodGhpcy5fZnVsbFBhdGgsIHZhbHVlLCBpbml0KTtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzZXRPcHRpb25zKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb3B0aW9ucy5zZXQoeyAuLi50aGlzLm9wdGlvbnMoKSwgLi4udmFsdWVzIH0pO1xuICB9XG5cbiAgY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3QgZm4gPSBnZXQodGhpcywgbmFtZSkgYXMgRnVuY3Rpb247XG4gICAgaWYgKGZuICYmIHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBmbi5iaW5kKHRoaXMpKC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHNldENoaWxkcmVuKGNoaWxkcmVuOiBBWFBXaWRnZXROb2RlW10pIHtcbiAgICB0aGlzLl9jaGlsZHJlbi5zZXQoWy4uLmNoaWxkcmVuXSk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlZChvbGRWYWx1ZTogVCB8IG51bGwsIG5ld1ZhbHVlOiBUIHwgbnVsbCkge31cblxuICBwcml2YXRlIGRldGVjdEZ1bGxQYXRoKCkge1xuICAgIGxldCBzZWN0aW9ucyA9IFtdO1xuICAgIGxldCBpZHMgPSBbXTtcbiAgICAvL1xuICAgIGxldCBwYXJlbnQ6IEFYUFdpZGdldENvbXBvbmVudCB8IG51bGwgfCB1bmRlZmluZWQgPSB0aGlzO1xuICAgIC8vXG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgY29uc3QgcGF0aCA9IHBhcmVudC5wYXRoOyAvLz8/IHBhcmVudC5uYW1lO1xuICAgICAgY29uc3QgaWQgPSBwYXJlbnQubmFtZTtcbiAgICAgIC8vXG4gICAgICBpZiAocGF0aCkge1xuICAgICAgICBzZWN0aW9ucy5wdXNoKHBhdGgpO1xuICAgICAgICBpZiAocGFyZW50LmluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBzZWN0aW9ucy5wdXNoKGBbJHtwYXJlbnQuaW5kZXh9XWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgaWRzLnB1c2goaWQpO1xuICAgICAgICBpZiAocGFyZW50LmluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICBpZHMucHVzaChgJHtwYXJlbnQuaW5kZXh9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5fZnVsbFBhdGggPSBzZWN0aW9ucy5yZXZlcnNlKCkuam9pbignLicpO1xuICAgIHRoaXMuX2lkID0gdGhpcy5uYW1lIHx8IHRoaXMucGFyZW50ID8gaWRzLnJldmVyc2UoKS5qb2luKCdfJykgOiBudWxsO1xuICAgIGlmICh0aGlzLl9pZCkge1xuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5yZWdpc3RlcldpZGdldCh0aGlzLl9pZCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PFQ+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoZS52YWx1ZSEpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50PFQ+IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PFQ+IHtcbiAgcHVibGljIHJlYWRvbmx5IG5vZGUgPSB0aGlzLnRva2VuLm5vZGU7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8VCA9IGFueSB8IG51bGwgfCB2b2lkPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW4gPSBpbmplY3QoQVhQX1dJREdFVF9DT0xVTU5fVE9LRU4pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwYXRoID0gdGhpcy50b2tlbi5wYXRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyA9IHRoaXMudG9rZW4ub3B0aW9ucyA/PyB7fTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJhd1ZhbHVlOiBhbnkgPSBudWxsO1xufVxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlci9zcmMvbGliL2J1aWxkZXIvd2lkZ2V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQStDckQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsUUFBMkIsRUFDM0IsTUFBMkM7SUFFM0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFPcEM7SUFDQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztRQUNqQixNQUFNLEVBQUU7WUFDTixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENB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QUFRLGtCQUFxQjtJQURsRjs7UUFFa0IsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3hDOzhHQUZxQiwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEaEQsVUFBVTs7QUFNWCxNQUFNLE9BQWdCLHdCQUF3QjtJQUQ5QztRQUVtQixVQUFLLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFdEMsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbkMsYUFBUSxHQUFRLElBQUksQ0FBQztLQUN6Qzs4R0FOcUIsd0JBQXdCO2tIQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhLCBBWFBPcHRpb25zRGF0YSwgQVhQUGFydGlhbE5lc3RlZCwgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGlzVW5kZWZpbmVkLCBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSwgQVhQTGF5b3V0RWxlbWVudCB9IGZyb20gJy4vYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnLi93aWRnZXQtY2F0YWxvZyc7XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldFRyaWdnZXIgPSB7IGV2ZW50OiBzdHJpbmc7IGFjdGlvbjogc3RyaW5nOyBkaXNhYmxlZD86IGJvb2xlYW4gfTtcbmV4cG9ydCB0eXBlIEFYUFdpZGdldFRyaWdnZXJzID0gQVhQV2lkZ2V0VHJpZ2dlcltdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldERhdGFTb3VyY2Uge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbHVtbnM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvLyBkYXRhVHlwZTogc3RyaW5nO1xuICAgIC8vIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICAvLyBpbnRlcmZhY2U/OiBQYXJ0aWFsPEFYRW50aXR5UHJvcGVydHlXaWRnZXQ+O1xuICB9W107XG4gIHNvdXJjZTogQVhEYXRhU291cmNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldFByb3BlcnR5R3JvdXAge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0R3JvdXAge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEFYUFdpZGdldERhdGFUeXBlID0gJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdvYmplY3QnIHwgJ2Jvb2xlYW4nIHwgJ2FycmF5JztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICBzY2hlbWE6IHtcbiAgICBkYXRhVHlwZTogQVhQV2lkZ2V0RGF0YVR5cGU7XG4gICAgbnVsbGFibGU/OiBib29sZWFuO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueSB8IHN0cmluZyB8ICgoY29udGV4dDogYW55IHwgbnVsbCkgPT4gYW55KTtcbiAgICBpbnRlcmZhY2U6IFJlcXVpcmVkPFBpY2s8QVhQV2lkZ2V0Tm9kZSwgJ3BhdGgnPj4gJiBPbWl0PEFYUFdpZGdldE5vZGUsICdwYXRoJz47XG4gIH07XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbiAgdmFsaWRhdGlvbnM/OiBBWFBWYWxpZGF0aW9uUnVsZXM7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVByb3BlcnR5KFxuICBwcm9wZXJ0eTogQVhQV2lkZ2V0UHJvcGVydHksXG4gIHZhbHVlczogQVhQUGFydGlhbE5lc3RlZDxBWFBXaWRnZXRQcm9wZXJ0eT5cbik6IEFYUFdpZGdldFByb3BlcnR5IHtcbiAgcmV0dXJuIG1lcmdlKGNsb25lRGVlcChwcm9wZXJ0eSksIHZhbHVlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHJpbmdQcm9wZXJ0eShjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogY3Rvci5kZWZhdWx0VmFsdWUsXG4gICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgbmFtZTogY3Rvci5uYW1lLFxuICAgICAgICBwYXRoOiBjdG9yLnBhdGggPz8gY3Rvci5uYW1lLFxuICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm9vbGVhblByb3BlcnR5KGN0b3I6IHtcbiAgZGVmYXVsdFZhbHVlPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0UHJvcGVydHlHcm91cDtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG59KTogQVhQV2lkZ2V0UHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICB0aXRsZTogY3Rvci50aXRsZSxcbiAgICBncm91cDogY3Rvci5ncm91cCxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICBkZWZhdWx0VmFsdWU6IGN0b3IuZGVmYXVsdFZhbHVlID8/IGZhbHNlLFxuICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgIG5hbWU6IGN0b3IubmFtZSxcbiAgICAgICAgcGF0aDogY3Rvci5wYXRoID8/IGN0b3IubmFtZSxcbiAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0UHJvcGVydHk8VCA9IHN0cmluZyB8IHsgaWQ6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9PihjdG9yOiB7XG4gIGRlZmF1bHRWYWx1ZTogVCB8IFRbXTtcbiAgZGF0YVNvdXJjZTogVFtdO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGdyb3VwOiBBWFBXaWRnZXRQcm9wZXJ0eUdyb3VwO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn0pOiBBWFBXaWRnZXRQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogY3Rvci5uYW1lLFxuICAgIHRpdGxlOiBjdG9yLnRpdGxlLFxuICAgIGdyb3VwOiBjdG9yLmdyb3VwLFxuICAgIHNjaGVtYToge1xuICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgZGVmYXVsdFZhbHVlOiBBcnJheS5pc0FycmF5KGN0b3IuZGVmYXVsdFZhbHVlKVxuICAgICAgICA/IGN0b3IuZGVmYXVsdFZhbHVlLm1hcCgoaXRlbSkgPT4gKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IHsgaWQ6IGl0ZW0gfSA6IGl0ZW0pKVxuICAgICAgICA6IHR5cGVvZiBjdG9yLmRlZmF1bHRWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyB7IGlkOiBjdG9yLmRlZmF1bHRWYWx1ZSwgdGl0bGU6IGN0b3IuZGVmYXVsdFZhbHVlIH1cbiAgICAgICAgOiBjdG9yLmRlZmF1bHRWYWx1ZSxcbiAgICAgIGludGVyZmFjZToge1xuICAgICAgICBuYW1lOiBjdG9yLm5hbWUsXG4gICAgICAgIHBhdGg6IGN0b3IucGF0aCA/PyBjdG9yLm5hbWUsXG4gICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGRhdGFTb3VyY2U6IGN0b3IuZGF0YVNvdXJjZS5tYXAoKGl0ZW0pID0+ICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7IGlkOiBpdGVtLCB0aXRsZTogaXRlbSB9IDogaXRlbSkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHZpc2libGU6IGN0b3IudmlzaWJsZSA/PyB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldE5vZGUge1xuICB0eXBlOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF07XG4gIHBhdGg/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgZm9ybXVsYT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBBWFBXaWRnZXROb2RlW107XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbiAgdHJpZ2dlcnM/OiBBWFBXaWRnZXRUcmlnZ2VycztcbiAgbWV0YT86IEFYUE1ldGFEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgY2hlY2tib3g6ICdjaGVja2JveC1lZGl0b3InO1xuICBjb2xvcjogJ2NvbG9yLWVkaXRvcic7XG4gIGNvbnRhY3Q6ICdjb250YWN0LWVkaXRvcic7XG4gIGRhdGVUaW1lOiAnZGF0ZS10aW1lLWVkaXRvcic7XG4gIGVtYWlsOiAnZW1haWwtZWRpdG9yJztcbiAgbGFyZ2VUZXh0OiAnbGFyZ2UtdGV4dC1lZGl0b3InO1xuICBsaW5rOiAnbGluay1lZGl0b3InO1xuICBudW1iZXI6ICdudW1iZXItZWRpdG9yJztcbiAgcGFzc3dvcmQ6ICdwYXNzd29yZC1lZGl0b3InO1xuICBwaG9uZTogJ3Bob25lLWVkaXRvcic7XG4gIHJpY2hUZXh0OiAncmljaC10ZXh0LWVkaXRvcic7XG4gIHNlbGVjdDogJ3NlbGVjdC1lZGl0b3InO1xuICBzZWxlY3Rpb25MaXN0OiAnc2VsZWN0aW9uLWxpc3QtZWRpdG9yJztcbiAgdGV4dDogJ3RleHQtZWRpdG9yJztcbiAgdG9nZ2xlOiAndG9nZ2xlLWVkaXRvcic7XG4gIGJsb2NrTGF5b3V0OiAnYmxvY2stbGF5b3V0JztcbiAgcGFnZUxheW91dDogJ3BhZ2UtbGF5b3V0JztcbiAgcmVwZWF0ZXJMYXlvdXQ6ICdyZXBlYXRlci1sYXlvdXQnO1xuICB0ZXh0QmxvY2tMYXlvdXQ6ICd0ZXh0LWJsb2NrLWxheW91dCc7XG4gIGZpbGU6ICdmaWxlJztcbiAgbWFwOiAnbWFwJztcbiAgZ2FsbGVyeTogJ2dhbGxlcnknO1xuICBzaWduYXR1cmU6ICdzaWduYXR1cmUnO1xuICBidXR0b25BY3Rpb246ICdidXR0b24tYWN0aW9uJztcbiAgZG9jdW1lbnQ6ICdkb2N1bWVudC1sYXlvdXQnO1xuICBsb29rdXA6ICdsb29rdXAtZWRpdG9yJztcbiAgZm9ybUZpZWxkOiAnZm9ybS1maWVsZCc7XG4gIGdyaWQ6ICdncmlkLWxheW91dCc7XG4gIGdyaWRSb3c6ICdncmlkLXJvdy1sYXlvdXQnO1xuICBncmlkSXRlbTogJ2dyaWQtaXRlbS1sYXlvdXQnO1xuICBxcmNvZGU6ICdxcmNvZGUnO1xuICB3aWRnZXRTZWxlY3RvcjogJ3dpZGdldC1zZWxlY3Rvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0Tm9kZVRva2VuIHtcbiAgY29uZmlnOiBBWFBXaWRnZXRDb25maWc7XG4gIG5vZGU6IEFYUFdpZGdldE5vZGU7XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgdHlwZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb2x1bW5Ob2RlVG9rZW4gZXh0ZW5kcyBBWFBXaWRnZXRDb2x1bW5Ob2RlIHtcbiAgY29uZmlnOiBBWFBXaWRnZXRDb25maWc7XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFdpZGdldE5vZGVUb2tlbj4oJ0FYUF9XSURHRVRfVE9LRU4nKTtcbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUX0NPTFVNTl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBXaWRnZXRDb2x1bW5Ob2RlVG9rZW4+KCdBWFBfV0lER0VUX0NPTFVNTl9UT0tFTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdpZGdldENvbXBvbmVudENvbmZpZyB7XG4gIGNvbXBvbmVudDogKCkgPT4gUHJvbWlzZTxhbnk+O1xuICBwcm9wZXJ0aWVzPzogQVhQV2lkZ2V0UHJvcGVydHlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzIHtcbiAgZGVzaWduZXI/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIHZpZXc/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGVkaXQ/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIHByaW50PzogQVhQV2lkZ2V0Q29tcG9uZW50Q29uZmlnO1xuICBjb2x1bW4/OiBBWFBXaWRnZXRDb21wb25lbnRDb25maWc7XG4gIGZpbHRlcj86IEFYUFdpZGdldENvbXBvbmVudENvbmZpZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQV2lkZ2V0VHlwZSA9ICdjb250YWluZXInIHwgJ2VkaXRvcicgfCAnYWN0aW9uJyB8ICd2aWV3JztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXaWRnZXRDb25maWcge1xuICBuYW1lOiBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF07XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBncm91cDogQVhQV2lkZ2V0R3JvdXA7XG4gIHByb3BlcnRpZXM/OiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xuICBjb21wb25lbnRzOiBBWFBXaWRnZXRDb25maWdDb21wb25lbnRzO1xuICBtZXRhPzogQVhQTWV0YURhdGE7XG4gIHR5cGU6IEFYUFdpZGdldFR5cGU7XG4gIHZpc2libGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBBWFBXaWRnZXRSZW5kZXJNb2RlID0ga2V5b2YgQVhQV2lkZ2V0Q29uZmlnQ29tcG9uZW50cztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBMYXlvdXRDb250ZXh0RXZlbnQge1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBwYXRoPzogc3RyaW5nIHwgbnVsbDtcbiAgZGF0YTogYW55O1xuICBpbml0OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQV2lkZ2V0Q29tcG9uZW50PFQgPSBhbnkgfCBudWxsIHwgdm9pZD4gZXh0ZW5kcyBBWFBMYXlvdXRFbGVtZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRva2VuID0gaW5qZWN0KEFYUF9XSURHRVRfVE9LRU4pO1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSB0aGlzLnRva2VuLmNvbmZpZztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZSA9IHRoaXMudG9rZW4ubm9kZS5uYW1lO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF0aCA9IHRoaXMudG9rZW4ubm9kZS5wYXRoID8/ICh0aGlzLmNvbmZpZy50eXBlID09ICdlZGl0b3InID8gdGhpcy5uYW1lIDogbnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0VmFsdWUgPSB0aGlzLnRva2VuLm5vZGUuZGVmYXVsdFZhbHVlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfY2hpbGRyZW4gPSBzaWduYWwodGhpcy50b2tlbi5ub2RlLmNoaWxkcmVuID8/IFtdKTtcbiAgcHJvdGVjdGVkIGNoaWxkcmVuID0gdGhpcy5fY2hpbGRyZW4uYXNSZWFkb25seSgpO1xuXG4gIHByb3RlY3RlZCBfb3B0aW9ucyA9IHNpZ25hbDxhbnk+KHRoaXMudG9rZW4ub3B0aW9ucyA/PyB7fSk7XG4gIHByb3RlY3RlZCBvcHRpb25zID0gdGhpcy5fb3B0aW9ucy5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uUmVhZHkgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgaXNSZW5kZXJlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHBhcmVudDogQVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgaW5kZXg6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIG1vZGU6IEFYUFdpZGdldFJlbmRlck1vZGU7XG5cbiAgcHJpdmF0ZSBmdWxsUGF0aCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRSZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJlbmRlciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgLy9cbiAgICBpZiAoIXRoaXMuaXNSZW5kZXJlZCkge1xuICAgICAgLy90aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICAvL1xuICAgICAgdGhpcy5vblJlYWR5Lm5leHQoKTtcbiAgICAgIC8vXG4gICAgICB0aGlzLmlzUmVuZGVyZWQgPSB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBpbml0UmVuZGVyKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50eXBlID09ICdlZGl0b3InKSB7XG4gICAgICB0aGlzLmRldGVjdEZ1bGxQYXRoKCk7XG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZGVmYXVsdFZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZnVsbFBhdGgoKSA/IGdldCh0aGlzLmNvbnRleHRTZXJ2aWNlLmNvbnRleHQoKSwgdGhpcy5mdWxsUGF0aCgpISkgOiBudWxsO1xuICB9KTtcblxuICBzZXRWYWx1ZSh2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsIGluaXQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIHZhbHVlID0gaXNVbmRlZmluZWQodmFsdWUpID8gbnVsbCA6IHZhbHVlO1xuICAgIGlmICh0aGlzLmZ1bGxQYXRoKCkpIHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2Uuc2V0VmFsdWUodGhpcy5mdWxsUGF0aCgpISwgdmFsdWUsIGluaXQpO1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZChvbGRWYWx1ZSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldE9wdGlvbnModmFsdWVzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vcHRpb25zLnNldCh7IC4uLnRoaXMub3B0aW9ucygpLCAuLi52YWx1ZXMgfSk7XG4gIH1cblxuICBjYWxsKG5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCBmbiA9IGdldCh0aGlzLCBuYW1lKSBhcyBGdW5jdGlvbjtcbiAgICBpZiAoZm4gJiYgdHlwZW9mIGZuID09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZuLmJpbmQodGhpcykoLi4uYXJncyk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2hpbGRyZW4oY2hpbGRyZW46IEFYUFdpZGdldE5vZGVbXSkge1xuICAgIHRoaXMuX2NoaWxkcmVuLnNldChbLi4uY2hpbGRyZW5dKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlOiBUIHwgbnVsbCwgbmV3VmFsdWU6IFQgfCBudWxsKSB7fVxuXG4gIHByaXZhdGUgZGV0ZWN0RnVsbFBhdGgoKSB7XG4gICAgbGV0IHNlY3Rpb25zID0gW107XG4gICAgbGV0IGlkcyA9IFtdO1xuICAgIC8vXG4gICAgbGV0IHBhcmVudDogQVhQV2lkZ2V0Q29tcG9uZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHRoaXM7XG4gICAgLy9cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICBjb25zdCBwYXRoID0gcGFyZW50LnBhdGg7IC8vPz8gcGFyZW50Lm5hbWU7XG4gICAgICBjb25zdCBpZCA9IHBhcmVudC5uYW1lO1xuICAgICAgLy9cbiAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgIHNlY3Rpb25zLnB1c2gocGF0aCk7XG4gICAgICAgIGlmIChwYXJlbnQuaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIHNlY3Rpb25zLnB1c2goYFske3BhcmVudC5pbmRleH1dYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpZCkge1xuICAgICAgICBpZHMucHVzaChpZCk7XG4gICAgICAgIGlmIChwYXJlbnQuaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIGlkcy5wdXNoKGAke3BhcmVudC5pbmRleH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmZ1bGxQYXRoLnNldChzZWN0aW9ucy5yZXZlcnNlKCkuam9pbignLicpKTtcbiAgICB0aGlzLl9pZCA9IHRoaXMubmFtZSB8fCB0aGlzLnBhcmVudCA/IGlkcy5yZXZlcnNlKCkuam9pbignXycpIDogbnVsbDtcbiAgICBpZiAodGhpcy5faWQpIHtcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UucmVnaXN0ZXJXaWRnZXQodGhpcy5faWQsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxUPikge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKGUudmFsdWUhKTtcbiAgICB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUENvbnRhaW5lcldpZGdldENvbXBvbmVudDxUPiBleHRlbmRzIEFYUFdpZGdldENvbXBvbmVudDxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlID0gdGhpcy50b2tlbi5ub2RlO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50PFQgPSBhbnkgfCBudWxsIHwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuID0gaW5qZWN0KEFYUF9XSURHRVRfQ09MVU1OX1RPS0VOKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGF0aCA9IHRoaXMudG9rZW4ucGF0aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSB0aGlzLnRva2VuLm9wdGlvbnMgPz8ge307XG4gIHByb3RlY3RlZCByZWFkb25seSByYXdWYWx1ZTogYW55ID0gbnVsbDtcbn1cbiJdfQ==
|