@wavemaker/app-ng-runtime 12.0.0-next.45104 → 12.0.0-next.45128
Sign up to get free protection for your applications and to get access to all the features.
- app-ng-runtime/build-task/bundles/index.umd.js +46 -38
- 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 +2 -2
- 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 +46 -38
- 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/base/bundles/index.umd.js +8 -2
- 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/fesm2022/index.mjs +8 -2
- 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/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 +4 -0
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -3
- app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -2
- 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 +1 -0
- 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 +44 -10
- app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
- 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 +45 -11
- 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/bundles/index.umd.js +206 -110
- 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/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 +21 -16
- 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 +28 -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 +206 -110
- 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 +12 -9
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
- app-ng-runtime/core/esm2022/utils/utils.mjs +5 -4
- app-ng-runtime/core/fesm2022/index.mjs +12 -10
- 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 +7 -5
- app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
- app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
- 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 +7 -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 +29 -29
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
app-ng-runtime/package.json
CHANGED
@@ -3147,7 +3147,7 @@
|
|
3147
3147
|
return locale === moment.tz(timezoneName).format('Z');
|
3148
3148
|
});
|
3149
3149
|
}
|
3150
|
-
|
3150
|
+
moment.tz.setDefault(locale);
|
3151
3151
|
const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;
|
3152
3152
|
Object.assign(localeData, localeObj);
|
3153
3153
|
resolve();
|
@@ -4119,6 +4119,7 @@
|
|
4119
4119
|
};
|
4120
4120
|
}
|
4121
4121
|
ngAfterViewInit() {
|
4122
|
+
document.documentElement.setAttribute('lang', i1.getWmProjectProperties().defaultLanguage);
|
4122
4123
|
if (i1.hasCordova() && !window['wmDeviceReady']) {
|
4123
4124
|
document.addEventListener('wmDeviceReady', () => this.start());
|
4124
4125
|
}
|
@@ -4154,7 +4155,7 @@
|
|
4154
4155
|
type: i0.ViewChild,
|
4155
4156
|
args: ['dynamicComponent', { read: i0.ViewContainerRef }]
|
4156
4157
|
}] }); })();
|
4157
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber:
|
4158
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber: 46 }); })();
|
4158
4159
|
|
4159
4160
|
/**
|
4160
4161
|
* This Interceptor intercepts all network calls and if a network call fails
|
@@ -4401,15 +4402,16 @@
|
|
4401
4402
|
here component is pagewrapper so adding custom implementation for route change
|
4402
4403
|
*/
|
4403
4404
|
class CanDeactivatePageGuard {
|
4404
|
-
canDeactivate(component) {
|
4405
|
+
canDeactivate(component, currentRoute, currentState, nextState) {
|
4405
4406
|
function invokeCompDeactivate() {
|
4406
4407
|
let retVal;
|
4408
|
+
const nextRoute = nextState ? nextState.url : undefined;
|
4407
4409
|
// Calling onBeforePageLeave method present at page level
|
4408
|
-
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave();
|
4410
|
+
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave(nextRoute);
|
4409
4411
|
// Calling onBeforePageLeave method present at app level only if page level method return true
|
4410
4412
|
// or if there is no page level method
|
4411
4413
|
if (retVal !== false) {
|
4412
|
-
retVal = (this.app.onBeforePageLeave || i1.noop)(this.app.activePageName, this.app.activePage);
|
4414
|
+
retVal = (this.app.onBeforePageLeave || i1.noop)(this.app.activePageName, this.app.activePage, nextRoute);
|
4413
4415
|
}
|
4414
4416
|
return retVal === undefined ? true : retVal;
|
4415
4417
|
}
|
@@ -1,7 +1,6 @@
|
|
1
|
-
import { ApplicationRef, DoCheck, ElementRef, NgZone, ViewContainerRef
|
1
|
+
import { AfterViewInit, ApplicationRef, DoCheck, ElementRef, NgZone, ViewContainerRef } from '@angular/core';
|
2
2
|
import { Router, RouterOutlet } from '@angular/router';
|
3
|
-
import { CustomIconsLoaderService } from '@wm/core';
|
4
|
-
import { AbstractDialogService, AbstractSpinnerService, App } from '@wm/core';
|
3
|
+
import { AbstractDialogService, AbstractSpinnerService, App, CustomIconsLoaderService } from '@wm/core';
|
5
4
|
import { OAuthService } from '@wm/oAuth';
|
6
5
|
import { AppManagerService } from '../../services/app.manager.service';
|
7
6
|
import { PipeProvider } from '../../services/pipe-provider.service';
|
@@ -1,8 +1,7 @@
|
|
1
|
-
import { ApplicationRef, Component, ElementRef, NgZone,
|
1
|
+
import { ApplicationRef, Component, ElementRef, NgZone, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
2
2
|
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterOutlet } from '@angular/router';
|
3
3
|
import { setTheme } from 'ngx-bootstrap/utils';
|
4
|
-
import { CustomIconsLoaderService, noop } from '@wm/core';
|
5
|
-
import { $invokeWatchers, AbstractDialogService, AbstractSpinnerService, getWmProjectProperties, hasCordova, setAppRef, setNgZone, setPipeProvider, App, addClass, removeClass } from '@wm/core';
|
4
|
+
import { $invokeWatchers, AbstractDialogService, AbstractSpinnerService, addClass, App, CustomIconsLoaderService, getWmProjectProperties, hasCordova, noop, removeClass, setAppRef, setNgZone, setPipeProvider } from '@wm/core';
|
6
5
|
import { OAuthService } from '@wm/oAuth';
|
7
6
|
import { AppManagerService } from '../../services/app.manager.service';
|
8
7
|
import { PipeProvider } from '../../services/pipe-provider.service';
|
@@ -199,6 +198,7 @@ export class AppComponent {
|
|
199
198
|
};
|
200
199
|
}
|
201
200
|
ngAfterViewInit() {
|
201
|
+
document.documentElement.setAttribute('lang', getWmProjectProperties().defaultLanguage);
|
202
202
|
if (hasCordova() && !window['wmDeviceReady']) {
|
203
203
|
document.addEventListener('wmDeviceReady', () => this.start());
|
204
204
|
}
|
@@ -234,5 +234,5 @@ export class AppComponent {
|
|
234
234
|
type: ViewChild,
|
235
235
|
args: ['dynamicComponent', { read: ViewContainerRef }]
|
236
236
|
}] }); })();
|
237
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber:
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQVcsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDak0sT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNQaEUsMEJBQTBHOzs7O0lBTzFGLEFBREosOEJBQStELGlCQUNYO0lBQTVC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blJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBOZ1pvbmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IHNldFRoZW1lIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC91dGlscyc7XG5cbmltcG9ydCB7IEN1c3RvbUljb25zTG9hZGVyU2VydmljZSwgbm9vcCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7ICRpbnZva2VXYXRjaGVycywgQWJzdHJhY3REaWFsb2dTZXJ2aWNlLCBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlLCBnZXRXbVByb2plY3RQcm9wZXJ0aWVzLCBoYXNDb3Jkb3ZhLCBzZXRBcHBSZWYsIHNldE5nWm9uZSwgc2V0UGlwZVByb3ZpZGVyLCBBcHAsIGFkZENsYXNzLCByZW1vdmVDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ0B3bS9vQXV0aCc7XG5pbXBvcnQgeyBBcHBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGlwZVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGlwZS1wcm92aWRlci5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIFNQSU5ORVIge1xuICAgIHNob3c6IGJvb2xlYW47XG4gICAgbWVzc2FnZXM6IEFycmF5PHN0cmluZz47XG4gICAgYXJpYWxhYmVsOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIHN0YXJ0QXBwID0gZmFsc2U7XG4gICAgcHVibGljIGlzQXBwbGljYXRpb25UeXBlID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKFJvdXRlck91dGxldCkgcm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQ7XG5cbiAgICBAVmlld0NoaWxkKCdkeW5hbWljQ29tcG9uZW50Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgc3Bpbm5lcjogU1BJTk5FUiA9IHtzaG93OiBmYWxzZSwgbWVzc2FnZXM6IFtdLCBhcmlhbGFiZWw6ICcnfTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX3BpcGVQcm92aWRlcjogUGlwZVByb3ZpZGVyLFxuICAgICAgICBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBwcml2YXRlIGFwcE1hbmFnZXI6IEFwcE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGN1c3RvbUljb25zTG9hZGVyU2VydmljZTogQ3VzdG9tSWNvbnNMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHNldFBpcGVQcm92aWRlcihfcGlwZVByb3ZpZGVyKTtcbiAgICAgICAgc2V0Tmdab25lKG5nWm9uZSk7XG4gICAgICAgIHNldEFwcFJlZihfYXBwUmVmKTtcblxuICAgICAgICB0aGlzLmlzQXBwbGljYXRpb25UeXBlID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnR5cGUgPT09ICdBUFBMSUNBVElPTic7XG4gICAgICAgIGlmKHRoaXMuaXNBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tSWNvbnNMb2FkZXJTZXJ2aWNlLmxvYWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwTWFuYWdlci5iZWZvcmVBcHBSZWFkeSgpO1xuXG4gICAgICAgIC8vIHN1YnNjcmliZSB0byBPQXV0aCBjaGFuZ2VzXG4gICAgICAgIG9BdXRoU2VydmljZS5nZXRPQXV0aFByb3ZpZGVyc0FzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgocHJvdmlkZXJzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvdmlkZXJzQ29uZmlnID0gcHJvdmlkZXJzO1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dPQXV0aERpYWxvZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlT0F1dGhEaWFsb2coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBtZXNzYWdlIHNvdXJjZSB0byBzaG93L2hpZGUgYXBwIHNwaW5uZXJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5nZXRNZXNzYWdlU291cmNlKCkuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIHNldFRpbWVvdXQgaXMgdG8gYXZvaWQgJ0V4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3InXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIuc2hvdyA9IGRhdGEuc2hvdztcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIubWVzc2FnZXMgPSBkYXRhLm1lc3NhZ2VzO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5hcmlhbGFiZWwgPSBkYXRhLm1lc3NhZ2VzLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gc2V0IHRoZW1lIHRvIGJzMyBvbiBuZ3gtYm9vdHN0cmFwLiBUaGlzIGF2b2lkcyBydW50aW1lIGNhbGN1bGF0aW9uIHRvIGRldGVybWluZSBicyB0aGVtZS4gVGh1cyByZXNvbHZlcyBwZXJmb3JtYW5jZS5cbiAgICAgICAgc2V0VGhlbWUoJ2JzMycpO1xuXG4gICAgICAgIGxldCBzcGlubmVySWQ7XG5cbiAgICAgICAgbGV0IG9uUGFnZVJlbmRlcmVkID0gbm9vcDtcblxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFnZSA9IGUudXJsLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgICAgICAgcGFnZSA9IHBhZ2Uuc3Vic3RyaW5nKDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwLmFjdGl2ZUxheW91dE5hbWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAubGF5b3V0UGFnZXMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYodGhpcy5hcHAuYWN0aXZlTGF5b3V0TmFtZSAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcyAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcy5sZW5ndGggJiYgdGhpcy5hcHAubGF5b3V0UGFnZXMuaW5jbHVkZXMocGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lcklkID0gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCcnLCAnd21Sb3V0ZXJPdXRsZXQnLCAnJywgJ3dtUm91dGVyT3V0bGV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lcklkID0gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCcnLCAnZ2xvYmFsU3Bpbm5lcicpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhcHAtcGFnZS1vdXRsZXQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyhub2RlLCAncGFnZS1sb2FkLWluLXByb2dyZXNzJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZUxvYWRTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoc3Bpbm5lcklkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FwcC1wYWdlLW91dGxldCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3Mobm9kZSwgJ3BhZ2UtbG9hZC1pbi1wcm9ncmVzcycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkID0gbm9vcDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlUGFnZUxvYWRUaW1lID0gRGF0ZS5ub3coKSAtIHBhZ2VMb2FkU3RhcnRUaW1lO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+e1xuICAgICAgICAgICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLnN1YnNjcmliZSgncGFnZVJlYWR5JywgKCkgPT4ge1xuICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXBwTWFuYWdlci5zdWJzY3JpYmUoJ3BhZ2VBdHRhY2gnLCAoKSA9PiB7XG4gICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm92aWRlcnNDb25maWc7XG4gICAgaXNPQXV0aERpYWxvZ09wZW4gPSBmYWxzZTtcblxuICAgIHNob3dPQXV0aERpYWxvZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT0F1dGhEaWFsb2dPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT0F1dGhEaWFsb2dPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKCdvQXV0aExvZ2luRGlhbG9nJywgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZU9BdXRoRGlhbG9nKCkge1xuICAgICAgICBpZiAodGhpcy5pc09BdXRoRGlhbG9nT3Blbikge1xuICAgICAgICAgICAgdGhpcy5pc09BdXRoRGlhbG9nT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlKCdvQXV0aExvZ2luRGlhbG9nJywgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0KCkge1xuICAgICAgICAvL3RvIGZpeCB0aGUgaXNzdWUgdGhhdCBoYXBwZW5zIG9ubHkgaW4gdGhlIGRldmVsb3BtZW50IG1vZGVcbiAgICAgICAgLy9FeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgICAgIC8vZml4OiBodHRwczovL2Jsb2cuYW5ndWxhci11bml2ZXJzaXR5LmlvL2FuZ3VsYXItZGVidWdnaW5nL1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRBcHAgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcC5keW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmID0gdGhpcy5keW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmO1xuICAgICAgICAgICAgdGhpcy5vdmVycmlkZVJvdXRlck91dGxldCgpO1xuICAgICAgICB9LCAxMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvdmVycmlkZVJvdXRlck91dGxldCgpIHtcbiAgICAgICAgLy9vdmVycmlkZSB0aGUgYXR0YWNoL2RldGFjaCBtZXRob2RzXG4gICAgICAgIGNvbnN0IG9BdHRhY2ggPSB0aGlzLnJvdXRlck91dGxldC5hdHRhY2g7XG4gICAgICAgIGNvbnN0IG9EZXRhY2ggPSB0aGlzLnJvdXRlck91dGxldC5kZXRhY2g7XG4gICAgICAgIHRoaXMucm91dGVyT3V0bGV0LmF0dGFjaCA9IChjb21wb25lbnRSZWY6IGFueSkgPT4ge1xuICAgICAgICAgICAgb0F0dGFjaC5jYWxsKHRoaXMucm91dGVyT3V0bGV0LCBjb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5nT25BdHRhY2goKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yb3V0ZXJPdXRsZXQuZGV0YWNoID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlUGFnZS5uZ09uRGV0YWNoKCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBvRGV0YWNoLmNhbGwodGhpcy5yb3V0ZXJPdXRsZXQpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmIChoYXNDb3Jkb3ZhKCkgJiYgIXdpbmRvd1snd21EZXZpY2VSZWFkeSddKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3bURldmljZVJlYWR5JyAsICgpID0+IHRoaXMuc3RhcnQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgICRpbnZva2VXYXRjaGVycygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzdGFydEFwcFwiPlxuICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8ZGl2IHdtQ29udGFpbmVyIHBhcnRpYWxDb250YWluZXIgY29udGVudD1cIkNvbW1vblwiIGhpZGRlbiBjbGFzcz1cIm5nLWhpZGVcIiAqbmdJZj1cImlzQXBwbGljYXRpb25UeXBlXCI+PC9kaXY+XG4gICAgPGFwcC1zcGlubmVyIG5hbWU9XCJnbG9iYWxzcGlubmVyXCIgY2xhc3NuYW1lPVwiZ2xvYmFsLXNwaW5uZXJcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInNwaW5uZXIuYXJpYWxhYmVsIHx8ICdMb2FkaW5nJ1wiIFtzaG93XT1cInNwaW5uZXIuc2hvd1wiIFtzcGlubmVybWVzc2FnZXNdPVwic3Bpbm5lci5tZXNzYWdlc1wiPjwvYXBwLXNwaW5uZXI+XG4gICAgPGRpdiB3bURpYWxvZyBuYW1lPVwib0F1dGhMb2dpbkRpYWxvZ1wiIHRpdGxlPVwiQXBwbGljYXRpb24gaXMgcmVxdWVzdGluZyB5b3UgdG8gc2lnbiBpbiB3aXRoXCJcbiAgICAgICAgIGNsb3NlLmV2ZW50PVwiY2xvc2VPQXV0aERpYWxvZygpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlhbG9nQm9keT5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtaXRlbXNcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgcHJvdmlkZXIgb2YgcHJvdmlkZXJzQ29uZmlnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiAoY2xpY2spPVwicHJvdmlkZXIuaW52b2tlKClcIj57e3Byb3ZpZGVyLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgd21Db25maXJtRGlhbG9nIG5hbWU9XCJfYXBwLWNvbmZpcm0tZGlhbG9nXCIgdGl0bGUuYmluZD1cInRpdGxlXCIgbWVzc2FnZS5iaW5kPVwibWVzc2FnZVwiIG9rdGV4dC5iaW5kPVwib2t0ZXh0XCJcbiAgICAgICAgIGNhbmNlbHRleHQuYmluZD1cImNhbmNlbHRleHRcIiBjbG9zYWJsZT1cImZhbHNlXCIgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgICAgZXNjYXBlLmV2ZW50PVwib25Fc2NhcGUoKVwiIG9rLmV2ZW50PVwib25PaygpXCIgY2FuY2VsLmV2ZW50PVwib25DYW5jZWwoKVwiIGNsb3NlLmV2ZW50PVwib25DbG9zZSgpXCIgb3BlbmVkLmV2ZW50PVwib25PcGVuKClcIj48L2Rpdj5cbiAgICA8ZGl2ICAqbmdJZj1cIiFpc0FwcGxpY2F0aW9uVHlwZVwiIHdtQ29uZmlybURpYWxvZyBuYW1lPVwiUHJlZmFiQ29uZmlybURpYWxvZ1wiIHRpdGxlLmJpbmQ9XCJ0aXRsZVwiIG1lc3NhZ2UuYmluZD1cInRleHRcIiBva3RleHQuYmluZD1cIm9rQnV0dG9uVGV4dFwiXG4gICAgICAgICBjYW5jZWx0ZXh0LmJpbmQ9XCJjYW5jZWxCdXR0b25UZXh0XCIgY2xvc2FibGU9XCJmYWxzZVwiIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgIGVzY2FwZS5ldmVudD1cIm9uRXNjYXBlKClcIiBvay5ldmVudD1cIm9uT2soKVwiIGNhbmNlbC5ldmVudD1cIm9uQ2FuY2VsKClcIiBjbG9zZS5ldmVudD1cIm9uQ2xvc2UoKVwiIG9wZW5lZC5ldmVudD1cIm9uT3BlbigpXCI+PC9kaXY+XG4gICAgPGRpdiAgKm5nSWY9XCIhaXNBcHBsaWNhdGlvblR5cGVcIiB3bUFsZXJ0RGlhbG9nIG5hbWU9XCJQcmVmYWJBbGVydERpYWxvZ1wiIHRpdGxlLmJpbmQ9XCJ0aXRsZVwiIG1lc3NhZ2UuYmluZD1cInRleHRcIiBva3RleHQuYmluZD1cIm9rQnV0dG9uVGV4dFwiXG4gICAgICAgICBjYW5jZWx0ZXh0LmJpbmQ9XCJjYW5jZWxCdXR0b25UZXh0XCIgY2xvc2FibGU9XCJmYWxzZVwiIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgIGVzY2FwZS5ldmVudD1cIm9uRXNjYXBlKClcIiBvay5ldmVudD1cIm9uT2soKVwiIGNhbmNlbC5ldmVudD1cIm9uQ2FuY2VsKClcIiBjbG9zZS5ldmVudD1cIm9uQ2xvc2UoKVwiIG9wZW5lZC5ldmVudD1cIm9uT3BlbigpXCI+PC9kaXY+XG4gICAgPGRpdiB3bUFwcEV4dD48L2Rpdj5cbiAgICA8aSBpZD1cIndtLW1vYmlsZS1kaXNwbGF5XCI+PC9pPlxuPC9uZy1jb250YWluZXI+XG48IS0tRHVtbXkgY29udGFpbmVyIHRvIGNyZWF0ZSB0aGUgY29tcG9uZW50IGR5bmFtaWNhbGx5LS0+XG48bmctY29udGFpbmVyICNkeW5hbWljQ29tcG9uZW50PjwvbmctY29udGFpbmVyPlxuIl19
|
237
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber: 46 }); })();
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGNBQWMsRUFDZCxTQUFTLEVBRVQsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXhILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QyxPQUFPLEVBQ0gsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLEdBQUcsRUFDSCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZUFBZSxFQUNsQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQzlCOUQsMEJBQTBHOzs7O0lBTzFGLEFBREosOEJBQStELGlCQUNYO0lBQTVCLCtMQUFTLG9CQUFpQixLQUFDO0lBQUMs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QUM7O2tGQU45QyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyLCBSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7c2V0VGhlbWV9IGZyb20gJ25neC1ib290c3RyYXAvdXRpbHMnO1xuXG5pbXBvcnQge1xuICAgICRpbnZva2VXYXRjaGVycyxcbiAgICBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBhZGRDbGFzcyxcbiAgICBBcHAsXG4gICAgQ3VzdG9tSWNvbnNMb2FkZXJTZXJ2aWNlLFxuICAgIGdldFdtUHJvamVjdFByb3BlcnRpZXMsXG4gICAgaGFzQ29yZG92YSxcbiAgICBub29wLFxuICAgIHJlbW92ZUNsYXNzLFxuICAgIHNldEFwcFJlZixcbiAgICBzZXROZ1pvbmUsXG4gICAgc2V0UGlwZVByb3ZpZGVyXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7T0F1dGhTZXJ2aWNlfSBmcm9tICdAd20vb0F1dGgnO1xuaW1wb3J0IHtBcHBNYW5hZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQge1BpcGVQcm92aWRlcn0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGlwZS1wcm92aWRlci5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIFNQSU5ORVIge1xuICAgIHNob3c6IGJvb2xlYW47XG4gICAgbWVzc2FnZXM6IEFycmF5PHN0cmluZz47XG4gICAgYXJpYWxhYmVsOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIHN0YXJ0QXBwID0gZmFsc2U7XG4gICAgcHVibGljIGlzQXBwbGljYXRpb25UeXBlID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKFJvdXRlck91dGxldCkgcm91dGVyT3V0bGV0OiBSb3V0ZXJPdXRsZXQ7XG5cbiAgICBAVmlld0NoaWxkKCdkeW5hbWljQ29tcG9uZW50Jywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgc3Bpbm5lcjogU1BJTk5FUiA9IHtzaG93OiBmYWxzZSwgbWVzc2FnZXM6IFtdLCBhcmlhbGFiZWw6ICcnfTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgX3BpcGVQcm92aWRlcjogUGlwZVByb3ZpZGVyLFxuICAgICAgICBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBwcml2YXRlIGFwcE1hbmFnZXI6IEFwcE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGN1c3RvbUljb25zTG9hZGVyU2VydmljZTogQ3VzdG9tSWNvbnNMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHNldFBpcGVQcm92aWRlcihfcGlwZVByb3ZpZGVyKTtcbiAgICAgICAgc2V0Tmdab25lKG5nWm9uZSk7XG4gICAgICAgIHNldEFwcFJlZihfYXBwUmVmKTtcblxuICAgICAgICB0aGlzLmlzQXBwbGljYXRpb25UeXBlID0gZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnR5cGUgPT09ICdBUFBMSUNBVElPTic7XG4gICAgICAgIGlmKHRoaXMuaXNBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tSWNvbnNMb2FkZXJTZXJ2aWNlLmxvYWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwTWFuYWdlci5iZWZvcmVBcHBSZWFkeSgpO1xuXG4gICAgICAgIC8vIHN1YnNjcmliZSB0byBPQXV0aCBjaGFuZ2VzXG4gICAgICAgIG9BdXRoU2VydmljZS5nZXRPQXV0aFByb3ZpZGVyc0FzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgocHJvdmlkZXJzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvdmlkZXJzQ29uZmlnID0gcHJvdmlkZXJzO1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dPQXV0aERpYWxvZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlT0F1dGhEaWFsb2coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBtZXNzYWdlIHNvdXJjZSB0byBzaG93L2hpZGUgYXBwIHNwaW5uZXJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5nZXRNZXNzYWdlU291cmNlKCkuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIHNldFRpbWVvdXQgaXMgdG8gYXZvaWQgJ0V4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3InXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIuc2hvdyA9IGRhdGEuc2hvdztcbiAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXIubWVzc2FnZXMgPSBkYXRhLm1lc3NhZ2VzO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Bpbm5lci5hcmlhbGFiZWwgPSBkYXRhLm1lc3NhZ2VzLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gc2V0IHRoZW1lIHRvIGJzMyBvbiBuZ3gtYm9vdHN0cmFwLiBUaGlzIGF2b2lkcyBydW50aW1lIGNhbGN1bGF0aW9uIHRvIGRldGVybWluZSBicyB0aGVtZS4gVGh1cyByZXNvbHZlcyBwZXJmb3JtYW5jZS5cbiAgICAgICAgc2V0VGhlbWUoJ2JzMycpO1xuXG4gICAgICAgIGxldCBzcGlubmVySWQ7XG5cbiAgICAgICAgbGV0IG9uUGFnZVJlbmRlcmVkID0gbm9vcDtcblxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFnZSA9IGUudXJsLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgICAgICAgcGFnZSA9IHBhZ2Uuc3Vic3RyaW5nKDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwLmFjdGl2ZUxheW91dE5hbWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAubGF5b3V0UGFnZXMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYodGhpcy5hcHAuYWN0aXZlTGF5b3V0TmFtZSAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcyAmJiB0aGlzLmFwcC5sYXlvdXRQYWdlcy5sZW5ndGggJiYgdGhpcy5hcHAubGF5b3V0UGFnZXMuaW5jbHVkZXMocGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lcklkID0gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCcnLCAnd21Sb3V0ZXJPdXRsZXQnLCAnJywgJ3dtUm91dGVyT3V0bGV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bpbm5lcklkID0gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCcnLCAnZ2xvYmFsU3Bpbm5lcicpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhcHAtcGFnZS1vdXRsZXQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyhub2RlLCAncGFnZS1sb2FkLWluLXByb2dyZXNzJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZUxvYWRTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoc3Bpbm5lcklkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FwcC1wYWdlLW91dGxldCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3Mobm9kZSwgJ3BhZ2UtbG9hZC1pbi1wcm9ncmVzcycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9uUGFnZVJlbmRlcmVkID0gbm9vcDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlUGFnZUxvYWRUaW1lID0gRGF0ZS5ub3coKSAtIHBhZ2VMb2FkU3RhcnRUaW1lO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+e1xuICAgICAgICAgICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hcHBNYW5hZ2VyLnN1YnNjcmliZSgncGFnZVJlYWR5JywgKCkgPT4ge1xuICAgICAgICAgICAgb25QYWdlUmVuZGVyZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXBwTWFuYWdlci5zdWJzY3JpYmUoJ3BhZ2VBdHRhY2gnLCAoKSA9PiB7XG4gICAgICAgICAgICBvblBhZ2VSZW5kZXJlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm92aWRlcnNDb25maWc7XG4gICAgaXNPQXV0aERpYWxvZ09wZW4gPSBmYWxzZTtcblxuICAgIHNob3dPQXV0aERpYWxvZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT0F1dGhEaWFsb2dPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT0F1dGhEaWFsb2dPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKCdvQXV0aExvZ2luRGlhbG9nJywgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZU9BdXRoRGlhbG9nKCkge1xuICAgICAgICBpZiAodGhpcy5pc09BdXRoRGlhbG9nT3Blbikge1xuICAgICAgICAgICAgdGhpcy5pc09BdXRoRGlhbG9nT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlKCdvQXV0aExvZ2luRGlhbG9nJywgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0KCkge1xuICAgICAgICAvL3RvIGZpeCB0aGUgaXNzdWUgdGhhdCBoYXBwZW5zIG9ubHkgaW4gdGhlIGRldmVsb3BtZW50IG1vZGVcbiAgICAgICAgLy9FeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yXG4gICAgICAgIC8vZml4OiBodHRwczovL2Jsb2cuYW5ndWxhci11bml2ZXJzaXR5LmlvL2FuZ3VsYXItZGVidWdnaW5nL1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRBcHAgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFwcC5keW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmID0gdGhpcy5keW5hbWljQ29tcG9uZW50Q29udGFpbmVyUmVmO1xuICAgICAgICAgICAgdGhpcy5vdmVycmlkZVJvdXRlck91dGxldCgpO1xuICAgICAgICB9LCAxMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvdmVycmlkZVJvdXRlck91dGxldCgpIHtcbiAgICAgICAgLy9vdmVycmlkZSB0aGUgYXR0YWNoL2RldGFjaCBtZXRob2RzXG4gICAgICAgIGNvbnN0IG9BdHRhY2ggPSB0aGlzLnJvdXRlck91dGxldC5hdHRhY2g7XG4gICAgICAgIGNvbnN0IG9EZXRhY2ggPSB0aGlzLnJvdXRlck91dGxldC5kZXRhY2g7XG4gICAgICAgIHRoaXMucm91dGVyT3V0bGV0LmF0dGFjaCA9IChjb21wb25lbnRSZWY6IGFueSkgPT4ge1xuICAgICAgICAgICAgb0F0dGFjaC5jYWxsKHRoaXMucm91dGVyT3V0bGV0LCBjb21wb25lbnRSZWYpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5nT25BdHRhY2goKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yb3V0ZXJPdXRsZXQuZGV0YWNoID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHAuYWN0aXZlUGFnZS5uZ09uRGV0YWNoKCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBvRGV0YWNoLmNhbGwodGhpcy5yb3V0ZXJPdXRsZXQpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuZGVmYXVsdExhbmd1YWdlKTtcbiAgICAgICAgaWYgKGhhc0NvcmRvdmEoKSAmJiAhd2luZG93Wyd3bURldmljZVJlYWR5J10pIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dtRGV2aWNlUmVhZHknICwgKCkgPT4gdGhpcy5zdGFydCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgJGludm9rZVdhdGNoZXJzKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXJ0QXBwXCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDxkaXYgd21Db250YWluZXIgcGFydGlhbENvbnRhaW5lciBjb250ZW50PVwiQ29tbW9uXCIgaGlkZGVuIGNsYXNzPVwibmctaGlkZVwiICpuZ0lmPVwiaXNBcHBsaWNhdGlvblR5cGVcIj48L2Rpdj5cbiAgICA8YXBwLXNwaW5uZXIgbmFtZT1cImdsb2JhbHNwaW5uZXJcIiBjbGFzc25hbWU9XCJnbG9iYWwtc3Bpbm5lclwiIHJvbGU9XCJhbGVydFwiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3Bpbm5lci5hcmlhbGFiZWwgfHwgJ0xvYWRpbmcnXCIgW3Nob3ddPVwic3Bpbm5lci5zaG93XCIgW3NwaW5uZXJtZXNzYWdlc109XCJzcGlubmVyLm1lc3NhZ2VzXCI+PC9hcHAtc3Bpbm5lcj5cbiAgICA8ZGl2IHdtRGlhbG9nIG5hbWU9XCJvQXV0aExvZ2luRGlhbG9nXCIgdGl0bGU9XCJBcHBsaWNhdGlvbiBpcyByZXF1ZXN0aW5nIHlvdSB0byBzaWduIGluIHdpdGhcIlxuICAgICAgICAgY2xvc2UuZXZlbnQ9XCJjbG9zZU9BdXRoRGlhbG9nKClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkaWFsb2dCb2R5PlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaXRlbVwiICpuZ0Zvcj1cImxldCBwcm92aWRlciBvZiBwcm92aWRlcnNDb25maWdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJwcm92aWRlci5pbnZva2UoKVwiPnt7cHJvdmlkZXIubmFtZX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiB3bUNvbmZpcm1EaWFsb2cgbmFtZT1cIl9hcHAtY29uZmlybS1kaWFsb2dcIiB0aXRsZS5iaW5kPVwidGl0bGVcIiBtZXNzYWdlLmJpbmQ9XCJtZXNzYWdlXCIgb2t0ZXh0LmJpbmQ9XCJva3RleHRcIlxuICAgICAgICAgY2FuY2VsdGV4dC5iaW5kPVwiY2FuY2VsdGV4dFwiIGNsb3NhYmxlPVwiZmFsc2VcIiBpY29uY2xhc3MuYmluZD1cImljb25jbGFzc1wiXG4gICAgICAgICBlc2NhcGUuZXZlbnQ9XCJvbkVzY2FwZSgpXCIgb2suZXZlbnQ9XCJvbk9rKClcIiBjYW5jZWwuZXZlbnQ9XCJvbkNhbmNlbCgpXCIgY2xvc2UuZXZlbnQ9XCJvbkNsb3NlKClcIiBvcGVuZWQuZXZlbnQ9XCJvbk9wZW4oKVwiPjwvZGl2PlxuICAgIDxkaXYgICpuZ0lmPVwiIWlzQXBwbGljYXRpb25UeXBlXCIgd21Db25maXJtRGlhbG9nIG5hbWU9XCJQcmVmYWJDb25maXJtRGlhbG9nXCIgdGl0bGUuYmluZD1cInRpdGxlXCIgbWVzc2FnZS5iaW5kPVwidGV4dFwiIG9rdGV4dC5iaW5kPVwib2tCdXR0b25UZXh0XCJcbiAgICAgICAgIGNhbmNlbHRleHQuYmluZD1cImNhbmNlbEJ1dHRvblRleHRcIiBjbG9zYWJsZT1cImZhbHNlXCIgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgICAgZXNjYXBlLmV2ZW50PVwib25Fc2NhcGUoKVwiIG9rLmV2ZW50PVwib25PaygpXCIgY2FuY2VsLmV2ZW50PVwib25DYW5jZWwoKVwiIGNsb3NlLmV2ZW50PVwib25DbG9zZSgpXCIgb3BlbmVkLmV2ZW50PVwib25PcGVuKClcIj48L2Rpdj5cbiAgICA8ZGl2ICAqbmdJZj1cIiFpc0FwcGxpY2F0aW9uVHlwZVwiIHdtQWxlcnREaWFsb2cgbmFtZT1cIlByZWZhYkFsZXJ0RGlhbG9nXCIgdGl0bGUuYmluZD1cInRpdGxlXCIgbWVzc2FnZS5iaW5kPVwidGV4dFwiIG9rdGV4dC5iaW5kPVwib2tCdXR0b25UZXh0XCJcbiAgICAgICAgIGNhbmNlbHRleHQuYmluZD1cImNhbmNlbEJ1dHRvblRleHRcIiBjbG9zYWJsZT1cImZhbHNlXCIgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgICAgZXNjYXBlLmV2ZW50PVwib25Fc2NhcGUoKVwiIG9rLmV2ZW50PVwib25PaygpXCIgY2FuY2VsLmV2ZW50PVwib25DYW5jZWwoKVwiIGNsb3NlLmV2ZW50PVwib25DbG9zZSgpXCIgb3BlbmVkLmV2ZW50PVwib25PcGVuKClcIj48L2Rpdj5cbiAgICA8ZGl2IHdtQXBwRXh0PjwvZGl2PlxuICAgIDxpIGlkPVwid20tbW9iaWxlLWRpc3BsYXlcIj48L2k+XG48L25nLWNvbnRhaW5lcj5cbjwhLS1EdW1teSBjb250YWluZXIgdG8gY3JlYXRlIHRoZSBjb21wb25lbnQgZHluYW1pY2FsbHktLT5cbjxuZy1jb250YWluZXIgI2R5bmFtaWNDb21wb25lbnQ+PC9uZy1jb250YWluZXI+XG4iXX0=
|
@@ -8,15 +8,16 @@ import * as i0 from "@angular/core";
|
|
8
8
|
here component is pagewrapper so adding custom implementation for route change
|
9
9
|
*/
|
10
10
|
export class CanDeactivatePageGuard {
|
11
|
-
canDeactivate(component) {
|
11
|
+
canDeactivate(component, currentRoute, currentState, nextState) {
|
12
12
|
function invokeCompDeactivate() {
|
13
13
|
let retVal;
|
14
|
+
const nextRoute = nextState ? nextState.url : undefined;
|
14
15
|
// Calling onBeforePageLeave method present at page level
|
15
|
-
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave();
|
16
|
+
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave(nextRoute);
|
16
17
|
// Calling onBeforePageLeave method present at app level only if page level method return true
|
17
18
|
// or if there is no page level method
|
18
19
|
if (retVal !== false) {
|
19
|
-
retVal = (this.app.onBeforePageLeave || noop)(this.app.activePageName, this.app.activePage);
|
20
|
+
retVal = (this.app.onBeforePageLeave || noop)(this.app.activePageName, this.app.activePage, nextRoute);
|
20
21
|
}
|
21
22
|
return retVal === undefined ? true : retVal;
|
22
23
|
}
|
@@ -39,4 +40,4 @@ export class CanDeactivateNgPageGuard {
|
|
39
40
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CanDeactivateNgPageGuard, [{
|
40
41
|
type: Injectable
|
41
42
|
}], null, null); })();
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlYWN0aXZhdGUtcGFnZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQVE5Qjs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsYUFBYSxDQUNYLFNBQWlDLEVBQ2pDLFlBQW9DLEVBQ3BDLFlBQWlDLEVBQ2pDLFNBQStCO1FBRTdCLFNBQVMsb0JBQW9CO1lBQ3pCLElBQUksTUFBTSxDQUFDO1lBQ1gsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEQseURBQXlEO1lBQ3pELE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRiw4RkFBOEY7WUFDOUYsc0NBQXNDO1lBQ3RDLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRyxDQUFDO2dCQUNwQixNQUFNLEdBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVHLENBQUM7WUFDRCxPQUFPLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO3VGQXBCVSxzQkFBc0I7dUVBQXRCLHNCQUFzQixXQUF0QixzQkFBc0I7O2lGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVTs7QUF5QlgsNkRBQTZEO0FBRTdELE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsYUFBYSxDQUFDLFNBQWlDO1FBQzNDLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEUsQ0FBQzt5RkFIUSx3QkFBd0I7dUVBQXhCLHdCQUF3QixXQUF4Qix3QkFBd0I7O2lGQUF4Qix3QkFBd0I7Y0FEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtub29wfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkNvbXBvbmVudERlYWN0aXZhdGUgIHtcbiAgICBjYW5EZWFjdGl2YXRlOiAoKSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB8IGJvb2xlYW47XG59XG5cbi8qXG4gICAgY2FuRGVhY3RpdmF0ZSBndWFyZCBmb3IgcHJldmlldy9XTSBkZXBsb3ltZW50LlxuICAgIFtXTVMtMTkxNTldIC0gTW92ZWQgQ2FuRGVhY3RpdmF0ZSgpIGZyb20gcGFnZS13cmFwcGVyLmNvbXBvbmVudC50cyB0byBiYXNlLXBhZ2UuY29tcG9uZW50LnRzKHdoaWNoIGlzIGNvbW1vbiBmb3IgYm90aCBwcmV2aWV3IGFuZCBhbmd1bGFyKVxuICAgIGJlY2F1c2UgYmVmb3JlcGFnZWxlYXZlIGlzIG5vdCBjYWxsaW5nIGZvciBicm93c2VyL3RhYiBjbG9zZSBpbiBhbmd1bGFybW9kZVxuICAgIGhlcmUgY29tcG9uZW50IGlzIHBhZ2V3cmFwcGVyIHNvIGFkZGluZyBjdXN0b20gaW1wbGVtZW50YXRpb24gZm9yIHJvdXRlIGNoYW5nZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FuRGVhY3RpdmF0ZVBhZ2VHdWFyZCB7XG4gIGNhbkRlYWN0aXZhdGUoXG4gICAgY29tcG9uZW50OiBDYW5Db21wb25lbnREZWFjdGl2YXRlLFxuICAgIGN1cnJlbnRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICAgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdFxuICApIHtcbiAgICAgIGZ1bmN0aW9uIGludm9rZUNvbXBEZWFjdGl2YXRlKCkge1xuICAgICAgICAgIGxldCByZXRWYWw7XG4gICAgICAgICAgY29uc3QgbmV4dFJvdXRlID0gbmV4dFN0YXRlID8gbmV4dFN0YXRlLnVybCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAvLyBDYWxsaW5nIG9uQmVmb3JlUGFnZUxlYXZlIG1ldGhvZCBwcmVzZW50IGF0IHBhZ2UgbGV2ZWxcbiAgICAgICAgICByZXRWYWwgPSB0aGlzLmFwcC5hY3RpdmVQYWdlICYmIHRoaXMuYXBwLmFjdGl2ZVBhZ2Uub25CZWZvcmVQYWdlTGVhdmUobmV4dFJvdXRlKTtcbiAgICAgICAgICAvLyBDYWxsaW5nIG9uQmVmb3JlUGFnZUxlYXZlIG1ldGhvZCBwcmVzZW50IGF0IGFwcCBsZXZlbCBvbmx5IGlmIHBhZ2UgbGV2ZWwgbWV0aG9kIHJldHVybiB0cnVlXG4gICAgICAgICAgLy8gb3IgaWYgdGhlcmUgaXMgbm8gcGFnZSBsZXZlbCBtZXRob2RcbiAgICAgICAgICBpZiAocmV0VmFsICE9PSBmYWxzZSApIHtcbiAgICAgICAgICAgICAgcmV0VmFsID0gICh0aGlzLmFwcC5vbkJlZm9yZVBhZ2VMZWF2ZSB8fCBub29wKSh0aGlzLmFwcC5hY3RpdmVQYWdlTmFtZSwgdGhpcy5hcHAuYWN0aXZlUGFnZSwgbmV4dFJvdXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJldFZhbCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHJldFZhbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbnZva2VDb21wRGVhY3RpdmF0ZS5hcHBseShjb21wb25lbnQpO1xuICB9XG59XG5cblxuLy8gIFtXTVMtMTg4NDddIC0gY2FuRGVhY3RpdmF0ZSBndWFyZCBmb3IgYW5ndWxhciBkZXBsb3ltZW50LlxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbkRlYWN0aXZhdGVOZ1BhZ2VHdWFyZCB7XG4gICAgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IENhbkNvbXBvbmVudERlYWN0aXZhdGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5jYW5EZWFjdGl2YXRlID8gY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKSA6IHRydWU7XG4gICAgfVxufVxuIl19
|
@@ -159,7 +159,7 @@ export class I18nServiceImpl extends AbstractI18nService {
|
|
159
159
|
return locale === moment.tz(timezoneName).format('Z');
|
160
160
|
});
|
161
161
|
}
|
162
|
-
|
162
|
+
moment.tz.setDefault(locale);
|
163
163
|
const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;
|
164
164
|
Object.assign(localeData, localeObj);
|
165
165
|
resolve();
|
@@ -331,4 +331,4 @@ export class I18nServiceImpl extends AbstractI18nService {
|
|
331
331
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(I18nServiceImpl, [{
|
332
332
|
type: Injectable
|
333
333
|
}], () => [{ type: i1.HttpClient }, { type: i2.BsLocaleService }, { type: i3.AppDefaults }, { type: i0.Injector }], null); })();
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsR0FBRyxFQUNOLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdGLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3ZILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxP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Z3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgZGVmaW5lTG9jYWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9jaHJvbm9zJztcbmltcG9ydCB7IEJzTG9jYWxlU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7XG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQXBwRGVmYXVsdHMsXG4gICAgZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtLFxuICAgIGdldFdtUHJvamVjdFByb3BlcnRpZXMsXG4gICAgaXNNb2JpbGUsXG4gICAgaXNNb2JpbGVBcHAsXG4gICAgbG9hZFNjcmlwdHMsXG4gICAgcmVwbGFjZSxcbiAgICBzZXRDU1MsXG4gICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtLFxuICAgIEFwcFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7ZmluZCwgZm9yRWFjaCwgZ2V0LCBpbmNsdWRlcywgaW50ZXJzZWN0aW9uLCBpc09iamVjdCwgbWFwLCB0b0xvd2VyfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgbW9tZW50O1xuXG5jb25zdCBBUFBfTE9DQUxFX1JPT1RfUEFUSCA9ICdyZXNvdXJjZXMvaTE4bic7XG5jb25zdCBSVExfTEFOR1VBR0VfQ09ERVMgPSBbJ2FyJywgJ2FyLTAwMScsICdhci1hZScsICdhci1iaCcsICdhci1keicsICdhci1lZycsICdhci1pcScsICdhci1qbycsICdhci1rdycsICdhci1sYicsICdhci1seScsXG4gICAgJ2FyLW1hJywgJ2FyLW9tJywgJ2FyLXFhJywgJ2FyLXNhJywgJ2FyLXNkJywgJ2FyLXN5JywgJ2FyLXRuJywgJ2FyLXllJywgJ2FyYycsICdiY2MnLCAnYnFpJywgJ2NrYicsICdkdicsICdmYScsICdnbGsnLFxuICAgICdoZScsICdrdScsICdtem4nLCAncG5iJywgJ3BzJywgJ3NkJywgJ3VnJywgJ3VyJywgJ3lpJ107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZUltcGwgZXh0ZW5kcyBBYnN0cmFjdEkxOG5TZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc2VsZWN0ZWRMb2NhbGU6IHN0cmluZztcbiAgICBwcml2YXRlIGRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUgPSAnZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwTG9jYWxlOiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmVmYWJMb2NhbGU6IE1hcDxTdHJpbmcsIGFueT47XG4gICAgcHJpdmF0ZSBtZXNzYWdlczogYW55O1xuICAgIHByaXZhdGUgX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgZm9ybWF0c0J5TG9jYWxlID0geyd0aW1lem9uZSc6ICcnLCAnbnVtYmVyJzogJyd9O1xuICAgIHByaXZhdGUgZ2V0IGFwcCgpIHsgcmV0dXJuIHRoaXMuaW5qLmdldChBcHApIH07XG5cbiAgICBwcml2YXRlIGJ1bmRsZUxvYWRlZDp7W2tleTpzdHJpbmddIDogYW55fSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgJGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgYnNMb2NhbGVTZXJ2aWNlOiBCc0xvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwRGVmYXVsdHM6IEFwcERlZmF1bHRzLFxuICAgICAgICBwcml2YXRlIGluajogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB7fTtcbiAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMb2NhbGVEaXJlY3Rpb24oKSB7XG4gICAgICAgIGxldCBkaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgPSAnbHRyJztcbiAgICAgICAgaWYgKFJUTF9MQU5HVUFHRV9DT0RFUy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTG9jYWxlKSkge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gJ3J0bCc7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDU1MoZG9jdW1lbnQuYm9keSwgJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0KCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0ge307XG5cbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMuYXBwTG9jYWxlLCB0aGlzLm1lc3NhZ2VzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERlZmF1bHRTdXBwb3J0ZWRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXBwTG9jYWxlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJlZmFiTG9jYWxlQnVuZGxlKHByZWZhYk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5wcmVmYWJMb2NhbGUuaGFzKHByZWZhYk5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnByZWZhYkxvY2FsZS5zZXQocHJlZmFiTmFtZSwgT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcExvY2FsZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRQcmVmYWJNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghbWVzc2FnZXMucHJlZmFiTWVzc2FnZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzKS5mb3JFYWNoKChwcmVmYWJOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCBidW5kbGUgPSB0aGlzLnByZWZhYkxvY2FsZS5nZXQocHJlZmFiTmFtZSk7XG4gICAgICAgICAgICBpZiAoIWJ1bmRsZSkge1xuICAgICAgICAgICAgICAgIGJ1bmRsZSA9IE9iamVjdC5jcmVhdGUodGhpcy5hcHBMb2NhbGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJlZmFiTG9jYWxlLnNldChwcmVmYWJOYW1lLCBidW5kbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihidW5kbGUsIG1lc3NhZ2VzLnByZWZhYk1lc3NhZ2VzW3ByZWZhYk5hbWVdKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleHRlbmRNZXNzYWdlcyhtZXNzYWdlczogYW55KTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXNzYWdlcywgbWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFJlc291cmNlKHBhdGgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy4kaHR0cC5nZXQocGF0aClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYGVycm9yIGxvYWRpbmcgbG9jYWxlIHJlc291cmNlIGZyb20gJHtwYXRofWApO1xuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZEFwcExvY2FsZUJ1bmRsZSgpIHtcbiAgICAgICAgdGhpcy5sb2FkUmVzb3VyY2UoYCR7QVBQX0xPQ0FMRV9ST09UX1BBVEh9LyR7dGhpcy5zZWxlY3RlZExvY2FsZX0uanNvbmApXG4gICAgICAgICAgICAudGhlbihidW5kbGUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5kTWVzc2FnZXMoYnVuZGxlLm1lc3NhZ2VzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmV4dGVuZFByZWZhYk1lc3NhZ2VzKGJ1bmRsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBEZWZhdWx0cy5zZXRGb3JtYXRzKGJ1bmRsZS5mb3JtYXRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hcHAgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRNb21lbnRMb2NhbGVCdW5kbGUobW9tZW50TG9jYWxlKSB7XG4gICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUodGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL21vbWVudC8ke21vbWVudExvY2FsZX0uanNgO1xuICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgIG1vbWVudC5sb2NhbGUodGhpcy5zZWxlY3RlZExvY2FsZSk7XG5cbiAgICAgICAgICAgIC8vIEZvciBuZ3ggYm9vdHN0cmFwIGxvY2FsZSwgZ2V0IHRoZSBjb25maWcgZnJvbSBzY3JpcHQgYW5kIGFwcGx5IGxvY2FsZVxuICAgICAgICAgICAgLy8gbW9tZW50LmxvY2FsZURhdGEobW9tZW50TG9jYWxlKSB3aWxsIHJldHVybiBtb21lbnQgbG9jYWxlIGluc3RhbmNlLiBfY29uZmlnIGluc2lkZSB3aWxsIGhhdmUgYWN0dWFsIGNvbmZpZ1xuICAgICAgICAgICAgbGV0IF9jb25maWcgPSBtb21lbnQubG9jYWxlRGF0YShtb21lbnRMb2NhbGUpO1xuICAgICAgICAgICAgX2NvbmZpZyA9IF9jb25maWcgJiYgX2NvbmZpZy5fY29uZmlnO1xuICAgICAgICAgICAgZGVmaW5lTG9jYWxlKHRoaXMuc2VsZWN0ZWRMb2NhbGUsIF9jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5ic0xvY2FsZVNlcnZpY2UudXNlKHRoaXMuZ2V0U2VsZWN0ZWRMb2NhbGUoKSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQW5ndWxhckxvY2FsZUJ1bmRsZShhbmdMb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9hbmd1bGFyL2dsb2JhbC8ke2FuZ0xvY2FsZX0uanNgO1xuXG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0FuZ3VsYXJMb2NhbGVMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sIHJlc29sdmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZENhbGVuZGFyTG9jYWxlQnVuZGxlKGNhbGVuZGFyTG9jYWxlLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgIGxldCBwYXRoOiBzdHJpbmc7XG4gICAgICAgIGlmIChjYWxlbmRhckxvY2FsZSkge1xuICAgICAgICAgICAgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9mdWxsY2FsZW5kYXIvJHtjYWxlbmRhckxvY2FsZX0uanNgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGluIGNhc2Ugb2YgbW9iaWxlIGFwcCBvciBpZiBzZWxlY3RlZCBsb2NhbGUgaXMgZGVmYXVsdCBzdXBwb3J0ZWQgbG9jYWxlLlxuICAgICAgICBpZiAoIWZvcmNlICYmIChpc01vYmlsZSgpIHx8IGlzTW9iaWxlQXBwKCkgfHwgdGhpcy5zZWxlY3RlZExvY2FsZSA9PT0gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKSkge1xuICAgICAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuZnVsbENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGwgdGhlIHNjcmlwdC4gSW4gc2NyaXB0LCBtb21lbnQgZGVmaW5lcyB0aGUgbG9hZGVkIGxvY2FsZVxuICAgICAgICByZXR1cm4gbG9hZFNjcmlwdHMoW3BhdGhdLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZE1vbWVudFRpbWVab25lQnVuZGxlKGxvY2FsZSwgY29tcEluc3RhbmNlPykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfY2RuVXJsID0gX1dNX0FQUF9QUk9KRUNULmNkblVybCB8fCBfV01fQVBQX1BST0pFQ1QubmdEZXN0O1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IF9jZG5VcmwgKyBgbG9jYWxlcy9tb21lbnQtdGltZXpvbmUvbW9tZW50LXRpbWV6b25lLXdpdGgtZGF0YS5qc2A7XG4gICAgICAgICAgICBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBsb2NhbGUgaXMgcHJvdmlkZWQgaW4gdGhlIGZvcm0gb2Ygb2Zmc2V0IGFuZCBub3QgdGltZXpvbmUgbmFtZSwgZGVkdWNlIHRoZSBuYW1lLlxuICAgICAgICAgICAgICAgICAqIElmIGxvY2FsZSBpcyBwcm92aWRlZCBhcyBHTVQrOSwgbmFtZSB3aWxsIGJlIGRlZHVjZWQgYXMgQXNpYS9Ub2t5b1xuICAgICAgICAgICAgICAgICAqL1xuXG4gICAgICAgICAgICAgICAgbGV0IGxvY2FsZU9iaiA9IGxvY2FsZTtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGVPYmpbJ3RpbWV6b25lJ107XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlSW5kZXggPSBsb2NhbGUuaW5kZXhPZignKycpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGVJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5zdWJzdHIobG9jYWxlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZU9ialsndGltZXpvbmUnXSA9IGZpbmQobW9tZW50LnR6Lm5hbWVzKCksICh0aW1lem9uZU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGUgPT09IG1vbWVudC50eih0aW1lem9uZU5hbWUpLmZvcm1hdCgnWicpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRzQnlMb2NhbGUudGltZXpvbmUgPSBsb2NhbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9ICBjb21wSW5zdGFuY2UgJiYgY29tcEluc3RhbmNlLmZvcm1hdHNCeUxvY2FsZSA/IGNvbXBJbnN0YW5jZS5mb3JtYXRzQnlMb2NhbGUgOiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGxvY2FsZURhdGEsIGxvY2FsZU9iaik7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgcmVzb2x2ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTG9jYWxlQnVuZGxlcyhsaWJMb2NhbGUpIHtcbiAgICAgICAgaWYgKGxpYkxvY2FsZS5tb21lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vbWVudExvY2FsZUJ1bmRsZShsaWJMb2NhbGUubW9tZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHRoaXMuYnNMb2NhbGVTZXJ2aWNlLnVzZSh0aGlzLmdldFNlbGVjdGVkTG9jYWxlKCkgfHwgdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIgJiYgd2luZG93WydGdWxsQ2FsZW5kYXInXSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ2FsZW5kYXJMb2NhbGVCdW5kbGUobGliTG9jYWxlLmZ1bGxDYWxlbmRhcik/LnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpYkxvY2FsZS5hbmd1bGFyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRBcHBMb2NhbGVCdW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQW5ndWxhckxvY2FsZUJ1bmRsZShsaWJMb2NhbGUuYW5ndWxhcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRpbWV6b25lKGxvY2FsZSwgY29tcEluc3RhbmNlPykge1xuICAgICAgICB0aGlzLmxvYWRNb21lbnRUaW1lWm9uZUJ1bmRsZShsb2NhbGUsIGNvbXBJbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRpbWV6b25lKGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgY29uc3QgcGFnZUNvbmZpZyA9IGdldCh0aGlzLmFwcCwgJ2FjdGl2ZVBhZ2UuZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGNvbnN0IGNvbXBDb25maWcgPSBnZXQoY29tcEluc3RhbmNlLCAnZm9ybWF0c0J5TG9jYWxlLnRpbWV6b25lJyk7XG4gICAgICAgIGlmIChjb21wQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcENvbmZpZztcbiAgICAgICAgfSBlbHNlIGlmIChwYWdlQ29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFnZUNvbmZpZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZVsndGltZXpvbmUnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXRzQnlMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKSB7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGV2ZW50IGlzIHByb3BhZ2F0ZWQgZnJvbSB0aGUgc2VsZWN0IG9yIGFueSBzdWNoIHdpZGdldFxuICAgICAgICBpZiAoaXNPYmplY3QobG9jYWxlKSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlLmRhdGF2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpYkxvY2FsZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXNbbG9jYWxlXTtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkTG9jYWxlID0gT2JqZWN0LmtleXMoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnN1cHBvcnRlZExhbmd1YWdlcyk7XG5cbiAgICAgICAgaWYgKCFpbmNsdWRlcyhzdXBwb3J0ZWRMb2NhbGUsIGxvY2FsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gdGhpcy5zZWxlY3RlZExvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScsIGxvY2FsZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZExvY2FsZSA9IGxvY2FsZTtcblxuICAgICAgICAvLyByZXNldCB0aGUgbG9jYWxlRGF0YSBvYmplY3RcbiAgICAgICAgdGhpcy5pbml0KCk7XG5cbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubW9tZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hcHAgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5saWJMb2NhbGUgPSBsaWJMb2NhbGU7XG5cbiAgICAgICAgLy8gbG9hZCB0aGUgbG9jYWxlIGJ1bmRsZXMgb2YgdGhlIHNlbGVjdGVkIGxvY2FsZVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9jYWxlQnVuZGxlcyhsaWJMb2NhbGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbGVEaXJlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVkdWNlQXBwTG9jYWxlKCkge1xuICAgICAgICAvLyBjb21wdXRhdGlvbiB0byBmaW5kIGFwcCBkZWZhdWx0IGxvY2FsZVxuICAgICAgICBjb25zdCBfYWNjZXB0TGFuZyA9IHRoaXMuZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKTtcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5ndWFnZSA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5kZWZhdWx0TGFuZ3VhZ2U7XG4gICAgICAgIF9hY2NlcHRMYW5nLnB1c2goX2RlZmF1bHRMYW5ndWFnZSk7XG5cbiAgICAgICAgLy8gY2hlY2tzIHdoZXRoZXIgdXNlciBwcmVmZXJlbmNlIGlzIGJhc2VkIG9uIGJyb3dzZXIgc2V0IGxhbmd1YWdlcyBvciBkZWZhdWx0IGxhbmd1YWdlIHNldCBpbiBwcm9qZWN0XG4gICAgICAgIGxldCBwcmVmZXJCcm93c2VyTGFuZyA9IGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5wcmVmZXJCcm93c2VyTGFuZztcbiAgICAgICAgaWYgKCFwcmVmZXJCcm93c2VyTGFuZykgeyAvLyB3aGVuIHByZWZlckJyb3dzZXJMYW5nIGlzIG5vdCBkZWZpbmVkLCBzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nICA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7IC8vIGNvbnZlcnQgc3RyaW5naWZpZWQgYm9vbGVhbiB2YWx1ZXMgcmVjaWV2ZWQgZnJvbSBCRSB0byBib29sZWFuc1xuICAgICAgICAgICAgcHJlZmVyQnJvd3Nlckxhbmc9IChwcmVmZXJCcm93c2VyTGFuZyA9PT0gJ3RydWUnIHx8IHByZWZlckJyb3dzZXJMYW5nID09PSB0cnVlKSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBfc3VwcG9ydGVkTGFuZyA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpIHx8IFt0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGVdO1xuXG4gICAgICAgIC8vIHdoZW4gcHJlZmVyZW5jZSBpcyBnaXZlbiB0byBicm93c2VyIHNldCBsYW5ndWFnZXMsIGRvIG5vdCBwb3B1bGF0ZSBfc2VsZWN0ZWREZWZhdWx0TGFuZyB2YXJpYWJsZVxuICAgICAgICBsZXQgX3NlbGVjdGVkRGVmYXVsdExhbmcgPSBwcmVmZXJCcm93c2VyTGFuZyA/IHVuZGVmaW5lZCA6IF9kZWZhdWx0TGFuZ3VhZ2U7XG5cbiAgICAgICAgbGV0IF9hcHBTdXBwb3J0ZWRMYW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogZm9yIGNvcmRvdmEsIGNoZWNrIGZvciBsYW5ndWFnZSBpZ25vcmluZyB0aGUgbG9jYWxlXG4gICAgICAgICAqIEFzIHRoZSBuYXZpZ2F0b3IubGFuZ3VhZ2VzIGFsd2F5cyByZXR1cm5zIHRoZSBsYW5ndWFnZSB3aXRoIGxvY2FsZSAoZW4tdXMpXG4gICAgICAgICAqIFRoZSBzdXBwb3J0ZWRMYW5ndWFnZXMgZnJvbSBCRSBkb2Vzbid0IGluY2x1ZGUgbG9jYWxlIChlbikgd2hpY2ggbGVhZHMgdG8gbWlzbWF0Y2hcbiAgICAgICAgICovXG4gICAgICAgIGlmIChDT05TVEFOVFMuaGFzQ29yZG92YSkge1xuICAgICAgICAgICAgbGV0IHN1cHBvcnRlZExhbmcgPSBbXTtcbiAgICAgICAgICAgIGZvckVhY2goX2FjY2VwdExhbmcsIGZ1bmN0aW9uIChsYW5nKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1hdGNoZWRMYW5nID0gZmluZChfc3VwcG9ydGVkTGFuZywgKHZhbCkgPT4gbGFuZyA9PT0gdmFsKSB8fCBmaW5kKF9zdXBwb3J0ZWRMYW5nLCAodmFsKSA9PiBsYW5nLnN0YXJ0c1dpdGgodmFsKSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRMYW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmcucHVzaChtYXRjaGVkTGFuZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBfYXBwU3VwcG9ydGVkTGFuZyA9IHN1cHBvcnRlZExhbmdbMF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2hlY2sgZm9yIHRoZSBzZXNzaW9uIHN0b3JhZ2UgdG8gbG9hZCBhbnkgcHJlLXJlcXVlc3RlZCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2RlZmF1bHRMYW5nID0gZ2V0U2Vzc2lvblN0b3JhZ2VJdGVtKCdzZWxlY3RlZExvY2FsZScpIHx8IF9zZWxlY3RlZERlZmF1bHRMYW5nIHx8IF9hcHBTdXBwb3J0ZWRMYW5nIHx8IGludGVyc2VjdGlvbihfYWNjZXB0TGFuZywgX3N1cHBvcnRlZExhbmcpWzBdIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZTtcbiAgICAgICAgLy8gaWYgdGhlIHN1cHBvcnRlZExvY2FsZSBpcyBub3QgYXZhaWxhYmxlIHNldCBpdCB0byBkZWZhdWx0TG9jYWxlXG4gICAgICAgIF9zdXBwb3J0ZWRMYW5nID0gX3N1cHBvcnRlZExhbmcgfHwgW19kZWZhdWx0TGFuZ107XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gX2RlZmF1bHRMYW5nIHx8IF9zdXBwb3J0ZWRMYW5nWzBdO1xuICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2FkRGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgRGF0ZS5wcm90b3R5cGVbXCJtb250aFwiXSA9IERhdGUucHJvdG90eXBlLmdldE1vbnRoO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmRlZHVjZUFwcExvY2FsZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRTZWxlY3RlZExvY2FsZShsb2NhbGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2NhbGl6ZWRNZXNzYWdlKG1lc3NhZ2UsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2UodGhpcy5hcHBMb2NhbGVbbWVzc2FnZV0sIGFyZ3MpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWNjZXB0ZWQgbGFuZ3VhZ2VzIGxpc3RcbiAgICBwdWJsaWMgZ2V0QWNjZXB0ZWRMYW5ndWFnZXMoKSB7XG4gICAgICAgIGxldCBsYW5ndWFnZXM7XG4gICAgICAgIGlmIChDT05TVEFOVFMuaGFzQ29yZG92YSkge1xuICAgICAgICAgICAgbGFuZ3VhZ2VzID0gbmF2aWdhdG9yLmxhbmd1YWdlcyB8fCBbbmF2aWdhdG9yLmxhbmd1YWdlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhbmd1YWdlcyA9IGRlY29kZVVSSUNvbXBvbmVudChnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVycmVkTGFuZ3VhZ2UgfHwgJycpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBY2NlcHQtTGFuZ3VhZ2UgSGVhZGVyIHdpbGwgY29udGFpbiBzZXQgb2Ygc3VwcG9ydGVkIGxvY2FsZSwgc28gdHJ5IHNwbGl0dGluZyB0aGUgc3RyaW5nIHRvIHByb3BlciBsb2NhbGUgc2V0XG4gICAgICAgICAgICAgKiBFeDogZW4sZW4tVVM7cT0wLjksZGU7cT0wLjYsYXI7cT0wLjIsaGlcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBTcGxpdCB0aGUgYWJvdmUgaW50byBbZW4sZW4tdXMsZGUsYXIsaGldXG4gICAgICAgICAgICAgKiBAdHlwZSB7QXJyYXl9XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxhbmd1YWdlcyA9IGxhbmd1YWdlcy5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbihsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlLnNwbGl0KCc7JylbMF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFwKGxhbmd1YWdlcywgdG9Mb3dlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDYWxlbmRhckxvY2FsZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZExvY2FsZSAhPT0gJ2VuJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZENhbGVuZGFyTG9jYWxlQnVuZGxlKHRoaXMuc2VsZWN0ZWRMb2NhbGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBbmd1bGFyTG9jYWxlTG9hZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNBbmd1bGFyTG9jYWxlTG9hZGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXR3aWRnZXRMb2NhbGUobG9jYWxlKSB7XG4gICAgICAgIHRoaXMuZm9ybWF0c0J5TG9jYWxlWydudW1iZXInXSA9IGxvY2FsZVsnbnVtYmVyJ107XG4gICAgfVxuXG4gICAgcHVibGljIGdldHdpZGdldExvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0c0J5TG9jYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbm90aWZ5TG9jYWxlQ2hhbmdlZCgpIHtcbiAgICAgICAgaWYodGhpcy5idW5kbGVMb2FkZWQubW9tZW50ICYmIHRoaXMuYnVuZGxlTG9hZGVkLmZ1bGxDYWxlbmRhciAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5hbmd1bGFyICYmIHRoaXMuYnVuZGxlTG9hZGVkLmFwcCkge1xuICAgICAgICAgICAgdGhpcy5hcHAubm90aWZ5KCAgJ2xvY2FsZS1jaGFuZ2VkJywgdGhpcy5idW5kbGVMb2FkZWQubGliTG9jYWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnVudGltZS1iYXNlL3NyYy9zZXJ2aWNlcy9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLFdBQVcsRUFDWCxXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsR0FBRyxFQUNOLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSTdGLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7QUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPO0lBQ3ZILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxP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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBkZWZpbmVMb2NhbGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Nocm9ub3MnO1xuaW1wb3J0IHsgQnNMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHtcbiAgICBfV01fQVBQX1BST0pFQ1QsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBcHBEZWZhdWx0cyxcbiAgICBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgZ2V0V21Qcm9qZWN0UHJvcGVydGllcyxcbiAgICBpc01vYmlsZSxcbiAgICBpc01vYmlsZUFwcCxcbiAgICBsb2FkU2NyaXB0cyxcbiAgICByZXBsYWNlLFxuICAgIHNldENTUyxcbiAgICBzZXRTZXNzaW9uU3RvcmFnZUl0ZW0sXG4gICAgQXBwXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHtmaW5kLCBmb3JFYWNoLCBnZXQsIGluY2x1ZGVzLCBpbnRlcnNlY3Rpb24sIGlzT2JqZWN0LCBtYXAsIHRvTG93ZXJ9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCBtb21lbnQ7XG5cbmNvbnN0IEFQUF9MT0NBTEVfUk9PVF9QQVRIID0gJ3Jlc291cmNlcy9pMThuJztcbmNvbnN0IFJUTF9MQU5HVUFHRV9DT0RFUyA9IFsnYXInLCAnYXItMDAxJywgJ2FyLWFlJywgJ2FyLWJoJywgJ2FyLWR6JywgJ2FyLWVnJywgJ2FyLWlxJywgJ2FyLWpvJywgJ2FyLWt3JywgJ2FyLWxiJywgJ2FyLWx5JyxcbiAgICAnYXItbWEnLCAnYXItb20nLCAnYXItcWEnLCAnYXItc2EnLCAnYXItc2QnLCAnYXItc3knLCAnYXItdG4nLCAnYXIteWUnLCAnYXJjJywgJ2JjYycsICdicWknLCAnY2tiJywgJ2R2JywgJ2ZhJywgJ2dsaycsXG4gICAgJ2hlJywgJ2t1JywgJ216bicsICdwbmInLCAncHMnLCAnc2QnLCAndWcnLCAndXInLCAneWknXTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEkxOG5TZXJ2aWNlSW1wbCBleHRlbmRzIEFic3RyYWN0STE4blNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBzZWxlY3RlZExvY2FsZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGVmYXVsdFN1cHBvcnRlZExvY2FsZSA9ICdlbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBMb2NhbGU6IGFueTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZWZhYkxvY2FsZTogTWFwPFN0cmluZywgYW55PjtcbiAgICBwcml2YXRlIG1lc3NhZ2VzOiBhbnk7XG4gICAgcHJpdmF0ZSBfaXNBbmd1bGFyTG9jYWxlTG9hZGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBmb3JtYXRzQnlMb2NhbGUgPSB7J3RpbWV6b25lJzogJycsICdudW1iZXInOiAnJ307XG4gICAgcHJpdmF0ZSBnZXQgYXBwKCkgeyByZXR1cm4gdGhpcy5pbmouZ2V0KEFwcCkgfTtcblxuICAgIHByaXZhdGUgYnVuZGxlTG9hZGVkOntba2V5OnN0cmluZ10gOiBhbnl9ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSAkaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBic0xvY2FsZVNlcnZpY2U6IEJzTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBEZWZhdWx0czogQXBwRGVmYXVsdHMsXG4gICAgICAgIHByaXZhdGUgaW5qOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHt9O1xuICAgICAgICB0aGlzLnByZWZhYkxvY2FsZSA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsZURpcmVjdGlvbigpIHtcbiAgICAgICAgbGV0IGRpcmVjdGlvbjogJ2x0cicgfCAncnRsJyA9ICdsdHInO1xuICAgICAgICBpZiAoUlRMX0xBTkdVQUdFX0NPREVTLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRMb2NhbGUpKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSAncnRsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHNldENTUyhkb2N1bWVudC5ib2R5LCAnZGlyZWN0aW9uJywgZGlyZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXQoKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSB7fTtcblxuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcy5hcHBMb2NhbGUsIHRoaXMubWVzc2FnZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExvY2FsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVmYXVsdFN1cHBvcnRlZExvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcHBMb2NhbGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwTG9jYWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcmVmYWJMb2NhbGVCdW5kbGUocHJlZmFiTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLnByZWZhYkxvY2FsZS5oYXMocHJlZmFiTmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMucHJlZmFiTG9jYWxlLnNldChwcmVmYWJOYW1lLCBPYmplY3QuY3JlYXRlKHRoaXMuYXBwTG9jYWxlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZmFiTG9jYWxlLmdldChwcmVmYWJOYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dGVuZFByZWZhYk1lc3NhZ2VzKG1lc3NhZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFtZXNzYWdlcy5wcmVmYWJNZXNzYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMobWVzc2FnZXMucHJlZmFiTWVzc2FnZXMpLmZvckVhY2goKHByZWZhYk5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbGV0IGJ1bmRsZSA9IHRoaXMucHJlZmFiTG9jYWxlLmdldChwcmVmYWJOYW1lKTtcbiAgICAgICAgICAgIGlmICghYnVuZGxlKSB7XG4gICAgICAgICAgICAgICAgYnVuZGxlID0gT2JqZWN0LmNyZWF0ZSh0aGlzLmFwcExvY2FsZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVmYWJMb2NhbGUuc2V0KHByZWZhYk5hbWUsIGJ1bmRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGJ1bmRsZSwgbWVzc2FnZXMucHJlZmFiTWVzc2FnZXNbcHJlZmFiTmFtZV0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dGVuZE1lc3NhZ2VzKG1lc3NhZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1lc3NhZ2VzLCBtZXNzYWdlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUmVzb3VyY2UocGF0aCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiRodHRwLmdldChwYXRoKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgZXJyb3IgbG9hZGluZyBsb2NhbGUgcmVzb3VyY2UgZnJvbSAke3BhdGh9YCk7XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQXBwTG9jYWxlQnVuZGxlKCkge1xuICAgICAgICB0aGlzLmxvYWRSZXNvdXJjZShgJHtBUFBfTE9DQUxFX1JPT1RfUEFUSH0vJHt0aGlzLnNlbGVjdGVkTG9jYWxlfS5qc29uYClcbiAgICAgICAgICAgIC50aGVuKGJ1bmRsZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbmRNZXNzYWdlcyhidW5kbGUubWVzc2FnZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5kUHJlZmFiTWVzc2FnZXMoYnVuZGxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcERlZmF1bHRzLnNldEZvcm1hdHMoYnVuZGxlLmZvcm1hdHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFwcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZE1vbWVudExvY2FsZUJ1bmRsZShtb21lbnRMb2NhbGUpIHtcbiAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdGggPSBfY2RuVXJsICsgYGxvY2FsZXMvbW9tZW50LyR7bW9tZW50TG9jYWxlfS5qc2A7XG4gICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLnNlbGVjdGVkTG9jYWxlKTtcblxuICAgICAgICAgICAgLy8gRm9yIG5neCBib290c3RyYXAgbG9jYWxlLCBnZXQgdGhlIGNvbmZpZyBmcm9tIHNjcmlwdCBhbmQgYXBwbHkgbG9jYWxlXG4gICAgICAgICAgICAvLyBtb21lbnQubG9jYWxlRGF0YShtb21lbnRMb2NhbGUpIHdpbGwgcmV0dXJuIG1vbWVudCBsb2NhbGUgaW5zdGFuY2UuIF9jb25maWcgaW5zaWRlIHdpbGwgaGF2ZSBhY3R1YWwgY29uZmlnXG4gICAgICAgICAgICBsZXQgX2NvbmZpZyA9IG1vbWVudC5sb2NhbGVEYXRhKG1vbWVudExvY2FsZSk7XG4gICAgICAgICAgICBfY29uZmlnID0gX2NvbmZpZyAmJiBfY29uZmlnLl9jb25maWc7XG4gICAgICAgICAgICBkZWZpbmVMb2NhbGUodGhpcy5zZWxlY3RlZExvY2FsZSwgX2NvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UodGhpcy5nZXRTZWxlY3RlZExvY2FsZSgpIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMb2NhbGVDaGFuZ2VkKCk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRBbmd1bGFyTG9jYWxlQnVuZGxlKGFuZ0xvY2FsZSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfY2RuVXJsID0gX1dNX0FQUF9QUk9KRUNULmNkblVybCB8fCBfV01fQVBQX1BST0pFQ1QubmdEZXN0O1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgPT09IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL2FuZ3VsYXIvZ2xvYmFsLyR7YW5nTG9jYWxlfS5qc2A7XG5cbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSwgcmVzb2x2ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ2FsZW5kYXJMb2NhbGVCdW5kbGUoY2FsZW5kYXJMb2NhbGUsIGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgX2NkblVybCA9IF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgfHwgX1dNX0FQUF9QUk9KRUNULm5nRGVzdDtcbiAgICAgICAgbGV0IHBhdGg6IHN0cmluZztcbiAgICAgICAgaWYgKGNhbGVuZGFyTG9jYWxlKSB7XG4gICAgICAgICAgICBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL2Z1bGxjYWxlbmRhci8ke2NhbGVuZGFyTG9jYWxlfS5qc2A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXR1cm4gaW4gY2FzZSBvZiBtb2JpbGUgYXBwIG9yIGlmIHNlbGVjdGVkIGxvY2FsZSBpcyBkZWZhdWx0IHN1cHBvcnRlZCBsb2NhbGUuXG4gICAgICAgIGlmICghZm9yY2UgJiYgKGlzTW9iaWxlKCkgfHwgaXNNb2JpbGVBcHAoKSB8fCB0aGlzLnNlbGVjdGVkTG9jYWxlID09PSB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGUpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FsbCB0aGUgc2NyaXB0LiBJbiBzY3JpcHQsIG1vbWVudCBkZWZpbmVzIHRoZSBsb2FkZWQgbG9jYWxlXG4gICAgICAgIHJldHVybiBsb2FkU2NyaXB0cyhbcGF0aF0sIHRydWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9jZG5VcmwgPSBfV01fQVBQX1BST0pFQ1QuY2RuVXJsIHx8IF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3Q7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gX2NkblVybCArIGBsb2NhbGVzL21vbWVudC10aW1lem9uZS9tb21lbnQtdGltZXpvbmUtd2l0aC1kYXRhLmpzYDtcbiAgICAgICAgICAgIGxvYWRTY3JpcHRzKFtwYXRoXSwgdHJ1ZSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGxvY2FsZSBpcyBwcm92aWRlZCBpbiB0aGUgZm9ybSBvZiBvZmZzZXQgYW5kIG5vdCB0aW1lem9uZSBuYW1lLCBkZWR1Y2UgdGhlIG5hbWUuXG4gICAgICAgICAgICAgICAgICogSWYgbG9jYWxlIGlzIHByb3ZpZGVkIGFzIEdNVCs5LCBuYW1lIHdpbGwgYmUgZGVkdWNlZCBhcyBBc2lhL1Rva3lvXG4gICAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgICBsZXQgbG9jYWxlT2JqID0gbG9jYWxlO1xuICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZU9ialsndGltZXpvbmUnXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVJbmRleCA9IGxvY2FsZS5pbmRleE9mKCcrJyk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlLnN1YnN0cihsb2NhbGVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlT2JqWyd0aW1lem9uZSddID0gZmluZChtb21lbnQudHoubmFtZXMoKSwgKHRpbWV6b25lTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZSA9PT0gbW9tZW50LnR6KHRpbWV6b25lTmFtZSkuZm9ybWF0KCdaJyk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb21lbnQudHouc2V0RGVmYXVsdChsb2NhbGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsZURhdGEgPSAgY29tcEluc3RhbmNlICYmIGNvbXBJbnN0YW5jZS5mb3JtYXRzQnlMb2NhbGUgPyBjb21wSW5zdGFuY2UuZm9ybWF0c0J5TG9jYWxlIDogdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihsb2NhbGVEYXRhLCBsb2NhbGVPYmopO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sIHJlc29sdmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9hZExvY2FsZUJ1bmRsZXMobGliTG9jYWxlKSB7XG4gICAgICAgIGlmIChsaWJMb2NhbGUubW9tZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRNb21lbnRMb2NhbGVCdW5kbGUobGliTG9jYWxlLm1vbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZExvY2FsZSA9PT0gdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlKSB7XG4gICAgICAgICAgICB0aGlzLmJzTG9jYWxlU2VydmljZS51c2UodGhpcy5nZXRTZWxlY3RlZExvY2FsZSgpIHx8IHRoaXMuZGVmYXVsdFN1cHBvcnRlZExvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5tb21lbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaWJMb2NhbGUuZnVsbENhbGVuZGFyICYmIHdpbmRvd1snRnVsbENhbGVuZGFyJ10pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENhbGVuZGFyTG9jYWxlQnVuZGxlKGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIpPy50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaWJMb2NhbGUuYW5ndWxhcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkQXBwTG9jYWxlQnVuZGxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFuZ3VsYXJMb2NhbGVCdW5kbGUobGliTG9jYWxlLmFuZ3VsYXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUaW1lem9uZShsb2NhbGUsIGNvbXBJbnN0YW5jZT8pIHtcbiAgICAgICAgdGhpcy5sb2FkTW9tZW50VGltZVpvbmVCdW5kbGUobG9jYWxlLCBjb21wSW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaW1lem9uZShjb21wSW5zdGFuY2U/KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VDb25maWcgPSBnZXQodGhpcy5hcHAsICdhY3RpdmVQYWdlLmZvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBjb25zdCBjb21wQ29uZmlnID0gZ2V0KGNvbXBJbnN0YW5jZSwgJ2Zvcm1hdHNCeUxvY2FsZS50aW1lem9uZScpO1xuICAgICAgICBpZiAoY29tcENvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBDb25maWc7XG4gICAgICAgIH0gZWxzZSBpZiAocGFnZUNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIHBhZ2VDb25maWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGVbJ3RpbWV6b25lJ107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm9ybWF0c0J5TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRzQnlMb2NhbGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlbGVjdGVkTG9jYWxlKGxvY2FsZSkge1xuXG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBldmVudCBpcyBwcm9wYWdhdGVkIGZyb20gdGhlIHNlbGVjdCBvciBhbnkgc3VjaCB3aWRnZXRcbiAgICAgICAgaWYgKGlzT2JqZWN0KGxvY2FsZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZS5kYXRhdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsaWJMb2NhbGUgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzW2xvY2FsZV07XG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IE9iamVjdC5rZXlzKGdldFdtUHJvamVjdFByb3BlcnRpZXMoKS5zdXBwb3J0ZWRMYW5ndWFnZXMpO1xuXG4gICAgICAgIGlmICghaW5jbHVkZXMoc3VwcG9ydGVkTG9jYWxlLCBsb2NhbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IHRoaXMuc2VsZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnLCBsb2NhbGUpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhbGUgPSBsb2NhbGU7XG5cbiAgICAgICAgLy8gcmVzZXQgdGhlIGxvY2FsZURhdGEgb2JqZWN0XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQuYXBwID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVuZGxlTG9hZGVkLmFuZ3VsYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idW5kbGVMb2FkZWQubGliTG9jYWxlID0gbGliTG9jYWxlO1xuXG4gICAgICAgIC8vIGxvYWQgdGhlIGxvY2FsZSBidW5kbGVzIG9mIHRoZSBzZWxlY3RlZCBsb2NhbGVcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZExvY2FsZUJ1bmRsZXMobGliTG9jYWxlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxlRGlyZWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmJ1bmRsZUxvYWRlZC5hbmd1bGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TG9jYWxlQ2hhbmdlZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZHVjZUFwcExvY2FsZSgpIHtcbiAgICAgICAgLy8gY29tcHV0YXRpb24gdG8gZmluZCBhcHAgZGVmYXVsdCBsb2NhbGVcbiAgICAgICAgY29uc3QgX2FjY2VwdExhbmcgPSB0aGlzLmdldEFjY2VwdGVkTGFuZ3VhZ2VzKCk7XG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZ3VhZ2UgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuZGVmYXVsdExhbmd1YWdlO1xuICAgICAgICBfYWNjZXB0TGFuZy5wdXNoKF9kZWZhdWx0TGFuZ3VhZ2UpO1xuXG4gICAgICAgIC8vIGNoZWNrcyB3aGV0aGVyIHVzZXIgcHJlZmVyZW5jZSBpcyBiYXNlZCBvbiBicm93c2VyIHNldCBsYW5ndWFnZXMgb3IgZGVmYXVsdCBsYW5ndWFnZSBzZXQgaW4gcHJvamVjdFxuICAgICAgICBsZXQgcHJlZmVyQnJvd3NlckxhbmcgPSBnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkucHJlZmVyQnJvd3Nlckxhbmc7XG4gICAgICAgIGlmICghcHJlZmVyQnJvd3NlckxhbmcpIHsgLy8gd2hlbiBwcmVmZXJCcm93c2VyTGFuZyBpcyBub3QgZGVmaW5lZCwgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlXG4gICAgICAgICAgICBwcmVmZXJCcm93c2VyTGFuZyAgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgeyAvLyBjb252ZXJ0IHN0cmluZ2lmaWVkIGJvb2xlYW4gdmFsdWVzIHJlY2lldmVkIGZyb20gQkUgdG8gYm9vbGVhbnNcbiAgICAgICAgICAgIHByZWZlckJyb3dzZXJMYW5nPSAocHJlZmVyQnJvd3NlckxhbmcgPT09ICd0cnVlJyB8fCBwcmVmZXJCcm93c2VyTGFuZyA9PT0gdHJ1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgX3N1cHBvcnRlZExhbmcgPSBPYmplY3Qua2V5cyhnZXRXbVByb2plY3RQcm9wZXJ0aWVzKCkuc3VwcG9ydGVkTGFuZ3VhZ2VzKSB8fCBbdGhpcy5kZWZhdWx0U3VwcG9ydGVkTG9jYWxlXTtcblxuICAgICAgICAvLyB3aGVuIHByZWZlcmVuY2UgaXMgZ2l2ZW4gdG8gYnJvd3NlciBzZXQgbGFuZ3VhZ2VzLCBkbyBub3QgcG9wdWxhdGUgX3NlbGVjdGVkRGVmYXVsdExhbmcgdmFyaWFibGVcbiAgICAgICAgbGV0IF9zZWxlY3RlZERlZmF1bHRMYW5nID0gcHJlZmVyQnJvd3NlckxhbmcgPyB1bmRlZmluZWQgOiBfZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgICAgIGxldCBfYXBwU3VwcG9ydGVkTGFuZztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGZvciBjb3Jkb3ZhLCBjaGVjayBmb3IgbGFuZ3VhZ2UgaWdub3JpbmcgdGhlIGxvY2FsZVxuICAgICAgICAgKiBBcyB0aGUgbmF2aWdhdG9yLmxhbmd1YWdlcyBhbHdheXMgcmV0dXJucyB0aGUgbGFuZ3VhZ2Ugd2l0aCBsb2NhbGUgKGVuLXVzKVxuICAgICAgICAgKiBUaGUgc3VwcG9ydGVkTGFuZ3VhZ2VzIGZyb20gQkUgZG9lc24ndCBpbmNsdWRlIGxvY2FsZSAoZW4pIHdoaWNoIGxlYWRzIHRvIG1pc21hdGNoXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoQ09OU1RBTlRTLmhhc0NvcmRvdmEpIHtcbiAgICAgICAgICAgIGxldCBzdXBwb3J0ZWRMYW5nID0gW107XG4gICAgICAgICAgICBmb3JFYWNoKF9hY2NlcHRMYW5nLCBmdW5jdGlvbiAobGFuZykge1xuICAgICAgICAgICAgICAgIGxldCBtYXRjaGVkTGFuZyA9IGZpbmQoX3N1cHBvcnRlZExhbmcsICh2YWwpID0+IGxhbmcgPT09IHZhbCkgfHwgZmluZChfc3VwcG9ydGVkTGFuZywgKHZhbCkgPT4gbGFuZy5zdGFydHNXaXRoKHZhbCkpO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVkTGFuZykge1xuICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5nLnB1c2gobWF0Y2hlZExhbmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgX2FwcFN1cHBvcnRlZExhbmcgPSBzdXBwb3J0ZWRMYW5nWzBdO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNoZWNrIGZvciB0aGUgc2Vzc2lvbiBzdG9yYWdlIHRvIGxvYWQgYW55IHByZS1yZXF1ZXN0ZWQgbG9jYWxlXG4gICAgICAgIGNvbnN0IF9kZWZhdWx0TGFuZyA9IGdldFNlc3Npb25TdG9yYWdlSXRlbSgnc2VsZWN0ZWRMb2NhbGUnKSB8fCBfc2VsZWN0ZWREZWZhdWx0TGFuZyB8fCBfYXBwU3VwcG9ydGVkTGFuZyB8fCBpbnRlcnNlY3Rpb24oX2FjY2VwdExhbmcsIF9zdXBwb3J0ZWRMYW5nKVswXSB8fCB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRMb2NhbGU7XG4gICAgICAgIC8vIGlmIHRoZSBzdXBwb3J0ZWRMb2NhbGUgaXMgbm90IGF2YWlsYWJsZSBzZXQgaXQgdG8gZGVmYXVsdExvY2FsZVxuICAgICAgICBfc3VwcG9ydGVkTGFuZyA9IF9zdXBwb3J0ZWRMYW5nIHx8IFtfZGVmYXVsdExhbmddO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IF9kZWZhdWx0TGFuZyB8fCBfc3VwcG9ydGVkTGFuZ1swXTtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZERlZmF1bHRMb2NhbGUoKSB7XG4gICAgICAgIERhdGUucHJvdG90eXBlW1wibW9udGhcIl0gPSBEYXRlLnByb3RvdHlwZS5nZXRNb250aDtcbiAgICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5kZWR1Y2VBcHBMb2NhbGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2VsZWN0ZWRMb2NhbGUobG9jYWxlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9jYWxpemVkTWVzc2FnZShtZXNzYWdlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlKHRoaXMuYXBwTG9jYWxlW21lc3NhZ2VdLCBhcmdzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjY2VwdGVkIGxhbmd1YWdlcyBsaXN0XG4gICAgcHVibGljIGdldEFjY2VwdGVkTGFuZ3VhZ2VzKCkge1xuICAgICAgICBsZXQgbGFuZ3VhZ2VzO1xuICAgICAgICBpZiAoQ09OU1RBTlRTLmhhc0NvcmRvdmEpIHtcbiAgICAgICAgICAgIGxhbmd1YWdlcyA9IG5hdmlnYXRvci5sYW5ndWFnZXMgfHwgW25hdmlnYXRvci5sYW5ndWFnZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYW5ndWFnZXMgPSBkZWNvZGVVUklDb21wb25lbnQoZ2V0V21Qcm9qZWN0UHJvcGVydGllcygpLnByZWZlcnJlZExhbmd1YWdlIHx8ICcnKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWNjZXB0LUxhbmd1YWdlIEhlYWRlciB3aWxsIGNvbnRhaW4gc2V0IG9mIHN1cHBvcnRlZCBsb2NhbGUsIHNvIHRyeSBzcGxpdHRpbmcgdGhlIHN0cmluZyB0byBwcm9wZXIgbG9jYWxlIHNldFxuICAgICAgICAgICAgICogRXg6IGVuLGVuLVVTO3E9MC45LGRlO3E9MC42LGFyO3E9MC4yLGhpXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogU3BsaXQgdGhlIGFib3ZlIGludG8gW2VuLGVuLXVzLGRlLGFyLGhpXVxuICAgICAgICAgICAgICogQHR5cGUge0FycmF5fVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsYW5ndWFnZXMgPSBsYW5ndWFnZXMuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24obG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5zcGxpdCgnOycpWzBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcChsYW5ndWFnZXMsIHRvTG93ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0Q2FsZW5kYXJMb2NhbGUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMb2NhbGUgIT09ICdlbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRDYWxlbmRhckxvY2FsZUJ1bmRsZSh0aGlzLnNlbGVjdGVkTG9jYWxlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQW5ndWxhckxvY2FsZUxvYWRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQW5ndWxhckxvY2FsZUxvYWRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0d2lkZ2V0TG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB0aGlzLmZvcm1hdHNCeUxvY2FsZVsnbnVtYmVyJ10gPSBsb2NhbGVbJ251bWJlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXR3aWRnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHNCeUxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUxvY2FsZUNoYW5nZWQoKSB7XG4gICAgICAgIGlmKHRoaXMuYnVuZGxlTG9hZGVkLm1vbWVudCAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5mdWxsQ2FsZW5kYXIgJiYgdGhpcy5idW5kbGVMb2FkZWQuYW5ndWxhciAmJiB0aGlzLmJ1bmRsZUxvYWRlZC5hcHApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSggICdsb2NhbGUtY2hhbmdlZCcsIHRoaXMuYnVuZGxlTG9hZGVkLmxpYkxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
|
@@ -3206,7 +3206,7 @@ class I18nServiceImpl extends AbstractI18nService {
|
|
3206
3206
|
return locale === moment.tz(timezoneName).format('Z');
|
3207
3207
|
});
|
3208
3208
|
}
|
3209
|
-
|
3209
|
+
moment.tz.setDefault(locale);
|
3210
3210
|
const localeData = compInstance && compInstance.formatsByLocale ? compInstance.formatsByLocale : this.formatsByLocale;
|
3211
3211
|
Object.assign(localeData, localeObj);
|
3212
3212
|
resolve();
|
@@ -4178,6 +4178,7 @@ class AppComponent {
|
|
4178
4178
|
};
|
4179
4179
|
}
|
4180
4180
|
ngAfterViewInit() {
|
4181
|
+
document.documentElement.setAttribute('lang', getWmProjectProperties().defaultLanguage);
|
4181
4182
|
if (hasCordova() && !window['wmDeviceReady']) {
|
4182
4183
|
document.addEventListener('wmDeviceReady', () => this.start());
|
4183
4184
|
}
|
@@ -4213,7 +4214,7 @@ class AppComponent {
|
|
4213
4214
|
type: ViewChild,
|
4214
4215
|
args: ['dynamicComponent', { read: ViewContainerRef }]
|
4215
4216
|
}] }); })();
|
4216
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber:
|
4217
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AppComponent, { className: "AppComponent", filePath: "components/app-component/app.component.ts", lineNumber: 46 }); })();
|
4217
4218
|
|
4218
4219
|
/**
|
4219
4220
|
* This Interceptor intercepts all network calls and if a network call fails
|
@@ -4460,15 +4461,16 @@ class DynamicComponentRefProviderService {
|
|
4460
4461
|
here component is pagewrapper so adding custom implementation for route change
|
4461
4462
|
*/
|
4462
4463
|
class CanDeactivatePageGuard {
|
4463
|
-
canDeactivate(component) {
|
4464
|
+
canDeactivate(component, currentRoute, currentState, nextState) {
|
4464
4465
|
function invokeCompDeactivate() {
|
4465
4466
|
let retVal;
|
4467
|
+
const nextRoute = nextState ? nextState.url : undefined;
|
4466
4468
|
// Calling onBeforePageLeave method present at page level
|
4467
|
-
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave();
|
4469
|
+
retVal = this.app.activePage && this.app.activePage.onBeforePageLeave(nextRoute);
|
4468
4470
|
// Calling onBeforePageLeave method present at app level only if page level method return true
|
4469
4471
|
// or if there is no page level method
|
4470
4472
|
if (retVal !== false) {
|
4471
|
-
retVal = (this.app.onBeforePageLeave || noop$1)(this.app.activePageName, this.app.activePage);
|
4473
|
+
retVal = (this.app.onBeforePageLeave || noop$1)(this.app.activePageName, this.app.activePage, nextRoute);
|
4472
4474
|
}
|
4473
4475
|
return retVal === undefined ? true : retVal;
|
4474
4476
|
}
|