@wavemaker/app-ng-runtime 12.0.0-next.141131 → 12.0.0-next.141134
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.
- app-ng-runtime/build-task/bundles/index.umd.js +54 -39
- app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
- app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +10 -3
- app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
- app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
- app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +5 -1
- app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +54 -39
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
- app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/advanced/custom/bundles/index.umd.js +53 -13
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +11 -4
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +55 -12
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +2 -2
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +55 -12
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +22 -6
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -5
- app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -2
- app-ng-runtime/components/base/fesm2022/index.mjs +23 -7
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/bundles/index.umd.js +27 -18
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
- app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
- app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
- app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
- app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
- app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
- app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
- app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
- app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +27 -18
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
- app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +12 -8
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +4 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +12 -8
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
- app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +11 -9
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +14 -13
- app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +11 -9
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +1 -0
- app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
- app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +4 -4
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +3 -3
- app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
- app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
- app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
- app-ng-runtime/components/data/form/bundles/index.umd.js +27 -11
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +28 -14
- app-ng-runtime/components/data/form/fesm2022/index.mjs +27 -13
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -0
- app-ng-runtime/components/data/list/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/list/esm2022/list.component.mjs +3 -3
- app-ng-runtime/components/data/list/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +45 -11
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
- app-ng-runtime/components/data/table/esm2022/table-row/table-row.props.mjs +2 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
- app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
- app-ng-runtime/components/data/table/fesm2022/index.mjs +46 -12
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table.component.d.ts +8 -1
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +20 -3
- app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +20 -3
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
- app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
- app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +3 -2
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
- app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
- app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
- app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
- app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
- app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
- app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
- app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
- app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
- app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/base-form-custom.component.d.ts +2 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +219 -114
- app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
- app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
- app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -2
- app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +6 -1
- app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
- app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
- app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +23 -16
- app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +30 -23
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
- app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
- app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
- app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
- app-ng-runtime/components/input/default/fesm2022/index.mjs +219 -114
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
- app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
- app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
- app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +15 -9
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
- app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
- app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +6 -6
- app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +10 -7
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
- app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -9
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +208 -95
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +206 -98
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +6 -1
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +209 -96
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +17 -11
- app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
- app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
- app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
- app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
- app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
- app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
- app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
- app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
- app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
- app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
- app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
- app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
- app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
- app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
- app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
- app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/bundles/index.umd.js +18 -15
- app-ng-runtime/core/enums/enums.d.ts +2 -2
- app-ng-runtime/core/esm2022/enums/enums.mjs +2 -2
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +12 -12
- app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
- app-ng-runtime/core/fesm2022/index.mjs +18 -16
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/utils/utils.d.ts +1 -0
- app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
- app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
- app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
- app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
- app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +16 -5
- app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +2 -0
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +10 -1
- app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
- app-ng-runtime/runtime/base/fesm2022/index.mjs +16 -5
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
- app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
- app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +54 -43
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
|
@@ -15,7 +15,7 @@ export class CustomWidgetDirective extends StylableComponent {
|
|
|
15
15
|
this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
|
|
16
16
|
}
|
|
17
17
|
ngAfterContentInit() {
|
|
18
|
-
let customWidget = this.nativeElement.closest('[customwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(getWidgetPropsByType("wm-custom-widget-container").keys());
|
|
18
|
+
let customWidget = this.nativeElement.closest('[customwidgetcontainer]') || this.nativeElement.closest('[wmwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(getWidgetPropsByType("wm-custom-widget-container").keys());
|
|
19
19
|
for (let i = 0; i < customWidget.attributes.length; i++) {
|
|
20
20
|
let attr = customWidget.attributes.item(i);
|
|
21
21
|
if (attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))
|
|
@@ -65,4 +65,4 @@ export class CustomWidgetDirective extends StylableComponent {
|
|
|
65
65
|
]
|
|
66
66
|
}]
|
|
67
67
|
}], () => [{ type: i0.Injector }, { type: i1.Viewport }], null); })();
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXdpZGdldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYWR2YW5jZWQvY3VzdG9tL3NyYy9jdXN0b20td2lkZ2V0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBQyxRQUFRLEVBQWdCLE1BQU0sVUFBVSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRWxHLE1BQU0sV0FBVyxHQUFHLHNDQUFzQyxDQUFDO0FBQzNELE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsQ0FBQztBQVN6RixNQUFNLE9BQU8scUJBQXNCLFNBQVEsaUJBQWlCO2FBQ2pELG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBRXpDLFlBQVksR0FBYSxFQUFVLFFBQWtCO1FBQ2pELEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFESyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRWpELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsc0NBQXVCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsNkRBQW1DLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFB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O2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0IsdUJBQXVCO2lCQUM1QzthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1ZpZXdwb3J0LCBWaWV3cG9ydEV2ZW50fSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9jdXN0b20td2lkZ2V0LXByb3AnO1xuaW1wb3J0IHsgU3R5bGFibGVDb21wb25lbnQsIHByb3ZpZGVBc1dpZGdldFJlZiwgZ2V0V2lkZ2V0UHJvcHNCeVR5cGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWN1c3RvbS13aWRnZXQtY29udGFpbmVyIGNsZWFyZml4JztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWN1c3RvbS13aWRnZXQtY29udGFpbmVyJywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5kZWNsYXJlIGNvbnN0IF87XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ3VzdG9tV2lkZ2V0XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDdXN0b21XaWRnZXREaXJlY3RpdmUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21XaWRnZXREaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIHByaXZhdGUgdmlld3BvcnQ6IFZpZXdwb3J0KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIodGhpcy52aWV3cG9ydC5zdWJzY3JpYmUoVmlld3BvcnRFdmVudC5SRVNJWkUsIGRhdGEgPT4gdGhpcy5jYWxsYmFjaygncmVzaXplJywgZGF0YSkpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcih0aGlzLnZpZXdwb3J0LnN1YnNjcmliZShWaWV3cG9ydEV2ZW50Lk9SSUVOVEFUSU9OX0NIQU5HRSwgZGF0YSA9PiB0aGlzLmNhbGxiYWNrKCdvcmllbnRhdGlvbmNoYW5nZScsIGRhdGEpKSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgbGV0IGN1c3RvbVdpZGdldCAgICAgICAgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnW2N1c3RvbXdpZGdldGNvbnRhaW5lcl0nKSB8fCB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnW3dtd2lkZ2V0Y29udGFpbmVyXScpLFxuICAgICAgICAgICAgaW5oZXJpdGVkUHJvcHMgICAgICA9IHt9LFxuICAgICAgICAgICAgY3VzdG9tV2lkZ2V0UHJvcHMgICA9IEFycmF5LmZyb20oZ2V0V2lkZ2V0UHJvcHNCeVR5cGUoXCJ3bS1jdXN0b20td2lkZ2V0LWNvbnRhaW5lclwiKS5rZXlzKCkpO1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgY3VzdG9tV2lkZ2V0LmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBhdHRyID0gY3VzdG9tV2lkZ2V0LmF0dHJpYnV0ZXMuaXRlbShpKTtcbiAgICAgICAgICAgIGlmKGF0dHIudmFsdWUgJiYgYXR0ci52YWx1ZSAhPT0gJycgJiYgIWN1c3RvbVdpZGdldFByb3BzLmluY2x1ZGVzKGF0dHIubmFtZSkpXG4gICAgICAgICAgICAgICAgaW5oZXJpdGVkUHJvcHNbYXR0ci5uYW1lXSA9IGF0dHIudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4odGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLCBpbmhlcml0ZWRQcm9wcyk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuOiBhbnksIGluaGVyaXRlZFByb3BzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgICAgIEFycmF5LmZyb20oY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmKCFjaGlsZC5oYXNBdHRyaWJ1dGUoJ2Jhc2Utd2lkZ2V0JykpXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGQuY2hpbGRyZW4sIGluaGVyaXRlZFByb3BzKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGluaGVyaXRlZFByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICBpZihrZXkuaW5jbHVkZXMoXCIuZXZlbnRcIikgfHwga2V5LmluY2x1ZGVzKCcuYmluZCcpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQXR0cihrZXksIHZhbHVlLCB7d2lkZ2V0OiBjaGlsZC53aWRnZXQsIG5hdGl2ZUVsZW1lbnQ6IGNoaWxkfSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZGdldFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGxiYWNrKGV2ZW50TmFtZSwgbG9jYWxzPzogb2JqZWN0KSB7XG4gICAgICAgIGxvY2FscyA9IF8uYXNzaWduKHsgd2lkZ2V0OiB0aGlzIH0sIGxvY2Fscyk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjayhldmVudE5hbWUsIGxvY2Fscyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25BdHRhY2goKSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2soJ2F0dGFjaCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGV0YWNoKCkge1xuICAgICAgICB0aGlzLmNhbGxiYWNrKCdkZXRhY2gnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2FsbGJhY2soJ2Rlc3Ryb3knKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Attribute, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, Attribute, Inject, Optional, NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { PROP_STRING, PROP_BOOLEAN, register,
|
|
4
|
+
import { PROP_STRING, PROP_BOOLEAN, register, styler, PROP_TYPE, provideAs, provideAsWidgetRef, StylableComponent, getWidgetPropsByType, WmComponentsModule } from '@wm/components/base';
|
|
5
5
|
import * as i1 from '@wm/core';
|
|
6
|
-
import { noop } from '@wm/core';
|
|
6
|
+
import { noop, addClass } from '@wm/core';
|
|
7
7
|
import { capitalize, cloneDeep } from 'lodash-es';
|
|
8
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
9
|
+
import { DatasetAwareFormComponent } from '@wm/components/input';
|
|
10
|
+
import { Subject } from 'rxjs';
|
|
8
11
|
|
|
9
12
|
const customWidgetProps = new Map([
|
|
10
13
|
['class', PROP_STRING],
|
|
@@ -20,15 +23,16 @@ const registerProps$1 = () => {
|
|
|
20
23
|
const registeredPropsSet = new Set();
|
|
21
24
|
let customWidgetPropsMap = {};
|
|
22
25
|
const DEFAULT_CLS$1 = 'app-html-container';
|
|
23
|
-
class CustomWidgetContainerDirective extends
|
|
26
|
+
class CustomWidgetContainerDirective extends DatasetAwareFormComponent {
|
|
24
27
|
static { this.initializeProps = registerProps$1(); }
|
|
25
|
-
constructor(inj, elRef, widgetname) {
|
|
28
|
+
constructor(inj, elRef, widgetname, explicitContext) {
|
|
26
29
|
const widgetType = `wm-custom-${widgetname}`;
|
|
27
30
|
const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS$1 };
|
|
28
31
|
let resolveFn = noop;
|
|
29
|
-
super(inj, WIDGET_CONFIG, undefined, new Promise(res => resolveFn = res));
|
|
32
|
+
super(inj, WIDGET_CONFIG, explicitContext, undefined, new Promise(res => resolveFn = res));
|
|
30
33
|
this.props = {};
|
|
31
34
|
this.propsReady = resolveFn;
|
|
35
|
+
this.configSubject = new Subject();
|
|
32
36
|
this.widgetType = widgetType;
|
|
33
37
|
this.name = elRef.nativeElement.getAttribute('name');
|
|
34
38
|
styler(this.nativeElement, this);
|
|
@@ -45,6 +49,17 @@ class CustomWidgetContainerDirective extends StylableComponent {
|
|
|
45
49
|
}
|
|
46
50
|
}));
|
|
47
51
|
}
|
|
52
|
+
get datavalue() {
|
|
53
|
+
if (this.nativeElement.children.length) {
|
|
54
|
+
let value = this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue;
|
|
55
|
+
this.updateDataValue(value);
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
set datavalue(value) {
|
|
60
|
+
if (this.nativeElement.children.length)
|
|
61
|
+
this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue = value;
|
|
62
|
+
}
|
|
48
63
|
setBaseWidgetName(baseWidgetType) {
|
|
49
64
|
let splitArr = baseWidgetType.split('-'), modifiedArr = [];
|
|
50
65
|
modifiedArr = splitArr.map((item) => {
|
|
@@ -54,7 +69,14 @@ class CustomWidgetContainerDirective extends StylableComponent {
|
|
|
54
69
|
this.baseWidgetName = modifiedArr.join('');
|
|
55
70
|
}
|
|
56
71
|
setProps(config, resolveFn) {
|
|
57
|
-
this.
|
|
72
|
+
this.config = config;
|
|
73
|
+
this.configSubject.next();
|
|
74
|
+
if (config.customClasses) {
|
|
75
|
+
addClass(this.nativeElement, config.customClasses);
|
|
76
|
+
}
|
|
77
|
+
this.asAttr = this.nativeElement.children[0].children[0].hasAttribute('as');
|
|
78
|
+
if (this.asAttr)
|
|
79
|
+
this.setBaseWidgetName(config.widgetType);
|
|
58
80
|
if (!config || !config.properties) {
|
|
59
81
|
return;
|
|
60
82
|
}
|
|
@@ -87,14 +109,28 @@ class CustomWidgetContainerDirective extends StylableComponent {
|
|
|
87
109
|
customWidgetPropsMap[this.widgetType] = this.props;
|
|
88
110
|
return propsMap;
|
|
89
111
|
}
|
|
112
|
+
updateDataValue(value) {
|
|
113
|
+
if (this.formControl && this.formControl.control && value !== this.formControl.control.value)
|
|
114
|
+
this.formControl.control.setValue(value);
|
|
115
|
+
}
|
|
90
116
|
updateData(key, value) {
|
|
91
117
|
let modifiedKey = key.replace('base-', '');
|
|
92
|
-
this
|
|
93
|
-
|
|
94
|
-
|
|
118
|
+
if (this.asAttr) {
|
|
119
|
+
this[this.baseWidgetName][modifiedKey] = value;
|
|
120
|
+
this.nativeElement.children[0].children[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;
|
|
121
|
+
this[this.baseWidgetName].initDatasetItems();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this[modifiedKey] = value;
|
|
125
|
+
this.nativeElement.children[0].children[0]['widget'].viewParent[modifiedKey] = value;
|
|
126
|
+
}
|
|
127
|
+
if (this.formControl && modifiedKey === 'datavalue')
|
|
128
|
+
this.updateDataValue(value);
|
|
95
129
|
}
|
|
96
|
-
static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('widgetname')); }; }
|
|
130
|
+
static { this.ɵfac = function CustomWidgetContainerDirective_Factory(t) { return new (t || CustomWidgetContainerDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('widgetname'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
|
|
97
131
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomWidgetContainerDirective, selectors: [["", "wmWidgetContainer", ""]], exportAs: ["wmWidgetContainer"], features: [i0.ɵɵProvidersFeature([
|
|
132
|
+
provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),
|
|
133
|
+
provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),
|
|
98
134
|
provideAsWidgetRef(CustomWidgetContainerDirective)
|
|
99
135
|
]), i0.ɵɵInheritDefinitionFeature] }); }
|
|
100
136
|
}
|
|
@@ -103,6 +139,8 @@ class CustomWidgetContainerDirective extends StylableComponent {
|
|
|
103
139
|
args: [{
|
|
104
140
|
selector: '[wmWidgetContainer]',
|
|
105
141
|
providers: [
|
|
142
|
+
provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),
|
|
143
|
+
provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),
|
|
106
144
|
provideAsWidgetRef(CustomWidgetContainerDirective)
|
|
107
145
|
],
|
|
108
146
|
exportAs: 'wmWidgetContainer'
|
|
@@ -110,6 +148,11 @@ class CustomWidgetContainerDirective extends StylableComponent {
|
|
|
110
148
|
}], () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
111
149
|
type: Attribute,
|
|
112
150
|
args: ['widgetname']
|
|
151
|
+
}] }, { type: undefined, decorators: [{
|
|
152
|
+
type: Inject,
|
|
153
|
+
args: ['EXPLICIT_CONTEXT']
|
|
154
|
+
}, {
|
|
155
|
+
type: Optional
|
|
113
156
|
}] }], null); })();
|
|
114
157
|
|
|
115
158
|
const registerProps = () => {
|
|
@@ -130,7 +173,7 @@ class CustomWidgetDirective extends StylableComponent {
|
|
|
130
173
|
this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
|
|
131
174
|
}
|
|
132
175
|
ngAfterContentInit() {
|
|
133
|
-
let customWidget = this.nativeElement.closest('[customwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(getWidgetPropsByType("wm-custom-widget-container").keys());
|
|
176
|
+
let customWidget = this.nativeElement.closest('[customwidgetcontainer]') || this.nativeElement.closest('[wmwidgetcontainer]'), inheritedProps = {}, customWidgetProps = Array.from(getWidgetPropsByType("wm-custom-widget-container").keys());
|
|
134
177
|
for (let i = 0; i < customWidget.attributes.length; i++) {
|
|
135
178
|
let attr = customWidget.attributes.item(i);
|
|
136
179
|
if (attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget.props.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget-container.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-prop.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget.module.ts","../../../../../projects/components/widgets/advanced/custom/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const customWidgetProps =\n new Map(\n [\n ['class', PROP_STRING],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['widgetname', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }]\n ]\n )\n\nexport const registerProps = () => {\n register(\n 'wm-custom-widget',\n customWidgetProps\n );\n};\n","import { Attribute, Directive, ElementRef, Injector, OnInit } from '@angular/core';\n\nimport { noop } from '@wm/core';\nimport { PROP_TYPE, provideAsWidgetRef, register, StylableComponent, styler } from '@wm/components/base';\n\nimport { customWidgetProps } from './custom-widget.props';\nimport { registerProps } from \"../custom-widget-container/custom-widget.props\";\nimport {capitalize, cloneDeep} from 'lodash-es';\n\nconst registeredPropsSet = new Set<string>();\n\nlet customWidgetPropsMap: { [key: string]: any } = {};\n\nconst DEFAULT_CLS = 'app-html-container';\n\ndeclare const _;\n\n@Directive({\n selector: '[wmWidgetContainer]',\n providers: [\n provideAsWidgetRef(CustomWidgetContainerDirective)\n ],\n exportAs: 'wmWidgetContainer'\n})\nexport class CustomWidgetContainerDirective extends StylableComponent implements OnInit {\n static initializeProps = registerProps();\n\n widgetType: string;\n name: string;\n propsReady: Function;\n widgetName: string;\n private props: any = {};\n private baseWidgetName: string;\n\n constructor(\n inj: Injector, elRef: ElementRef,\n @Attribute('widgetname') widgetname: string,\n ) {\n const widgetType = `wm-custom-${widgetname}`;\n const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS };\n let resolveFn: Function = noop;\n\n super(inj, WIDGET_CONFIG, undefined, new Promise(res => resolveFn = res));\n this.propsReady = resolveFn;\n this.widgetType = widgetType;\n this.name = elRef.nativeElement.getAttribute('name');\n\n styler(this.nativeElement, this);\n\n // Call on property change on name to set name attribute on element.\n this.registerReadyStateListener(() => {\n super.onPropertyChange('name', this.name);\n });\n\n this.registerPropertyChangeListener(((key: string, nv: any, ov?: any) => {\n if (!key.startsWith('prop-')) return;\n const propName = key.slice(5)\n if (this.props.hasOwnProperty(propName) && this.props[propName] !== nv) {\n this.props[propName] = nv;\n }\n }))\n }\n\n setBaseWidgetName(baseWidgetType: string) {\n let splitArr = baseWidgetType.split('-'), modifiedArr = [];\n modifiedArr = splitArr.map((item: any) => {\n item = item !== 'wm' ? capitalize(item) : item;\n return item;\n });\n this.baseWidgetName = modifiedArr.join('');\n }\n\n public setProps(config, resolveFn: Function) {\n this.setBaseWidgetName(config.widgetType);\n if (!config || !config.properties) {\n return;\n }\n if (!registeredPropsSet.has(this.widgetType)) {\n register(this.widgetType, this.prepareProps(config.properties));\n }else{\n this.props = Object.assign(this.props, cloneDeep(customWidgetPropsMap[this.widgetType]))\n }\n\n this.propsReady(resolveFn);\n }\n\n private prepareProps(props = {}) {\n const propsMap = new Map(customWidgetProps);\n Object.entries(props).forEach(([k, v]: [string, any]) => {\n let type = PROP_TYPE.STRING;\n\n if (v.type === 'boolean') {\n type = PROP_TYPE.BOOLEAN;\n } else if (v.type === 'number') {\n type = PROP_TYPE.NUMBER;\n } else if (v.type !== 'string') {\n type = v.type;\n }\n\n // Do not set the 'bind:*' values\n propsMap.set(`prop-${k}`, { type, value: _.startsWith(v.value, 'bind:') ? undefined : v.value });\n this.props[k] = v.value;\n });\n\n registeredPropsSet.add(this.widgetType);\n customWidgetPropsMap[this.widgetType] = this.props\n\n return propsMap;\n }\n\n updateData(key: string, value: any) {\n let modifiedKey = key.replace('base-', '');\n this[this.baseWidgetName][modifiedKey] = value;\n this.nativeElement.childNodes[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;\n this[this.baseWidgetName].initDatasetItems();\n }\n}\n","import {PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-custom-widget-container',\n new Map(\n [\n ['name', PROP_STRING],\n ['class', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterContentInit, Directive, ElementRef, Injector, OnDestroy, Optional } from '@angular/core';\n\nimport {Viewport, ViewportEvent} from '@wm/core';\nimport { registerProps } from './custom-widget-prop';\nimport { StylableComponent, provideAsWidgetRef, getWidgetPropsByType } from '@wm/components/base';\n\nconst DEFAULT_CLS = 'app-custom-widget-container clearfix';\nconst WIDGET_CONFIG = {widgetType: 'wm-custom-widget-container', hostClass: DEFAULT_CLS};\ndeclare const _;\n\n@Directive({\n selector: '[wmCustomWidget]',\n providers: [\n provideAsWidgetRef(CustomWidgetDirective)\n ]\n})\nexport class CustomWidgetDirective extends StylableComponent implements OnDestroy, AfterContentInit {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, private viewport: Viewport) {\n super(inj, WIDGET_CONFIG);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, data => this.callback('resize', data)));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, data => this.callback('orientationchange', data)));\n }\n ngAfterContentInit() {\n let customWidget = this.nativeElement.closest('[customwidgetcontainer]'),\n inheritedProps = {},\n customWidgetProps = Array.from(getWidgetPropsByType(\"wm-custom-widget-container\").keys());\n for(let i = 0; i < customWidget.attributes.length; i++) {\n let attr = customWidget.attributes.item(i);\n if(attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))\n inheritedProps[attr.name] = attr.value;\n }\n this.processChildren(this.nativeElement.children, inheritedProps);\n }\n\n processChildren(children: any, inheritedProps: { [key: string]: string }) {\n Array.from(children).forEach((child: any) => {\n if(!child.hasAttribute('base-widget'))\n this.processChildren(child.children, inheritedProps);\n else {\n for (const [key, value] of Object.entries(inheritedProps)) {\n if(key.includes(\".event\") || key.includes('.bind'))\n this.processAttr(key, value, {widget: child.widget, nativeElement: child});\n else\n child.widget[key] = value;\n }\n }\n });\n }\n\n private callback(eventName, locals?: object) {\n locals = _.assign({ widget: this }, locals);\n this.invokeEventCallback(eventName, locals);\n }\n\n public ngOnAttach() {\n this.callback('attach');\n }\n\n public ngOnDetach() {\n this.callback('detach');\n }\n\n public ngOnDestroy() {\n this.callback('destroy');\n super.ngOnDestroy();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { CustomWidgetContainerDirective } from './custom-widget-container/custom-widget-container.directive';\nimport { CustomWidgetDirective } from './custom-widget.directive'\nconst components = [\n CustomWidgetContainerDirective,\n CustomWidgetDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class CustomModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS"],"mappings":";;;;;;;;AAEO,MAAM,iBAAiB,GAC1B,IAAI,GAAG,CACH;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;AAC7C,CAAA,CACJ,CAAA;AAEE,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,kBAAkB,EAClB,iBAAiB,CACpB,CAAC;AACN,CAAC;;ACTD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7C,IAAI,oBAAoB,GAA2B,EAAE,CAAC;AAEtD,MAAMC,aAAW,GAAG,oBAAoB,CAAC;AAWnC,MAAO,8BAA+B,SAAQ,iBAAiB,CAAA;AAC1D,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB,EAAA;AASzC,IAAA,WAAA,CACI,GAAa,EAAE,KAAiB,EACP,UAAkB,EAAA;AAE3C,QAAA,MAAM,UAAU,GAAG,CAAa,UAAA,EAAA,UAAU,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,SAAS,EAAEC,aAAW,EAAE,CAAC;QAC7D,IAAI,SAAS,GAAa,IAAI,CAAC;AAE/B,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QAXtE,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;AAYpB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;;AAGjC,QAAA,IAAI,CAAC,0BAA0B,CAAC,MAAK;YACjC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,KAAI;AACpE,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO;YACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC7B,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE;AACpE,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aAC7B;SACJ,EAAE,CAAA;KACN;AAED,IAAA,iBAAiB,CAAC,cAAsB,EAAA;AACpC,QAAA,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC;QAC3D,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACrC,YAAA,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC9C;IAEM,QAAQ,CAAC,MAAM,EAAE,SAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/B,OAAO;SACV;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1C,YAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;SACnE;aAAI;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SAC3F;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KAC9B;IAEO,YAAY,CAAC,KAAK,GAAG,EAAE,EAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,KAAI;AACpD,YAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;AAE5B,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACtB,gBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;aAC5B;AAAM,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,gBAAA,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;aAC3B;AAAM,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,gBAAA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aACjB;;AAGD,YAAA,QAAQ,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,CAAC,CAAE,CAAA,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,SAAC,CAAC,CAAC;AAEH,QAAA,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;AAElD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAED,UAAU,CAAC,GAAW,EAAE,KAAU,EAAA;QAC9B,IAAI,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAChG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;KAChD;AA3FQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,sCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,8BAA8B,+FAYxB,YAAY,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAZlB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,8BAA8B,EAL5B,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,8BAA8B,CAAC;AACrD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGQ,8BAA8B,EAAA,CAAA;cAP1C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAgC,8BAAA,CAAA;AACrD,iBAAA;AACD,gBAAA,QAAQ,EAAE,mBAAmB;AAChC,aAAA,CAAA;;sBAaQ,SAAS;uBAAC,YAAY,CAAA;;;AClCxB,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,4BAA4B,EAC5B,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,OAAO,EAAE,WAAW,CAAC;AACzB,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACND,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAC3D,MAAM,aAAa,GAAG,EAAC,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AASnF,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AACjD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAEzC,WAAY,CAAA,GAAa,EAAU,QAAkB,EAAA;AACjD,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QADK,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAEjD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,QAAA,6BAAuB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,mBAAA,yCAAmC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7I;IACD,kBAAkB,GAAA;AACd,QAAA,IAAI,YAAY,GAAU,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAC3E,cAAc,GAAQ,EAAE,EACxB,iBAAiB,GAAK,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAChG,QAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SAC9C;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;KACrE;IAED,eAAe,CAAC,QAAa,EAAE,cAAyC,EAAA;QACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,IAAG,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;iBACpD;AACD,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACvD,oBAAA,IAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9C,wBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC,CAAC;;AAE3E,wBAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACjC;aACJ;AACL,SAAC,CAAC,CAAC;KACN;IAEO,QAAQ,CAAC,SAAS,EAAE,MAAe,EAAA;AACvC,QAAA,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAC/C;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzB,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;sFAnDQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,qBAAqB,EAJnB,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,qBAAqB,CAAC;AAC5C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEQ,qBAAqB,EAAA,CAAA;cANjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAuB,qBAAA,CAAA;AAC5C,iBAAA;AACJ,aAAA,CAAA;;;ACRD,MAAM,UAAU,GAAG;IACf,8BAA8B;IAC9B,qBAAqB;CACxB,CAAC;MAUW,YAAY,CAAA;6EAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;uEANjB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,YAAY,EAAA,CAAA;cARxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,YAAY,mBAZrB,8BAA8B;AAC9B,QAAA,qBAAqB,aAKjB,YAAY;AACZ,QAAA,kBAAkB,aAPtB,8BAA8B;QAC9B,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACTzB;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget.props.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget-container.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-prop.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget.module.ts","../../../../../projects/components/widgets/advanced/custom/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const customWidgetProps =\n new Map(\n [\n ['class', PROP_STRING],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['widgetname', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }]\n ]\n )\n\nexport const registerProps = () => {\n register(\n 'wm-custom-widget',\n customWidgetProps\n );\n};\n","import {Attribute, Directive, ElementRef, Inject, Injector, OnInit, Optional} from '@angular/core';\n\nimport { addClass, noop } from '@wm/core';\nimport {PROP_TYPE, provideAs, provideAsWidgetRef, register, StylableComponent, styler} from '@wm/components/base';\n\nimport { customWidgetProps } from './custom-widget.props';\nimport { registerProps } from \"../custom-widget-container/custom-widget.props\";\nimport {capitalize, cloneDeep} from 'lodash-es';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {DatasetAwareFormComponent} from \"@wm/components/input\";\nimport {Subject} from \"rxjs\";\n\nconst registeredPropsSet = new Set<string>();\n\nlet customWidgetPropsMap: { [key: string]: any } = {};\n\nconst DEFAULT_CLS = 'app-html-container';\n\ndeclare const _;\n\n@Directive({\n selector: '[wmWidgetContainer]',\n providers: [\n provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),\n provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),\n provideAsWidgetRef(CustomWidgetContainerDirective)\n ],\n exportAs: 'wmWidgetContainer'\n})\nexport class CustomWidgetContainerDirective extends DatasetAwareFormComponent implements OnInit {\n static initializeProps = registerProps();\n\n widgetType: string;\n name: string;\n propsReady: Function;\n widgetName: string;\n config: any;\n private props: any = {};\n private baseWidgetName: string;\n asAttr: boolean;\n configSubject: Subject<any>;\n\n constructor(\n inj: Injector, elRef: ElementRef,\n @Attribute('widgetname') widgetname: string,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n const widgetType = `wm-custom-${widgetname}`;\n const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS };\n let resolveFn: Function = noop;\n\n super(inj, WIDGET_CONFIG, explicitContext, undefined, new Promise(res => resolveFn = res));\n this.propsReady = resolveFn;\n this.configSubject = new Subject();\n this.widgetType = widgetType;\n this.name = elRef.nativeElement.getAttribute('name');\n\n styler(this.nativeElement, this);\n\n // Call on property change on name to set name attribute on element.\n this.registerReadyStateListener(() => {\n super.onPropertyChange('name', this.name);\n });\n\n this.registerPropertyChangeListener(((key: string, nv: any, ov?: any) => {\n if (!key.startsWith('prop-')) return;\n const propName = key.slice(5)\n if (this.props.hasOwnProperty(propName) && this.props[propName] !== nv) {\n this.props[propName] = nv;\n }\n }))\n }\n\n get datavalue() {\n if(this.nativeElement.children.length) {\n let value = this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue;\n this.updateDataValue(value);\n return value;\n }\n }\n\n set datavalue(value) {\n if(this.nativeElement.children.length)\n this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue = value;\n }\n\n setBaseWidgetName(baseWidgetType: string) {\n let splitArr = baseWidgetType.split('-'), modifiedArr = [];\n modifiedArr = splitArr.map((item: any) => {\n item = item !== 'wm' ? capitalize(item) : item;\n return item;\n });\n this.baseWidgetName = modifiedArr.join('');\n }\n\n public setProps(config, resolveFn: Function) {\n this.config = config;\n this.configSubject.next();\n if(config.customClasses){\n addClass(this.nativeElement, config.customClasses);\n }\n this.asAttr = this.nativeElement.children[0].children[0].hasAttribute('as');\n if(this.asAttr)\n this.setBaseWidgetName(config.widgetType);\n if (!config || !config.properties) {\n return;\n }\n if (!registeredPropsSet.has(this.widgetType)) {\n register(this.widgetType, this.prepareProps(config.properties));\n }else{\n this.props = Object.assign(this.props, cloneDeep(customWidgetPropsMap[this.widgetType]))\n }\n\n this.propsReady(resolveFn);\n }\n\n private prepareProps(props = {}) {\n const propsMap = new Map(customWidgetProps);\n Object.entries(props).forEach(([k, v]: [string, any]) => {\n let type = PROP_TYPE.STRING;\n\n if (v.type === 'boolean') {\n type = PROP_TYPE.BOOLEAN;\n } else if (v.type === 'number') {\n type = PROP_TYPE.NUMBER;\n } else if (v.type !== 'string') {\n type = v.type;\n }\n\n // Do not set the 'bind:*' values\n propsMap.set(`prop-${k}`, { type, value: _.startsWith(v.value, 'bind:') ? undefined : v.value });\n this.props[k] = v.value;\n });\n\n registeredPropsSet.add(this.widgetType);\n customWidgetPropsMap[this.widgetType] = this.props\n\n return propsMap;\n }\n\n updateDataValue(value) {\n if(this.formControl && this.formControl.control && value !== this.formControl.control.value)\n this.formControl.control.setValue(value);\n }\n\n updateData(key: string, value: any) {\n let modifiedKey = key.replace('base-', '');\n if(this.asAttr) {\n this[this.baseWidgetName][modifiedKey] = value;\n this.nativeElement.children[0].children[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;\n this[this.baseWidgetName].initDatasetItems();\n } else {\n this[modifiedKey] = value;\n this.nativeElement.children[0].children[0]['widget'].viewParent[modifiedKey] = value;\n }\n if(this.formControl && modifiedKey === 'datavalue')\n this.updateDataValue(value);\n }\n}\n","import {PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-custom-widget-container',\n new Map(\n [\n ['name', PROP_STRING],\n ['class', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterContentInit, Directive, ElementRef, Injector, OnDestroy, Optional } from '@angular/core';\n\nimport {Viewport, ViewportEvent} from '@wm/core';\nimport { registerProps } from './custom-widget-prop';\nimport { StylableComponent, provideAsWidgetRef, getWidgetPropsByType } from '@wm/components/base';\n\nconst DEFAULT_CLS = 'app-custom-widget-container clearfix';\nconst WIDGET_CONFIG = {widgetType: 'wm-custom-widget-container', hostClass: DEFAULT_CLS};\ndeclare const _;\n\n@Directive({\n selector: '[wmCustomWidget]',\n providers: [\n provideAsWidgetRef(CustomWidgetDirective)\n ]\n})\nexport class CustomWidgetDirective extends StylableComponent implements OnDestroy, AfterContentInit {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, private viewport: Viewport) {\n super(inj, WIDGET_CONFIG);\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, data => this.callback('resize', data)));\n this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, data => this.callback('orientationchange', data)));\n }\n ngAfterContentInit() {\n let customWidget = this.nativeElement.closest('[customwidgetcontainer]') || this.nativeElement.closest('[wmwidgetcontainer]'),\n inheritedProps = {},\n customWidgetProps = Array.from(getWidgetPropsByType(\"wm-custom-widget-container\").keys());\n for(let i = 0; i < customWidget.attributes.length; i++) {\n let attr = customWidget.attributes.item(i);\n if(attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))\n inheritedProps[attr.name] = attr.value;\n }\n this.processChildren(this.nativeElement.children, inheritedProps);\n }\n\n processChildren(children: any, inheritedProps: { [key: string]: string }) {\n Array.from(children).forEach((child: any) => {\n if(!child.hasAttribute('base-widget'))\n this.processChildren(child.children, inheritedProps);\n else {\n for (const [key, value] of Object.entries(inheritedProps)) {\n if(key.includes(\".event\") || key.includes('.bind'))\n this.processAttr(key, value, {widget: child.widget, nativeElement: child});\n else\n child.widget[key] = value;\n }\n }\n });\n }\n\n private callback(eventName, locals?: object) {\n locals = _.assign({ widget: this }, locals);\n this.invokeEventCallback(eventName, locals);\n }\n\n public ngOnAttach() {\n this.callback('attach');\n }\n\n public ngOnDetach() {\n this.callback('detach');\n }\n\n public ngOnDestroy() {\n this.callback('destroy');\n super.ngOnDestroy();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { CustomWidgetContainerDirective } from './custom-widget-container/custom-widget-container.directive';\nimport { CustomWidgetDirective } from './custom-widget.directive'\nconst components = [\n CustomWidgetContainerDirective,\n CustomWidgetDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class CustomModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS"],"mappings":";;;;;;;;;;;AAEO,MAAM,iBAAiB,GAC1B,IAAI,GAAG,CACH;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;AAC7C,CAAA,CACJ,CAAA;AAEE,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,kBAAkB,EAClB,iBAAiB,CACpB,CAAC;AACN,CAAC;;ACND,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE7C,IAAI,oBAAoB,GAA2B,EAAE,CAAC;AAEtD,MAAMC,aAAW,GAAG,oBAAoB,CAAC;AAanC,MAAO,8BAA+B,SAAQ,yBAAyB,CAAA;AAClE,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGD,eAAa,EAAhB,CAAmB,EAAA;AAYzC,IAAA,WAAA,CACI,GAAa,EAAE,KAAiB,EACP,UAAkB,EACH,eAAoB,EAAA;AAE5D,QAAA,MAAM,UAAU,GAAG,CAAa,UAAA,EAAA,UAAU,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,SAAS,EAAEC,aAAW,EAAE,CAAC;QAC7D,IAAI,SAAS,GAAa,IAAI,CAAC;QAE/B,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QAdvF,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;AAepB,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;;AAGjC,QAAA,IAAI,CAAC,0BAA0B,CAAC,MAAK;YACjC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8BAA8B,EAAE,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,KAAI;AACpE,YAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO;YACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC7B,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE;AACpE,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aAC7B;SACJ,EAAE,CAAA;KACN;AAED,IAAA,IAAI,SAAS,GAAA;QACT,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;AACtF,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;IAED,IAAI,SAAS,CAAC,KAAK,EAAA;AACf,QAAA,IAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;YACjC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;KACzF;AAED,IAAA,iBAAiB,CAAC,cAAsB,EAAA;AACpC,QAAA,IAAI,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC;QAC3D,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,KAAI;AACrC,YAAA,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC9C;IAEM,QAAQ,CAAC,MAAM,EAAE,SAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAG,MAAM,CAAC,aAAa,EAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAG,IAAI,CAAC,MAAM;AACV,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC/B,OAAO;SACV;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1C,YAAA,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;SACnE;aAAI;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SAC3F;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KAC9B;IAEO,YAAY,CAAC,KAAK,GAAG,EAAE,EAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,KAAI;AACpD,YAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;AAE5B,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;AACtB,gBAAA,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;aAC5B;AAAM,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,gBAAA,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;aAC3B;AAAM,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,gBAAA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aACjB;;AAGD,YAAA,QAAQ,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,CAAC,CAAE,CAAA,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5B,SAAC,CAAC,CAAC;AAEH,QAAA,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;AAElD,QAAA,OAAO,QAAQ,CAAC;KACnB;AAED,IAAA,eAAe,CAAC,KAAK,EAAA;AACjB,QAAA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK;YACvF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAChD;IAED,UAAU,CAAC,GAAW,EAAE,KAAU,EAAA;QAC9B,IAAI,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3C,QAAA,IAAG,IAAI,CAAC,MAAM,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAC1G,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;SAChD;aAAM;AACH,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SACxF;AACD,QAAA,IAAG,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,WAAW;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KACnC;+FAhIQ,8BAA8B,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAexB,YAAY,CAAA,EAAA,EAAA,CAAA,iBAAA,CACf,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAhBrB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,8BAA8B,EAP5B,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,8BAA8B,EAAE,iBAAiB,EAAE,IAAI,CAAC;AAClE,gBAAA,SAAS,CAAC,8BAA8B,EAAE,aAAa,EAAE,IAAI,CAAC;gBAC9D,kBAAkB,CAAC,8BAA8B,CAAC;AACrD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAGQ,8BAA8B,EAAA,CAAA;cAT1C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,SAAS,EAAE;AACP,oBAAA,SAAS,CAAiC,8BAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AAClE,oBAAA,SAAS,CAAiC,8BAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AAC9D,oBAAA,kBAAkB,CAAgC,8BAAA,CAAA;AACrD,iBAAA;AACD,gBAAA,QAAQ,EAAE,mBAAmB;AAChC,aAAA,CAAA;;sBAgBQ,SAAS;uBAAC,YAAY,CAAA;;sBACtB,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;;AC3CtC,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,4BAA4B,EAC5B,IAAI,GAAG,CACH;QACI,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,OAAO,EAAE,WAAW,CAAC;AACzB,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACND,MAAM,WAAW,GAAG,sCAAsC,CAAC;AAC3D,MAAM,aAAa,GAAG,EAAC,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AASnF,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AACjD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAEzC,WAAY,CAAA,GAAa,EAAU,QAAkB,EAAA;AACjD,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QADK,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAEjD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,QAAA,6BAAuB,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA,mBAAA,yCAAmC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7I;IACD,kBAAkB,GAAA;AACd,QAAA,IAAI,YAAY,GAAU,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAChI,cAAc,GAAQ,EAAE,EACxB,iBAAiB,GAAK,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAChG,QAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;SAC9C;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;KACrE;IAED,eAAe,CAAC,QAAa,EAAE,cAAyC,EAAA;QACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;AACxC,YAAA,IAAG,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;iBACpD;AACD,gBAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACvD,oBAAA,IAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9C,wBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC,CAAC;;AAE3E,wBAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACjC;aACJ;AACL,SAAC,CAAC,CAAC;KACN;IAEO,QAAQ,CAAC,SAAS,EAAE,MAAe,EAAA;AACvC,QAAA,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;KAC/C;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC3B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzB,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;sFAnDQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,qBAAqB,EAJnB,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,qBAAqB,CAAC;AAC5C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEQ,qBAAqB,EAAA,CAAA;cANjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAuB,qBAAA,CAAA;AAC5C,iBAAA;AACJ,aAAA,CAAA;;;ACRD,MAAM,UAAU,GAAG;IACf,8BAA8B;IAC9B,qBAAqB;CACxB,CAAC;MAUW,YAAY,CAAA;6EAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;uEANjB,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,YAAY,EAAA,CAAA;cARxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,YAAY,mBAZrB,8BAA8B;AAC9B,QAAA,qBAAqB,aAKjB,YAAY;AACZ,QAAA,kBAAkB,aAPtB,8BAA8B;QAC9B,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACTzB;;AAEG;;;;"}
|
|
@@ -789,7 +789,7 @@
|
|
|
789
789
|
}
|
|
790
790
|
i1.resetChangeFromWatch();
|
|
791
791
|
const widgetProps = getWidgetPropsByType(component.getWidgetSubType());
|
|
792
|
-
const propInfo = widgetProps.get(key);
|
|
792
|
+
const propInfo = widgetProps ? widgetProps.get(key) : undefined;
|
|
793
793
|
if (propInfo) {
|
|
794
794
|
const type = propInfo.type;
|
|
795
795
|
if (type) {
|
|
@@ -1024,6 +1024,10 @@
|
|
|
1024
1024
|
else {
|
|
1025
1025
|
this.delayedInit = true;
|
|
1026
1026
|
initPromise.then((resolveFn) => {
|
|
1027
|
+
let formFieldCW = this.widgetSubType === 'wm-form-field-custom-widget', cw = this.widgetSubType.startsWith('wm-custom-');
|
|
1028
|
+
if (formFieldCW || cw) {
|
|
1029
|
+
this.customWidgetSubType = formFieldCW ? 'wm-form-field-' + lodashEs.last(this["formWidget"].config.widgetType.split('-')) : this["config"].widgetType;
|
|
1030
|
+
}
|
|
1027
1031
|
this.initWidget();
|
|
1028
1032
|
this.setInitProps();
|
|
1029
1033
|
resolveFn && resolveFn();
|
|
@@ -1283,7 +1287,7 @@
|
|
|
1283
1287
|
this.initState.delete(propName);
|
|
1284
1288
|
let viewParent = child ? child.widget.viewParent.viewParent : this.viewParent, context = child ? child.widget.context : this.context, widget = child ? child.widget : this.widget, isMuted = child ? child.widget.isMuted : this.isMuted, widgetProps = child ? child.widget.widgetProps : this.widgetProps, widgetId = child ? child.widget.widgetId : this.widgetId;
|
|
1285
1289
|
this.registerDestroyListener(i1.$watch(expr, viewParent, context, nv => {
|
|
1286
|
-
if (propName.startsWith('base-'))
|
|
1290
|
+
if (propName.startsWith('base-') && widget.updateData)
|
|
1287
1291
|
widget.updateData(propName, nv);
|
|
1288
1292
|
widget[propName] = nv;
|
|
1289
1293
|
}, getWatchIdentifier(widgetId, propName), propName === 'datasource', widgetProps.get(propName), () => isMuted));
|
|
@@ -1320,12 +1324,12 @@
|
|
|
1320
1324
|
const { 0: propName, 1: type, 2: meta, length } = attrName.split('.');
|
|
1321
1325
|
if (type === 'bind') {
|
|
1322
1326
|
// if the show property is bound, set the initial value to false
|
|
1323
|
-
if (propName === 'show') {
|
|
1327
|
+
if (propName === 'show' && !this.widgetSubType.startsWith('wm-custom-')) {
|
|
1324
1328
|
this.nativeElement.hidden = true;
|
|
1325
1329
|
}
|
|
1326
1330
|
this.processBindAttr(propName, attrValue, child);
|
|
1327
1331
|
}
|
|
1328
|
-
else if (type === 'event' && !this.nativeElement.hasAttribute('
|
|
1332
|
+
else if (type === 'event' && !this.nativeElement.hasAttribute('wmwidgetcontainer')) {
|
|
1329
1333
|
this.processEventAttr(propName, attrValue, meta, child);
|
|
1330
1334
|
}
|
|
1331
1335
|
else if (length === 1) {
|
|
@@ -1392,6 +1396,12 @@
|
|
|
1392
1396
|
this.initState = new Map();
|
|
1393
1397
|
// get the widget properties
|
|
1394
1398
|
const widgetProps = getWidgetPropsByType(this.widgetSubType);
|
|
1399
|
+
if (this.customWidgetSubType) {
|
|
1400
|
+
const customWidgetProps = getWidgetPropsByType(this.customWidgetSubType);
|
|
1401
|
+
customWidgetProps.forEach((v, k) => {
|
|
1402
|
+
widgetProps.set(k, v);
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1395
1405
|
widgetProps.forEach((v, k) => {
|
|
1396
1406
|
if (i1.isDefined(v.value)) {
|
|
1397
1407
|
this.initState.set(k, v.value);
|
|
@@ -2796,7 +2806,7 @@
|
|
|
2796
2806
|
class StateClassPipe {
|
|
2797
2807
|
transform(state) {
|
|
2798
2808
|
const stateClassMap = {
|
|
2799
|
-
'success': 'wi wi-
|
|
2809
|
+
'success': 'wi wi-check-circle text-success',
|
|
2800
2810
|
'error': 'wi wi-error text-danger'
|
|
2801
2811
|
};
|
|
2802
2812
|
return stateClassMap[state.toLowerCase()];
|
|
@@ -4303,7 +4313,13 @@
|
|
|
4303
4313
|
lodashEs.forEach(headerConfig, cols => {
|
|
4304
4314
|
if (lodashEs.get(cols, 'isGroup')) {
|
|
4305
4315
|
if (cols.field === field) {
|
|
4306
|
-
cols.columns
|
|
4316
|
+
const id = cols.columns?.findIndex((col) => col?.field === config.field);
|
|
4317
|
+
if (id == -1) {
|
|
4318
|
+
cols.columns[index] = config;
|
|
4319
|
+
}
|
|
4320
|
+
else {
|
|
4321
|
+
cols.columns[id] = config;
|
|
4322
|
+
}
|
|
4307
4323
|
}
|
|
4308
4324
|
else {
|
|
4309
4325
|
setHeaderConfig(cols.columns, config, field, index);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Inject, Pipe } from '@angular/core';
|
|
2
2
|
import { DatePipe, DecimalPipe } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { AbstractI18nService, CURRENCY_INFO, CustomPipeManager, hasOffsetStr, isDefined } from '@wm/core';
|
|
4
4
|
import { WmPipe } from "./wm-pipe";
|
|
5
5
|
import { filter, includes, isDate, isFunction, isObject, isUndefined, startsWith } from "lodash-es";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -340,7 +340,7 @@ export class FileIconClassPipe {
|
|
|
340
340
|
export class StateClassPipe {
|
|
341
341
|
transform(state) {
|
|
342
342
|
const stateClassMap = {
|
|
343
|
-
'success': 'wi wi-
|
|
343
|
+
'success': 'wi wi-check-circle text-success',
|
|
344
344
|
'error': 'wi wi-error text-danger'
|
|
345
345
|
};
|
|
346
346
|
return stateClassMap[state.toLowerCase()];
|
|
@@ -437,4 +437,4 @@ export class FileExtensionFromMimePipe {
|
|
|
437
437
|
name: 'fileExtensionFromMime'
|
|
438
438
|
}]
|
|
439
439
|
}], null, null); })();
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9waXBlcy9jdXN0b20tcGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQU8saUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7OztBQUlsRyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRTtJQUN6QixJQUFJLEtBQUssQ0FBQztJQUNWLG9HQUFvRztJQUNwRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELHdGQUF3RjtJQUN4RixLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFLRixNQUFNLE9B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RUFBMkUsRUFBRSxPQUFPO1lBQ3BGLDhCQUE4QixFQUFFLE1BQU07WUFDdEMsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLCtCQUErQixFQUFFLE1BQU07WUFDdkMsbUJBQW1CLEVBQUUsTUFBTTtZQUMzQixZQUFZLEVBQUUsT0FBTztZQUNyQix3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLHVCQUF1QixFQUFFLE1BQU07WUFDL0IsV0FBVyxFQUFFLE1BQU07WUFDbkIsWUFBWSxFQUFFLE9BQU87WUFDckIsWUFBWSxFQUFFLE9BQU87WUFDckIsWUFBWSxFQUFFLE9BQU87WUFDckIsV0FBVyxFQUFFLE9BQU87WUFDcEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsdUJBQXVCLEVBQUUsUUFBUTtZQUNqQywwQkFBMEIsRUFBRSxNQUFNO1lBQ2xDLG1FQUFtRSxFQUFFLE9BQU87WUFDNUUsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixpQ0FBaUMsRUFBRSxNQUFNO1lBQ3pDLGlCQUFpQixFQUFFLE1BQU07WUFDekIsWUFBWSxFQUFFLE1BQU07WUFDcEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsYUFBYSxFQUFFLE1BQU07WUFDckIsYUFBYSxFQUFFLE1BQU07WUFDckIsNkJBQTZCLEVBQUUsS0FBSztTQUN2QyxDQUFDO1FBRUYsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzswRkExRVEseUJBQXlCOytGQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FIckMsSUFBSTtlQUFDO2dCQUNGLElBQUksRUFBRSx1QkFBdUI7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaXBlLCBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDVVJSRU5DWV9JTkZPLCBpc0RlZmluZWQsIEFwcCwgQ3VzdG9tUGlwZU1hbmFnZXIsIEFic3RyYWN0STE4blNlcnZpY2UsIGhhc09mZnNldFN0ciB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFdtUGlwZSB9IGZyb20gXCIuL3dtLXBpcGVcIjtcbmltcG9ydCB7ZmlsdGVyLCBpbmNsdWRlcywgaXNEYXRlLCBpc0Z1bmN0aW9uLCBpc09iamVjdCwgaXNVbmRlZmluZWQsIHN0YXJ0c1dpdGh9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCBtb21lbnQ7XG5cbmNvbnN0IGdldEVwb2NoVmFsdWUgPSBkYXRhID0+IHtcbiAgICBsZXQgZXBvY2g7XG4gICAgLy8gRm9yIGRhdGEgaW4gZm9ybSBvZiBzdHJpbmcgbnVtYmVyICgnMTIzJyksIGNvbnZlcnQgdG8gbnVtYmVyICgxMjMpLiBBbmQgZG9uJ3QgcGFyc2UgZGF0ZSBvYmplY3RzLlxuICAgIGlmICghaXNEYXRlKGRhdGEpICYmICFpc05hTihkYXRhKSkge1xuICAgICAgICBkYXRhID0gcGFyc2VJbnQoZGF0YSwgMTApO1xuICAgIH1cbiAgICAvLyBnZXQgdGhlIHRpbWVzdGFtcCB2YWx1ZS4gSWYgZGF0YSBpcyB0aW1lIHN0cmluZywgYXBwZW5kIGRhdGUgc3RyaW5nIHRvIHRoZSB0aW1lIHZhbHVlXG4gICAgZXBvY2ggPSBtb21lbnQoZGF0YSkudmFsdWVPZigpIHx8IG1vbWVudChuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpICsgJyAnICsgZGF0YSkudmFsdWVPZigpO1xuICAgIHJldHVybiBlcG9jaDtcbn07XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUnXG59KVxuZXhwb3J0IGNsYXNzIFRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIHNlbGVjdGVkTG9jYWxlOiBzdHJpbmcsIG51bWJlcmZpbHRlcjogc3RyaW5nLCBsb2NhbGVmaWx0ZXI6IGFueSwgdHJhaWxpbmd6ZXJvOiBib29sZWFuLCBkZWNpbWFsVmFsdWU6IHN0cmluZywgc2tpcFRyYWlsaW5nWmVyb0NoZWNrPzogYm9vbGVhbiwgZm9ybWF0dGVkTG9jYWxlPyk6IGFueSB7XG4gICAgICAgIG51bWJlcmZpbHRlciA9IHRyYWlsaW5nemVybyAmJiAhc2tpcFRyYWlsaW5nWmVyb0NoZWNrID8gYDEuJHtkZWNpbWFsVmFsdWUubGVuZ3RofS0xNmA6IG51bWJlcmZpbHRlcjtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gZm9ybWF0dGVkTG9jYWxlID8gZm9ybWF0dGVkTG9jYWxlWydudW1iZXInXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBudW1iZXJmaWx0ZXIsIGxvY2FsZWZpbHRlciB8fCBsb2NhbGUgfHwgc2VsZWN0ZWRMb2NhbGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlKSB7IH1cblxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RvRGF0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVG9EYXRlUGlwZSBleHRlbmRzIFdtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8vIFRoaXMgbWV0aG9kIGNhbGxzIHRoZSBjdXN0b20gZm9ybWF0dGVyIGZuIGFmdGVyIGFwcGx5aW5nIHRoZSBleGlzaXRuZyBkYXRlIHBhdHRlcm5cbiAgICByZXR1cm5GbihkYXRhLCBhcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQ3VzdG9tUGlwZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBhcmdzWzBdID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1c3RvbUZvcm1hdHRlcihkYXRhLCBhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueSwgZm9ybWF0OiBhbnksIHRpbWV6b25lPywgY29tcEluc3RhbmNlPykge1xuICAgICAgICBsZXQgdGltZXN0YW1wO1xuICAgICAgICAvLyAnbnVsbCcgaXMgdG8gYmUgdHJlYXRlZCBhcyBhIHNwZWNpYWwgY2FzZSwgSWYgdXNlciB3YW50cyB0byBlbnRlciBudWxsIHZhbHVlLCBlbXB0eSBzdHJpbmcgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGJhY2tlbmRcbiAgICAgICAgaWYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRm4oJycsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKCcnLGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgdGltZXN0YW1wID0gZ2V0RXBvY2hWYWx1ZShkYXRhKTtcbiAgICAgICAgaWYgKHRpbWVzdGFtcCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ3RpbWVzdGFtcCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Gbih0aW1lc3RhbXAsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnVVRDJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKG5ldyBEYXRlKHRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWRWYWw7XG4gICAgICAgICAgICBjb25zdCB0aW1lWm9uZSA9IHRoaXMuaTE4blNlcnZpY2UgPyB0aGlzLmkxOG5TZXJ2aWNlLmdldFRpbWV6b25lKGNvbXBJbnN0YW5jZSkgOiB0aW1lem9uZTtcbiAgICAgICAgICAgIGlmICh0aW1lWm9uZSAmJiAoZGF0YSA9PT0gdGltZXN0YW1wIHx8IGhhc09mZnNldFN0cihkYXRhKSkpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBtb21lbnQodGltZXN0YW1wKS50eih0aW1lWm9uZSkuZm9ybWF0KGZvcm1hdC5yZXBsYWNlQWxsKCd5JywgJ1knKS5yZXBsYWNlQWxsKCdkJywgJ0QnKS5yZXBsYWNlKCdhJywgJ0EnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRpbWVzdGFtcCwgZm9ybWF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKGZvcm1hdHRlZFZhbCwgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5GbignJywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSwgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSwgcHJvdGVjdGVkIGN1c3RvbVBpcGVNYW5hZ2VyOiBDdXN0b21QaXBlTWFuYWdlcikge1xuICAgICAgICBzdXBlcigndG9EYXRlJywgY3VzdG9tUGlwZU1hbmFnZXIpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0b051bWJlcidcbn0pXG5leHBvcnQgY2xhc3MgVG9OdW1iZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEsIGZyYWNTaXplKSB7XG4gICAgICAgIGlmIChmcmFjU2l6ZSAmJiAhU3RyaW5nKGZyYWNTaXplKS5tYXRjaCgvXihcXGQrKT9cXC4oKFxcZCspKC0oXFxkKykpPyk/JC8pKSB7XG4gICAgICAgICAgICBmcmFjU2l6ZSA9ICcxLicgKyBmcmFjU2l6ZSArICctJyArIGZyYWNTaXplO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOYU4oK2RhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlICYmIHRoaXMuaTE4blNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgPyB0aGlzLmkxOG5TZXJ2aWNlLmdldHdpZGdldExvY2FsZSgpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTG9jYWxlID0gbG9jYWxlID8gbG9jYWxlWydudW1iZXInXSA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0oZGF0YSwgZnJhY1NpemUsIGZvcm1hdHRlZExvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsICBASW5qZWN0KEFic3RyYWN0STE4blNlcnZpY2UpIHByaXZhdGUgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UpIHtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndG9DdXJyZW5jeSdcbn0pXG5leHBvcnQgY2xhc3MgVG9DdXJyZW5jeVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgY3VycmVuY3lTeW1ib2wsIGZyYWNTaXplKSB7XG4gICAgICAgIGNvbnN0IF9jdXJyZW5jeVN5bWJvbCA9IChDVVJSRU5DWV9JTkZPW2N1cnJlbmN5U3ltYm9sXSB8fCB7fSkuc3ltYm9sIHx8IGN1cnJlbmN5U3ltYm9sIHx8ICcnO1xuICAgICAgICBsZXQgX3ZhbCA9IG5ldyBUb051bWJlclBpcGUodGhpcy5kZWNpbWFsUGlwZSwgdGhpcy5pMThuU2VydmljZSkudHJhbnNmb3JtKGRhdGEsIGZyYWNTaXplKTtcbiAgICAgICAgY29uc3QgaXNOZWdhdGl2ZU51bWJlciA9IHN0YXJ0c1dpdGgoX3ZhbCwgJy0nKTtcbiAgICAgICAgaWYgKGlzTmVnYXRpdmVOdW1iZXIpIHtcbiAgICAgICAgICAgIF92YWwgPSBfdmFsLnJlcGxhY2UoJy0nLCcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3ZhbCA/IGlzTmVnYXRpdmVOdW1iZXIgPyAnLScrIF9jdXJyZW5jeVN5bWJvbCArX3ZhbCA6X2N1cnJlbmN5U3ltYm9sICsgX3ZhbCA6ICcnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLCBASW5qZWN0KEFic3RyYWN0STE4blNlcnZpY2UpIHByaXZhdGUgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UpIHtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAncHJlZml4J1xufSlcbmV4cG9ydCBjbGFzcyBQcmVmaXhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEsIHBhZGRpbmcpIHtcbiAgICAgICAgcmV0dXJuIChpc1VuZGVmaW5lZChkYXRhKSB8fCBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09ICcnKSA/IGRhdGEgOiAoKHBhZGRpbmcgfHwgJycpICsgZGF0YSk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N1ZmZpeCdcbn0pXG5leHBvcnQgY2xhc3MgU3VmZml4UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBwYWRkaW5nKSB7XG4gICAgICAgIHJldHVybiAoaXNVbmRlZmluZWQoZGF0YSkgfHwgZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSAnJykgPyBkYXRhIDogKGRhdGEgKyAocGFkZGluZyB8fCAnJykpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIEN1c3RvbSBwaXBlOiBJdCBpcyB3b3JrIGFzIGludGVyY2VwdG9yIGJldHdlZW4gdGhlIHVzZXIgY3VzdG9tIHBpcGUgZnVuY3Rpb24gYW5kIGFuZ3VsYXIgcGlwZVxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ2N1c3RvbSdcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY3VzdG1lVXNlclBpcGU6IEN1c3RvbVBpcGVNYW5hZ2VyKSB7XG5cbiAgICB9XG4gICAgdHJhbnNmb3JtKGRhdGEsIHBpcGVuYW1lKSB7XG4gICAgICAgbGV0IGFyZ3VtZW50QXJyID0gW107XG4gICAgICAgZm9yKGxldCBpID0yIDsgaTxhcmd1bWVudHMubGVuZ3RoOyBpKysgKXtcbiAgICAgICAgYXJndW1lbnRBcnIucHVzaChhcmd1bWVudHNbaV0pO1xuICAgICAgIH1cblxuICAgICAgICBsZXQgcGlwZVJlZiA9IHRoaXMuY3VzdG1lVXNlclBpcGUuZ2V0Q3VzdG9tUGlwZShwaXBlbmFtZSk7XG4gICAgICAgIGlmICghcGlwZVJlZiB8fCAhaXNGdW5jdGlvbihwaXBlUmVmLmZvcm1hdHRlcikpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignZm9ybWF0dGVyIGlzIG5vdCBkZWZpbmVkLCBwbGVhc2UgY2hlY2sgdGhlIGN1c3RvbSBwaXBlcyBkb2N1bWVudGF0aW9uJyk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeXtcbiAgICAgICAgICAgIHJldHVybiBwaXBlUmVmLmZvcm1hdHRlcihkYXRhLCAuLi5hcmd1bWVudEFycik7XG4gICAgICAgIH0gY2F0Y2goZXJyb3Ipe1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignUGlwZSBuYW1lOiAnK3BpcGVuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgIH1cbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndGltZUZyb21Ob3cnXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVGcm9tTm93UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgICAgIGxldCB0aW1lc3RhbXA7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKGRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRpbWVzdGFtcCA9IGdldEVwb2NoVmFsdWUoZGF0YSk7XG4gICAgICAgIHJldHVybiB0aW1lc3RhbXAgPyBtb21lbnQodGltZXN0YW1wKS5mcm9tTm93KCkgOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ251bWJlclRvU3RyaW5nJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJUb1N0cmluZ1BpcGUgZXh0ZW5kcyBUb051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHsgfVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N0cmluZ1RvTnVtYmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdUb051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSkge1xuICAgICAgICByZXR1cm4gTnVtYmVyKGRhdGEpIHx8IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueVtdLCBmaWVsZDogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9iamVjdCBpcyBwYXNzZWQgYXMgZmlyc3QgcGFyYW10ZXJcbiAgICAgICAgaWYgKGlzT2JqZWN0KGZpZWxkKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcihkYXRhLCBmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYga2V5IHZhbHVlIHBhaXIgaXMgcHJvdmlkZWRcbiAgICAgICAgcmV0dXJuIGZpbHRlcihkYXRhLCBpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpbmNsdWRlcyhpdGVtW2ZpZWxkXSwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsZXNpemUnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShieXRlczogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlcikge1xuICAgICAgICBjb25zdCB1bml0cyA9IFtcbiAgICAgICAgICAgICdieXRlcycsXG4gICAgICAgICAgICAnS0InLFxuICAgICAgICAgICAgJ01CJyxcbiAgICAgICAgICAgICdHQicsXG4gICAgICAgICAgICAnVEInLFxuICAgICAgICAgICAgJ1BCJ1xuICAgICAgICBdO1xuXG4gICAgICAgIC8qVG9kb1tzaHViaGFtXVxuICAgICAgICBpZiAoaXNOYU4ocGFyc2VGbG9hdChieXRlcykpIHx8ICFpc0Zpbml0ZShieXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybiBpc01vYmlsZSgpID8gJycgOiAnPyc7XG4gICAgICAgIH0qL1xuICAgICAgICBsZXQgdW5pdCA9IDA7XG4gICAgICAgIHdoaWxlIChieXRlcyA+PSAxMDI0KSB7XG4gICAgICAgICAgICBieXRlcyAvPSAxMDI0O1xuICAgICAgICAgICAgdW5pdCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBieXRlcy50b0ZpeGVkKCtwcmVjaXNpb24pICsgJyAnICsgdW5pdHNbdW5pdF07XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2ZpbGVJY29uQ2xhc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVJY29uQ2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGZpbGVFeHRlbnNpb246IGFueSkge1xuICAgICAgICBjb25zdCBmaWxlQ2xhc3NNYXBwaW5nID0ge1xuICAgICAgICAgICAgJ3ppcCcgICAgICAgOiAgICdmYS1maWxlLXppcC1vJyxcbiAgICAgICAgICAgICdwZGYnICAgICAgIDogICAnZmEtZmlsZS1wZGYtbycsXG4gICAgICAgICAgICAncmFyJyAgICAgICA6ICAgJ2ZhLWZpbGUtYXJjaGl2ZS1vJyxcbiAgICAgICAgICAgICd0eHQnICAgICAgIDogICAnZmEtZmlsZS10ZXh0LW8nLFxuICAgICAgICAgICAgJ3BwdCcgICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncG90JyAgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwcHMnICAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3BwdHgnICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncG90eCcgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwcHN4JyAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ21wZycgICAgICAgOiAgICdmYS1maWxlLW1vdmllLW8nLFxuICAgICAgICAgICAgJ21wNCcgICAgICAgOiAgICdmYS1maWxlLW1vdmllLW8nLFxuICAgICAgICAgICAgJ21vdicgICAgICAgOiAgICdmYS1maWxlLW1vdmllLW8nLFxuICAgICAgICAgICAgJ2F2aScgICAgICAgOiAgICdmYS1maWxlLW1vdmllLW8nLFxuICAgICAgICAgICAgJ21wMycgICAgICAgOiAgICdmYS1maWxlLWF1ZGlvLW8nLFxuICAgICAgICAgICAgJ2RvY3gnICAgICAgOiAgICdmYS1maWxlLXdvcmQtbycsXG4gICAgICAgICAgICAnanMnICAgICAgICA6ICAgJ2ZhLWZpbGUtY29kZS1vJyxcbiAgICAgICAgICAgICdtZCcgICAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ2h0bWwnICAgICAgOiAgICdmYS1maWxlLWNvZGUtbycsXG4gICAgICAgICAgICAnY3NzJyAgICAgICA6ICAgJ2ZhLWZpbGUtY29kZS1vJyxcbiAgICAgICAgICAgICd4bHN4JyAgICAgIDogICAnZmEtZmlsZS1leGNlbC1vJyxcbiAgICAgICAgICAgICdwbmcnICAgICAgIDogICAnZmEtZmlsZS1pbWFnZS1vJyxcbiAgICAgICAgICAgICdqcGcnICAgICAgIDogICAnZmEtZmlsZS1pbWFnZS1vJyxcbiAgICAgICAgICAgICdqcGVnJyAgICAgIDogICAnZmEtZmlsZS1pbWFnZS1vJyxcbiAgICAgICAgICAgICdmaWxlJyAgICAgIDogICAnZmEtZmlsZS1vJyxcbiAgICAgICAgICAgICdkZWZhdWx0JyAgIDogICAnZmEtZmlsZS1vJ1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAnZmEgJyArIChmaWxlQ2xhc3NNYXBwaW5nW2ZpbGVFeHRlbnNpb25dIHx8ICdmYS1maWxlLW8nKTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnc3RhdGVDbGFzcydcbn0pXG5leHBvcnQgY2xhc3MgU3RhdGVDbGFzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oc3RhdGUpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVDbGFzc01hcCA9IHtcbiAgICAgICAgICAgICdzdWNjZXNzJyAgIDogJ3dpIHdpLWRvbmUgdGV4dC1zdWNjZXNzJyxcbiAgICAgICAgICAgICdlcnJvcicgICAgIDogJ3dpIHdpLWVycm9yIHRleHQtZGFuZ2VyJ1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3RhdGVDbGFzc01hcFtzdGF0ZS50b0xvd2VyQ2FzZSgpXTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsZUV4dGVuc2lvbkZyb21NaW1lJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlRXh0ZW5zaW9uRnJvbU1pbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG1pbWVUeXBlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgdHlwZU1hcHBpbmcgPSB7XG4gICAgICAgICAgICAnYXVkaW8vYWFjJzogJy5hYWMnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtYWJpd29yZCc6ICcuYWJ3JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmUnOiAnLmFwaycsXG4gICAgICAgICAgICAndmlkZW8veC1tc3ZpZGVvJzogJy5hdmknLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2snOiAnLmF6dycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzogJy5iaW4nLFxuICAgICAgICAgICAgJ2ltYWdlL2JtcCc6ICcuYm1wJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWJ6aXAnOiAnLmJ6JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWJ6aXAyJzogJy5iejInLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtY3NoJzogJy5jc2gnLFxuICAgICAgICAgICAgJ3RleHQvY3NzJzogJy5jc3MnLFxuICAgICAgICAgICAgJ3RleHQvY3N2JzogJy5jc3YnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCc6ICcuZG9jJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6ICcuZG9jeCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnOiAnLmVvdCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vZXB1Yit6aXAnOiAnLmVwdWInLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2VjbWFzY3JpcHQnOiAnLmVzJyxcbiAgICAgICAgICAgICdpbWFnZS9naWYnOiAnLmdpZicsXG4gICAgICAgICAgICAndGV4dC9odG1sJzogJy5odG1sJyxcbiAgICAgICAgICAgICdpbWFnZS94LWljb24nOiAnLmljbycsXG4gICAgICAgICAgICAndGV4dC9jYWxlbmRhcic6ICcuaWNzJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnOiAnLmphcicsXG4gICAgICAgICAgICAnaW1hZ2UvanBlZyc6IFsnLmpwZWcnLCAnLmpwZyddLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnOiAnLmpzJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzogJy5qc29uJyxcbiAgICAgICAgICAgICdhdWRpby9taWRpJzogJy5taWQnLFxuICAgICAgICAgICAgJ2F1ZGlvL3gtbWlkaSc6ICcubWlkaScsXG4gICAgICAgICAgICAndmlkZW8vbXBlZyc6ICcubXBlZycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLmFwcGxlLmluc3RhbGxlcit4bWwnOiAnbXBrZycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5wcmVzZW50YXRpb24nOiAnLm9kcCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCc6ICcub2RzJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQnOiAnLm9kdCcsXG4gICAgICAgICAgICAnYXVkaW8vb2dnJzogJy5vZ2EnLFxuICAgICAgICAgICAgJ3ZpZGVvL29nZyc6ICcub2d2JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9vZ2cnOiAnLm9neCcsXG4gICAgICAgICAgICAnZm9udC9vdGYnOiAnLm90ZicsXG4gICAgICAgICAgICAnaW1hZ2UvcG5nJzogJy5wbmcnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3BkZic6ICcucGRmJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6ICcucHB0JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJzogJy5wcHR4JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXJhci1jb21wcmVzc2VkJzogJy5yYXInLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3J0Zic6ICcucnRmJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXNoJzogJy5zaCcsXG4gICAgICAgICAgICAnaW1hZ2Uvc3ZnK3htbCc6ICcuc3ZnJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCc6ICcuc3dmJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXRhcic6ICcudGFyJyxcbiAgICAgICAgICAgICdpbWFnZS90aWZmJzogJy50aWZmJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JzogJy50cycsXG4gICAgICAgICAgICAnZm9udC90dGYnOiAnLnR0ZicsXG4gICAgICAgICAgICAndGV4dC9wbGFpbic6ICcudHh0JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQudmlzaW8nOiAnLnZzZCcsXG4gICAgICAgICAgICAnYXVkaW8vd2F2JzogJy53YXYnLFxuICAgICAgICAgICAgJ2F1ZGlvL3dlYm0nOiAnLndlYmEnLFxuICAgICAgICAgICAgJ3ZpZGVvL3dlYm0nOiAnLndlYm0nLFxuICAgICAgICAgICAgJ2ltYWdlL3dlYnAnOiAnLndlYnAnLFxuICAgICAgICAgICAgJ2ZvbnQvd29mZic6ICcud29mZicsXG4gICAgICAgICAgICAnZm9udC93b2ZmMic6ICcud29mZjInLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3hodG1sK3htbCc6ICcueGh0bWwnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6ICcueGxzJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCc6ICcueGxzeCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veG1sJzogJy54bWwnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwnOiAnLnh1bCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vemlwJzogJy56aXAnLFxuICAgICAgICAgICAgJ3ZpZGVvLzNncHAnOiAnLjNncCcsXG4gICAgICAgICAgICAnYXVkaW8vM2dwcCc6ICcuM2dwJyxcbiAgICAgICAgICAgICd2aWRlby8zZ3BwMic6ICcuM2cyJyxcbiAgICAgICAgICAgICdhdWRpby8zZ3BwMic6ICcuM2cyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWQnOiAnLjd6J1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0eXBlTWFwcGluZ1ttaW1lVHlwZV07XG4gICAgfVxufVxuXG5cbiJdfQ==
|
|
440
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9iYXNlL3NyYy9waXBlcy9jdXN0b20tcGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7OztBQUlsRyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRTtJQUN6QixJQUFJLEtBQUssQ0FBQztJQUNWLG9HQUFvRztJQUNwRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELHdGQUF3RjtJQUN4RixLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFLRixNQUFNLE9B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RUFBMkUsRUFBRSxPQUFPO1lBQ3BGLDhCQUE4QixFQUFFLE1BQU07WUFDdEMsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLCtCQUErQixFQUFFLE1BQU07WUFDdkMsbUJBQW1CLEVBQUUsTUFBTTtZQUMzQixZQUFZLEVBQUUsT0FBTztZQUNyQix3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLHVCQUF1QixFQUFFLE1BQU07WUFDL0IsV0FBVyxFQUFFLE1BQU07WUFDbkIsWUFBWSxFQUFFLE9BQU87WUFDckIsWUFBWSxFQUFFLE9BQU87WUFDckIsWUFBWSxFQUFFLE9BQU87WUFDckIsV0FBVyxFQUFFLE9BQU87WUFDcEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsdUJBQXVCLEVBQUUsUUFBUTtZQUNqQywwQkFBMEIsRUFBRSxNQUFNO1lBQ2xDLG1FQUFtRSxFQUFFLE9BQU87WUFDNUUsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixpQ0FBaUMsRUFBRSxNQUFNO1lBQ3pDLGlCQUFpQixFQUFFLE1BQU07WUFDekIsWUFBWSxFQUFFLE1BQU07WUFDcEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsYUFBYSxFQUFFLE1BQU07WUFDckIsYUFBYSxFQUFFLE1BQU07WUFDckIsNkJBQTZCLEVBQUUsS0FBSztTQUN2QyxDQUFDO1FBRUYsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzswRkExRVEseUJBQXlCOytGQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FIckMsSUFBSTtlQUFDO2dCQUNGLElBQUksRUFBRSx1QkFBdUI7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGVQaXBlLCBEZWNpbWFsUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWJzdHJhY3RJMThuU2VydmljZSwgQ1VSUkVOQ1lfSU5GTywgQ3VzdG9tUGlwZU1hbmFnZXIsIGhhc09mZnNldFN0ciwgaXNEZWZpbmVkfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge1dtUGlwZX0gZnJvbSBcIi4vd20tcGlwZVwiO1xuaW1wb3J0IHtmaWx0ZXIsIGluY2x1ZGVzLCBpc0RhdGUsIGlzRnVuY3Rpb24sIGlzT2JqZWN0LCBpc1VuZGVmaW5lZCwgc3RhcnRzV2l0aH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0IG1vbWVudDtcblxuY29uc3QgZ2V0RXBvY2hWYWx1ZSA9IGRhdGEgPT4ge1xuICAgIGxldCBlcG9jaDtcbiAgICAvLyBGb3IgZGF0YSBpbiBmb3JtIG9mIHN0cmluZyBudW1iZXIgKCcxMjMnKSwgY29udmVydCB0byBudW1iZXIgKDEyMykuIEFuZCBkb24ndCBwYXJzZSBkYXRlIG9iamVjdHMuXG4gICAgaWYgKCFpc0RhdGUoZGF0YSkgJiYgIWlzTmFOKGRhdGEpKSB7XG4gICAgICAgIGRhdGEgPSBwYXJzZUludChkYXRhLCAxMCk7XG4gICAgfVxuICAgIC8vIGdldCB0aGUgdGltZXN0YW1wIHZhbHVlLiBJZiBkYXRhIGlzIHRpbWUgc3RyaW5nLCBhcHBlbmQgZGF0ZSBzdHJpbmcgdG8gdGhlIHRpbWUgdmFsdWVcbiAgICBlcG9jaCA9IG1vbWVudChkYXRhKS52YWx1ZU9mKCkgfHwgbW9tZW50KG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkgKyAnICcgKyBkYXRhKS52YWx1ZU9mKCk7XG4gICAgcmV0dXJuIGVwb2NoO1xufTtcblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0cmFpbGluZ1plcm9EZWNpbWFsUGlwZSdcbn0pXG5leHBvcnQgY2xhc3MgVHJhaWxpbmdaZXJvRGVjaW1hbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgc2VsZWN0ZWRMb2NhbGU6IHN0cmluZywgbnVtYmVyZmlsdGVyOiBzdHJpbmcsIGxvY2FsZWZpbHRlcjogYW55LCB0cmFpbGluZ3plcm86IGJvb2xlYW4sIGRlY2ltYWxWYWx1ZTogc3RyaW5nLCBza2lwVHJhaWxpbmdaZXJvQ2hlY2s/OiBib29sZWFuLCBmb3JtYXR0ZWRMb2NhbGU/KTogYW55IHtcbiAgICAgICAgbnVtYmVyZmlsdGVyID0gdHJhaWxpbmd6ZXJvICYmICFza2lwVHJhaWxpbmdaZXJvQ2hlY2sgPyBgMS4ke2RlY2ltYWxWYWx1ZS5sZW5ndGh9LTE2YDogbnVtYmVyZmlsdGVyO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSBmb3JtYXR0ZWRMb2NhbGUgPyBmb3JtYXR0ZWRMb2NhbGVbJ251bWJlciddIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUsIG51bWJlcmZpbHRlciwgbG9jYWxlZmlsdGVyIHx8IGxvY2FsZSB8fCBzZWxlY3RlZExvY2FsZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUpIHsgfVxuXG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndG9EYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBUb0RhdGVQaXBlIGV4dGVuZHMgV21QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLy8gVGhpcyBtZXRob2QgY2FsbHMgdGhlIGN1c3RvbSBmb3JtYXR0ZXIgZm4gYWZ0ZXIgYXBwbHlpbmcgdGhlIGV4aXNpdG5nIGRhdGUgcGF0dGVyblxuICAgIHJldHVybkZuKGRhdGEsIGFyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDdXN0b21QaXBlKSB7XG4gICAgICAgICAgICBpZiAoYXJncykge1xuICAgICAgICAgICAgICAgIGFyZ3NbMF0gPSBkYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRm9ybWF0dGVyKGRhdGEsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICB0cmFuc2Zvcm0oZGF0YTogYW55LCBmb3JtYXQ6IGFueSwgdGltZXpvbmU/LCBjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIGxldCB0aW1lc3RhbXA7XG4gICAgICAgIC8vICdudWxsJyBpcyB0byBiZSB0cmVhdGVkIGFzIGEgc3BlY2lhbCBjYXNlLCBJZiB1c2VyIHdhbnRzIHRvIGVudGVyIG51bGwgdmFsdWUsIGVtcHR5IHN0cmluZyB3aWxsIGJlIHBhc3NlZCB0byB0aGUgYmFja2VuZFxuICAgICAgICBpZiAoZGF0YSA9PT0gJ251bGwnIHx8IGRhdGEgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5GbignJywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzRGVmaW5lZChkYXRhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRm4oJycsYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICB0aW1lc3RhbXAgPSBnZXRFcG9jaFZhbHVlKGRhdGEpO1xuICAgICAgICBpZiAodGltZXN0YW1wKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAndGltZXN0YW1wJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKHRpbWVzdGFtcCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdVVEMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRm4obmV3IERhdGUodGltZXN0YW1wKS50b0lTT1N0cmluZygpLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZFZhbDtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVab25lID0gdGhpcy5pMThuU2VydmljZSA/IHRoaXMuaTE4blNlcnZpY2UuZ2V0VGltZXpvbmUoY29tcEluc3RhbmNlKSA6IHRpbWV6b25lO1xuICAgICAgICAgICAgaWYgKHRpbWVab25lICYmIChkYXRhID09PSB0aW1lc3RhbXAgfHwgaGFzT2Zmc2V0U3RyKGRhdGEpKSkge1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbCA9IG1vbWVudCh0aW1lc3RhbXApLnR6KHRpbWVab25lKS5mb3JtYXQoZm9ybWF0LnJlcGxhY2VBbGwoJ3knLCAnWScpLnJlcGxhY2VBbGwoJ2QnLCAnRCcpLnJlcGxhY2UoJ2EnLCAnQScpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGltZXN0YW1wLCBmb3JtYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRm4oZm9ybWF0dGVkVmFsLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJldHVybkZuKCcnLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLCBwcml2YXRlIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCBwcm90ZWN0ZWQgY3VzdG9tUGlwZU1hbmFnZXI6IEN1c3RvbVBpcGVNYW5hZ2VyKSB7XG4gICAgICAgIHN1cGVyKCd0b0RhdGUnLCBjdXN0b21QaXBlTWFuYWdlcik7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RvTnVtYmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBUb051bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgZnJhY1NpemUpIHtcbiAgICAgICAgaWYgKGZyYWNTaXplICYmICFTdHJpbmcoZnJhY1NpemUpLm1hdGNoKC9eKFxcZCspP1xcLigoXFxkKykoLShcXGQrKSk/KT8kLykpIHtcbiAgICAgICAgICAgIGZyYWNTaXplID0gJzEuJyArIGZyYWNTaXplICsgJy0nICsgZnJhY1NpemU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc05hTigrZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UgJiYgdGhpcy5pMThuU2VydmljZS5nZXR3aWRnZXRMb2NhbGUoKSA/IHRoaXMuaTE4blNlcnZpY2UuZ2V0d2lkZ2V0TG9jYWxlKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRMb2NhbGUgPSBsb2NhbGUgPyBsb2NhbGVbJ251bWJlciddIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybShkYXRhLCBmcmFjU2l6ZSwgZm9ybWF0dGVkTG9jYWxlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSwgIEBJbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSkgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSkge1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0b0N1cnJlbmN5J1xufSlcbmV4cG9ydCBjbGFzcyBUb0N1cnJlbmN5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhLCBjdXJyZW5jeVN5bWJvbCwgZnJhY1NpemUpIHtcbiAgICAgICAgY29uc3QgX2N1cnJlbmN5U3ltYm9sID0gKENVUlJFTkNZX0lORk9bY3VycmVuY3lTeW1ib2xdIHx8IHt9KS5zeW1ib2wgfHwgY3VycmVuY3lTeW1ib2wgfHwgJyc7XG4gICAgICAgIGxldCBfdmFsID0gbmV3IFRvTnVtYmVyUGlwZSh0aGlzLmRlY2ltYWxQaXBlLCB0aGlzLmkxOG5TZXJ2aWNlKS50cmFuc2Zvcm0oZGF0YSwgZnJhY1NpemUpO1xuICAgICAgICBjb25zdCBpc05lZ2F0aXZlTnVtYmVyID0gc3RhcnRzV2l0aChfdmFsLCAnLScpO1xuICAgICAgICBpZiAoaXNOZWdhdGl2ZU51bWJlcikge1xuICAgICAgICAgICAgX3ZhbCA9IF92YWwucmVwbGFjZSgnLScsJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfdmFsID8gaXNOZWdhdGl2ZU51bWJlciA/ICctJysgX2N1cnJlbmN5U3ltYm9sICtfdmFsIDpfY3VycmVuY3lTeW1ib2wgKyBfdmFsIDogJyc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoQWJzdHJhY3RJMThuU2VydmljZSkgcHJpdmF0ZSBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSkge1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdwcmVmaXgnXG59KVxuZXhwb3J0IGNsYXNzIFByZWZpeFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YSwgcGFkZGluZykge1xuICAgICAgICByZXR1cm4gKGlzVW5kZWZpbmVkKGRhdGEpIHx8IGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gJycpID8gZGF0YSA6ICgocGFkZGluZyB8fCAnJykgKyBkYXRhKTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnc3VmZml4J1xufSlcbmV4cG9ydCBjbGFzcyBTdWZmaXhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEsIHBhZGRpbmcpIHtcbiAgICAgICAgcmV0dXJuIChpc1VuZGVmaW5lZChkYXRhKSB8fCBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09ICcnKSA/IGRhdGEgOiAoZGF0YSArIChwYWRkaW5nIHx8ICcnKSk7XG4gICAgfVxufVxuXG5cbi8qKlxuICogQ3VzdG9tIHBpcGU6IEl0IGlzIHdvcmsgYXMgaW50ZXJjZXB0b3IgYmV0d2VlbiB0aGUgdXNlciBjdXN0b20gcGlwZSBmdW5jdGlvbiBhbmQgYW5ndWxhciBwaXBlXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnY3VzdG9tJ1xufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXN0bWVVc2VyUGlwZTogQ3VzdG9tUGlwZU1hbmFnZXIpIHtcblxuICAgIH1cbiAgICB0cmFuc2Zvcm0oZGF0YSwgcGlwZW5hbWUpIHtcbiAgICAgICBsZXQgYXJndW1lbnRBcnIgPSBbXTtcbiAgICAgICBmb3IobGV0IGkgPTIgOyBpPGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApe1xuICAgICAgICBhcmd1bWVudEFyci5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gICAgICAgfVxuXG4gICAgICAgIGxldCBwaXBlUmVmID0gdGhpcy5jdXN0bWVVc2VyUGlwZS5nZXRDdXN0b21QaXBlKHBpcGVuYW1lKTtcbiAgICAgICAgaWYgKCFwaXBlUmVmIHx8ICFpc0Z1bmN0aW9uKHBpcGVSZWYuZm9ybWF0dGVyKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdmb3JtYXR0ZXIgaXMgbm90IGRlZmluZWQsIHBsZWFzZSBjaGVjayB0aGUgY3VzdG9tIHBpcGVzIGRvY3VtZW50YXRpb24nKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5e1xuICAgICAgICAgICAgcmV0dXJuIHBpcGVSZWYuZm9ybWF0dGVyKGRhdGEsIC4uLmFyZ3VtZW50QXJyKTtcbiAgICAgICAgfSBjYXRjaChlcnJvcil7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdQaXBlIG5hbWU6ICcrcGlwZW5hbWUsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgfVxuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0aW1lRnJvbU5vdydcbn0pXG5leHBvcnQgY2xhc3MgVGltZUZyb21Ob3dQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGEpIHtcbiAgICAgICAgbGV0IHRpbWVzdGFtcDtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGltZXN0YW1wID0gZ2V0RXBvY2hWYWx1ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcCA/IG1vbWVudCh0aW1lc3RhbXApLmZyb21Ob3coKSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnbnVtYmVyVG9TdHJpbmcnXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlclRvU3RyaW5nUGlwZSBleHRlbmRzIFRvTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0geyB9XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnc3RyaW5nVG9OdW1iZXInXG59KVxuZXhwb3J0IGNsYXNzIFN0cmluZ1RvTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShkYXRhKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIoZGF0YSkgfHwgdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWx0ZXInXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZGF0YTogYW55W10sIGZpZWxkOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb2JqZWN0IGlzIHBhc3NlZCBhcyBmaXJzdCBwYXJhbXRlclxuICAgICAgICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyKGRhdGEsIGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBrZXkgdmFsdWUgcGFpciBpcyBwcm92aWRlZFxuICAgICAgICByZXR1cm4gZmlsdGVyKGRhdGEsIGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGluY2x1ZGVzKGl0ZW1bZmllbGRdLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdmaWxlc2l6ZSdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNpemVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGJ5dGVzOiBudW1iZXIsIHByZWNpc2lvbjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHVuaXRzID0gW1xuICAgICAgICAgICAgJ2J5dGVzJyxcbiAgICAgICAgICAgICdLQicsXG4gICAgICAgICAgICAnTUInLFxuICAgICAgICAgICAgJ0dCJyxcbiAgICAgICAgICAgICdUQicsXG4gICAgICAgICAgICAnUEInXG4gICAgICAgIF07XG5cbiAgICAgICAgLypUb2RvW3NodWJoYW1dXG4gICAgICAgIGlmIChpc05hTihwYXJzZUZsb2F0KGJ5dGVzKSkgfHwgIWlzRmluaXRlKGJ5dGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTW9iaWxlKCkgPyAnJyA6ICc/JztcbiAgICAgICAgfSovXG4gICAgICAgIGxldCB1bml0ID0gMDtcbiAgICAgICAgd2hpbGUgKGJ5dGVzID49IDEwMjQpIHtcbiAgICAgICAgICAgIGJ5dGVzIC89IDEwMjQ7XG4gICAgICAgICAgICB1bml0Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ5dGVzLnRvRml4ZWQoK3ByZWNpc2lvbikgKyAnICcgKyB1bml0c1t1bml0XTtcbiAgICB9XG59XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZmlsZUljb25DbGFzcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUljb25DbGFzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oZmlsZUV4dGVuc2lvbjogYW55KSB7XG4gICAgICAgIGNvbnN0IGZpbGVDbGFzc01hcHBpbmcgPSB7XG4gICAgICAgICAgICAnemlwJyAgICAgICA6ICAgJ2ZhLWZpbGUtemlwLW8nLFxuICAgICAgICAgICAgJ3BkZicgICAgICAgOiAgICdmYS1maWxlLXBkZi1vJyxcbiAgICAgICAgICAgICdyYXInICAgICAgIDogICAnZmEtZmlsZS1hcmNoaXZlLW8nLFxuICAgICAgICAgICAgJ3R4dCcgICAgICAgOiAgICdmYS1maWxlLXRleHQtbycsXG4gICAgICAgICAgICAncHB0JyAgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwb3QnICAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3BwcycgICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAncHB0eCcgICAgICA6ICAgJ2ZhLWZpbGUtcG93ZXJwb2ludC1vJyxcbiAgICAgICAgICAgICdwb3R4JyAgICAgIDogICAnZmEtZmlsZS1wb3dlcnBvaW50LW8nLFxuICAgICAgICAgICAgJ3Bwc3gnICAgICAgOiAgICdmYS1maWxlLXBvd2VycG9pbnQtbycsXG4gICAgICAgICAgICAnbXBnJyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbXA0JyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbW92JyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnYXZpJyAgICAgICA6ICAgJ2ZhLWZpbGUtbW92aWUtbycsXG4gICAgICAgICAgICAnbXAzJyAgICAgICA6ICAgJ2ZhLWZpbGUtYXVkaW8tbycsXG4gICAgICAgICAgICAnZG9jeCcgICAgICA6ICAgJ2ZhLWZpbGUtd29yZC1vJyxcbiAgICAgICAgICAgICdqcycgICAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ21kJyAgICAgICAgOiAgICdmYS1maWxlLWNvZGUtbycsXG4gICAgICAgICAgICAnaHRtbCcgICAgICA6ICAgJ2ZhLWZpbGUtY29kZS1vJyxcbiAgICAgICAgICAgICdjc3MnICAgICAgIDogICAnZmEtZmlsZS1jb2RlLW8nLFxuICAgICAgICAgICAgJ3hsc3gnICAgICAgOiAgICdmYS1maWxlLWV4Y2VsLW8nLFxuICAgICAgICAgICAgJ3BuZycgICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2pwZycgICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2pwZWcnICAgICAgOiAgICdmYS1maWxlLWltYWdlLW8nLFxuICAgICAgICAgICAgJ2ZpbGUnICAgICAgOiAgICdmYS1maWxlLW8nLFxuICAgICAgICAgICAgJ2RlZmF1bHQnICAgOiAgICdmYS1maWxlLW8nXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuICdmYSAnICsgKGZpbGVDbGFzc01hcHBpbmdbZmlsZUV4dGVuc2lvbl0gfHwgJ2ZhLWZpbGUtbycpO1xuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICdzdGF0ZUNsYXNzJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0ZUNsYXNzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShzdGF0ZSkge1xuICAgICAgICBjb25zdCBzdGF0ZUNsYXNzTWFwID0ge1xuICAgICAgICAgICAgJ3N1Y2Nlc3MnOiAnd2kgd2ktY2hlY2stY2lyY2xlIHRleHQtc3VjY2VzcycsXG4gICAgICAgICAgICAnZXJyb3InICAgICA6ICd3aSB3aS1lcnJvciB0ZXh0LWRhbmdlcidcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN0YXRlQ2xhc3NNYXBbc3RhdGUudG9Mb3dlckNhc2UoKV07XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2ZpbGVFeHRlbnNpb25Gcm9tTWltZSdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUV4dGVuc2lvbkZyb21NaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShtaW1lVHlwZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHR5cGVNYXBwaW5nID0ge1xuICAgICAgICAgICAgJ2F1ZGlvL2FhYyc6ICcuYWFjJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWFiaXdvcmQnOiAnLmFidycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLmFuZHJvaWQucGFja2FnZS1hcmNoaXZlJzogJy5hcGsnLFxuICAgICAgICAgICAgJ3ZpZGVvL3gtbXN2aWRlbyc6ICcuYXZpJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQuYW1hem9uLmVib29rJzogJy5hencnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc6ICcuYmluJyxcbiAgICAgICAgICAgICdpbWFnZS9ibXAnOiAnLmJtcCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1iemlwJzogJy5ieicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1iemlwMic6ICcuYnoyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWNzaCc6ICcuY3NoJyxcbiAgICAgICAgICAgICd0ZXh0L2Nzcyc6ICcuY3NzJyxcbiAgICAgICAgICAgICd0ZXh0L2Nzdic6ICcuY3N2JyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnOiAnLmRvYycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOiAnLmRvY3gnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1mb250b2JqZWN0JzogJy5lb3QnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2VwdWIremlwJzogJy5lcHViJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0JzogJy5lcycsXG4gICAgICAgICAgICAnaW1hZ2UvZ2lmJzogJy5naWYnLFxuICAgICAgICAgICAgJ3RleHQvaHRtbCc6ICcuaHRtbCcsXG4gICAgICAgICAgICAnaW1hZ2UveC1pY29uJzogJy5pY28nLFxuICAgICAgICAgICAgJ3RleHQvY2FsZW5kYXInOiAnLmljcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vamF2YS1hcmNoaXZlJzogJy5qYXInLFxuICAgICAgICAgICAgJ2ltYWdlL2pwZWcnOiBbJy5qcGVnJywgJy5qcGcnXSxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JzogJy5qcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6ICcuanNvbicsXG4gICAgICAgICAgICAnYXVkaW8vbWlkaSc6ICcubWlkJyxcbiAgICAgICAgICAgICdhdWRpby94LW1pZGknOiAnLm1pZGknLFxuICAgICAgICAgICAgJ3ZpZGVvL21wZWcnOiAnLm1wZWcnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sJzogJ21wa2cnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uJzogJy5vZHAnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnOiAnLm9kcycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0JzogJy5vZHQnLFxuICAgICAgICAgICAgJ2F1ZGlvL29nZyc6ICcub2dhJyxcbiAgICAgICAgICAgICd2aWRlby9vZ2cnOiAnLm9ndicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vb2dnJzogJy5vZ3gnLFxuICAgICAgICAgICAgJ2ZvbnQvb3RmJzogJy5vdGYnLFxuICAgICAgICAgICAgJ2ltYWdlL3BuZyc6ICcucG5nJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAnLnBkZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnOiAnLnBwdCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic6ICcucHB0eCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCc6ICcucmFyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9ydGYnOiAnLnJ0ZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1zaCc6ICcuc2gnLFxuICAgICAgICAgICAgJ2ltYWdlL3N2Zyt4bWwnOiAnLnN2ZycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnOiAnLnN3ZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC10YXInOiAnLnRhcicsXG4gICAgICAgICAgICAnaW1hZ2UvdGlmZic6ICcudGlmZicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdHlwZXNjcmlwdCc6ICcudHMnLFxuICAgICAgICAgICAgJ2ZvbnQvdHRmJzogJy50dGYnLFxuICAgICAgICAgICAgJ3RleHQvcGxhaW4nOiAnLnR4dCcsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLnZpc2lvJzogJy52c2QnLFxuICAgICAgICAgICAgJ2F1ZGlvL3dhdic6ICcud2F2JyxcbiAgICAgICAgICAgICdhdWRpby93ZWJtJzogJy53ZWJhJyxcbiAgICAgICAgICAgICd2aWRlby93ZWJtJzogJy53ZWJtJyxcbiAgICAgICAgICAgICdpbWFnZS93ZWJwJzogJy53ZWJwJyxcbiAgICAgICAgICAgICdmb250L3dvZmYnOiAnLndvZmYnLFxuICAgICAgICAgICAgJ2ZvbnQvd29mZjInOiAnLndvZmYyJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnOiAnLnhodG1sJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnOiAnLnhscycsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiAnLnhsc3gnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCc6ICcueG1sJyxcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sJzogJy54dWwnLFxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ppcCc6ICcuemlwJyxcbiAgICAgICAgICAgICd2aWRlby8zZ3BwJzogJy4zZ3AnLFxuICAgICAgICAgICAgJ2F1ZGlvLzNncHAnOiAnLjNncCcsXG4gICAgICAgICAgICAndmlkZW8vM2dwcDInOiAnLjNnMicsXG4gICAgICAgICAgICAnYXVkaW8vM2dwcDInOiAnLjNnMicsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJzogJy43eidcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdHlwZU1hcHBpbmdbbWltZVR5cGVdO1xuICAgIH1cbn1cblxuXG4iXX0=
|