@alauda/ui 6.5.9-beta.21 → 6.5.9-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-item/accordion-item.component.d.ts +3 -3
- package/accordion/accordion.component.d.ts +1 -1
- package/anchor/anchor.component.d.ts +2 -2
- package/anchor/anchor.directive.d.ts +3 -3
- package/autocomplete/autocomplete-placeholder.component.d.ts +1 -1
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/autocomplete/autocomplete.directive.d.ts +2 -2
- package/autocomplete/autocomplete.types.d.ts +1 -1
- package/autocomplete/helper-directives.d.ts +1 -1
- package/autocomplete/suggestion/suggestion.component.d.ts +1 -1
- package/autocomplete/suggestion-group/suggestion-group.component.d.ts +1 -1
- package/back-top/back-top.component.d.ts +2 -2
- package/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/button/button-group/button-group.component.d.ts +1 -1
- package/button/button.component.d.ts +1 -1
- package/button/button.types.d.ts +1 -10
- package/card/card.component.d.ts +1 -1
- package/card/helper-directives.d.ts +3 -6
- package/card/section.component.d.ts +1 -1
- package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
- package/checkbox/checkbox.component.d.ts +1 -1
- package/color-picker/color-picker.component.d.ts +1 -1
- package/date-picker/calendar/date-picker-panel/component.d.ts +1 -1
- package/date-picker/calendar/footer/component.d.ts +1 -1
- package/date-picker/calendar/header/component.d.ts +1 -1
- package/date-picker/calendar/panel/picker-panel.d.ts +1 -1
- package/date-picker/calendar/range-picker-panel/component.d.ts +1 -1
- package/date-picker/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-picker.type.d.ts +2 -2
- package/date-picker/range-picker/range-picker.component.d.ts +1 -1
- package/date-picker/trigger/trigger.component.d.ts +1 -1
- package/dialog/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-close.directive.d.ts +1 -1
- package/dialog/dialog-content/dialog-content.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-footer.component.d.ts +1 -1
- package/dialog/dialog-content/dialog-header.component.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/dialog/dialog.types.d.ts +3 -3
- package/drawer/component/drawer.component.d.ts +1 -1
- package/drawer/component/helper-directives.d.ts +3 -3
- package/dropdown/dropdown-active.directive.d.ts +1 -1
- package/dropdown/dropdown-button/dropdown-button.component.d.ts +1 -1
- package/dropdown/dropdown.directive.d.ts +1 -1
- package/dropdown/dropdown.types.d.ts +1 -1
- package/dropdown/helper-directives.d.ts +1 -1
- package/dropdown/menu/menu-content.directive.d.ts +1 -1
- package/dropdown/menu/menu.component.d.ts +1 -1
- package/dropdown/menu-group/menu-group.component.d.ts +1 -1
- package/dropdown/menu-item/menu-item.component.d.ts +1 -1
- package/dropdown/submenu/submenu.component.d.ts +1 -1
- package/esm2020/accordion/accordion-item/accordion-item.component.mjs +12 -14
- package/esm2020/accordion/accordion.component.mjs +4 -4
- package/esm2020/accordion/accordion.module.mjs +5 -5
- package/esm2020/alauda-ui.mjs +1 -4
- package/esm2020/anchor/anchor.component.mjs +15 -16
- package/esm2020/anchor/anchor.directive.mjs +27 -27
- package/esm2020/anchor/anchor.module.mjs +5 -6
- package/esm2020/autocomplete/autocomplete-placeholder.component.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2020/autocomplete/autocomplete.directive.mjs +27 -28
- package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
- package/esm2020/autocomplete/helper-directives.mjs +3 -3
- package/esm2020/autocomplete/suggestion/suggestion.component.mjs +17 -17
- package/esm2020/autocomplete/suggestion-group/suggestion-group.component.mjs +3 -3
- package/esm2020/back-top/back-top.component.mjs +15 -17
- package/esm2020/back-top/back-top.module.mjs +5 -5
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +11 -11
- package/esm2020/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/breadcrumb/breadcrumb.module.mjs +5 -5
- package/esm2020/button/button-group/button-group.component.mjs +3 -3
- package/esm2020/button/button.component.mjs +21 -22
- package/esm2020/button/button.module.mjs +5 -5
- package/esm2020/button/button.types.mjs +1 -10
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +5 -5
- package/esm2020/card/helper-directives.mjs +10 -13
- package/esm2020/card/section.component.mjs +3 -3
- package/esm2020/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2020/checkbox/checkbox.component.mjs +20 -20
- package/esm2020/checkbox/checkbox.module.mjs +5 -5
- package/esm2020/color-picker/color-picker.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.module.mjs +5 -5
- package/esm2020/date-picker/calendar/constant.mjs +1 -2
- package/esm2020/date-picker/calendar/date-picker-panel/component.mjs +10 -10
- package/esm2020/date-picker/calendar/footer/component.mjs +5 -5
- package/esm2020/date-picker/calendar/header/component.mjs +7 -11
- package/esm2020/date-picker/calendar/panel/picker-panel.mjs +20 -24
- package/esm2020/date-picker/calendar/range-picker-panel/component.mjs +11 -13
- package/esm2020/date-picker/calendar/util.mjs +1 -2
- package/esm2020/date-picker/date-picker/date-picker.component.mjs +8 -8
- package/esm2020/date-picker/date-picker.module.mjs +13 -15
- package/esm2020/date-picker/range-picker/range-picker.component.mjs +8 -8
- package/esm2020/date-picker/trigger/trigger.component.mjs +18 -18
- package/esm2020/dialog/confirm-dialog/confirm-dialog.component.mjs +6 -6
- package/esm2020/dialog/dialog-animations.mjs +1 -2
- package/esm2020/dialog/dialog-content/dialog-close.directive.mjs +3 -3
- package/esm2020/dialog/dialog-content/dialog-content.component.mjs +4 -5
- package/esm2020/dialog/dialog-content/dialog-footer.component.mjs +3 -3
- package/esm2020/dialog/dialog-content/dialog-header.component.mjs +5 -5
- package/esm2020/dialog/dialog.component.mjs +12 -13
- package/esm2020/dialog/dialog.module.mjs +9 -12
- package/esm2020/dialog/dialog.service.mjs +4 -5
- package/esm2020/drawer/component/drawer.component.mjs +27 -30
- package/esm2020/drawer/component/helper-directives.mjs +10 -14
- package/esm2020/drawer/drawer.module.mjs +5 -6
- package/esm2020/drawer/drawer.service.mjs +3 -3
- package/esm2020/dropdown/dropdown-active.directive.mjs +3 -3
- package/esm2020/dropdown/dropdown-button/dropdown-button.component.mjs +5 -5
- package/esm2020/dropdown/dropdown.directive.mjs +13 -13
- package/esm2020/dropdown/dropdown.module.mjs +5 -5
- package/esm2020/dropdown/helper-directives.mjs +3 -3
- package/esm2020/dropdown/menu/menu-content.directive.mjs +3 -3
- package/esm2020/dropdown/menu/menu.component.mjs +3 -3
- package/esm2020/dropdown/menu-group/menu-group.component.mjs +3 -3
- package/esm2020/dropdown/menu-item/menu-item.component.mjs +3 -3
- package/esm2020/dropdown/submenu/submenu.component.mjs +7 -7
- package/esm2020/form/common-form.mjs +15 -22
- package/esm2020/form/form-item/form-item.component.mjs +9 -9
- package/esm2020/form/form.directive.mjs +17 -17
- package/esm2020/form/form.module.mjs +5 -5
- package/esm2020/form/helper-directives.mjs +15 -15
- package/esm2020/i18n/i18n.module.mjs +4 -4
- package/esm2020/i18n/i18n.pipe.mjs +3 -3
- package/esm2020/i18n/i18n.service.mjs +3 -3
- package/esm2020/icon/icon-register.service.mjs +4 -5
- package/esm2020/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +5 -5
- package/esm2020/inline-alert/helper-directives.mjs +3 -3
- package/esm2020/inline-alert/inline-alert.component.mjs +5 -5
- package/esm2020/inline-alert/inline-alert.module.mjs +5 -5
- package/esm2020/input/autosize.directive.mjs +11 -16
- package/esm2020/input/helper-directives.mjs +12 -12
- package/esm2020/input/input-group/input-group.component.mjs +3 -3
- package/esm2020/input/input.component.mjs +14 -18
- package/esm2020/input/input.module.mjs +10 -12
- package/esm2020/input/number-input/number-input.component.mjs +6 -6
- package/esm2020/input/search/search.component.mjs +8 -8
- package/esm2020/input/tags-input/tags-input.component.mjs +27 -32
- package/esm2020/message/message-wrapper.component.mjs +3 -3
- package/esm2020/message/message.component.mjs +8 -8
- package/esm2020/message/message.config.mjs +1 -6
- package/esm2020/message/message.module.mjs +5 -6
- package/esm2020/message/message.service.mjs +3 -3
- package/esm2020/notification/notification-wrapper.component.mjs +3 -3
- package/esm2020/notification/notification.component.mjs +8 -12
- package/esm2020/notification/notification.module.mjs +5 -6
- package/esm2020/notification/notification.service.mjs +3 -3
- package/esm2020/paginator/paginator-intl.mjs +4 -15
- package/esm2020/paginator/paginator.component.mjs +24 -32
- package/esm2020/paginator/paginator.module.mjs +5 -5
- package/esm2020/radio/base-radio.mjs +11 -11
- package/esm2020/radio/radio-button/radio-button.component.mjs +9 -10
- package/esm2020/radio/radio-group/radio-group.component.mjs +4 -7
- package/esm2020/radio/radio.component.mjs +7 -8
- package/esm2020/radio/radio.module.mjs +5 -5
- package/esm2020/scrolling/fixed-size-table-virtual-scroll-strategy.mjs +4 -6
- package/esm2020/scrolling/fixed-size-table-virtual-scroll.directive.mjs +4 -6
- package/esm2020/scrolling/fixed-size-virtual-scroll.directive.mjs +4 -5
- package/esm2020/scrolling/scrolling.module.mjs +4 -4
- package/esm2020/scrolling/virtual-for-of.directive.mjs +3 -3
- package/esm2020/scrolling/virtual-scroll-viewport.component.mjs +3 -3
- package/esm2020/select/base-select.mjs +5 -8
- package/esm2020/select/helper-directives.mjs +6 -6
- package/esm2020/select/multi-select/multi-select.component.mjs +28 -31
- package/esm2020/select/option/option.component.mjs +34 -34
- package/esm2020/select/option-group/option-group.component.mjs +3 -3
- package/esm2020/select/option-placeholder.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +11 -12
- package/esm2020/select/select.module.mjs +10 -12
- package/esm2020/select/validators.mjs +9 -13
- package/esm2020/shared/click-outside.directive.mjs +8 -8
- package/esm2020/shared/shared.module.mjs +4 -4
- package/esm2020/sort/sort-errors.mjs +1 -5
- package/esm2020/sort/sort-header.component.mjs +4 -8
- package/esm2020/sort/sort.directive.mjs +4 -5
- package/esm2020/sort/sort.module.mjs +5 -5
- package/esm2020/status-bar/status-bar.component.mjs +3 -3
- package/esm2020/status-bar/status-bar.module.mjs +5 -5
- package/esm2020/steps/steps.component.mjs +6 -10
- package/esm2020/steps/steps.module.mjs +5 -5
- package/esm2020/switch/switch.component.mjs +5 -5
- package/esm2020/switch/switch.module.mjs +5 -5
- package/esm2020/table/table-cell-def.directive.mjs +4 -8
- package/esm2020/table/table-cell.component.mjs +9 -9
- package/esm2020/table/table-cell.directive.mjs +4 -6
- package/esm2020/table/table-column-def.directive.mjs +4 -10
- package/esm2020/table/table-header-cell-def.directive.mjs +4 -8
- package/esm2020/table/table-header-cell.directive.mjs +4 -6
- package/esm2020/table/table-header-row-def.directive.mjs +4 -8
- package/esm2020/table/table-header-row.component.mjs +4 -5
- package/esm2020/table/table-placeholder.directive.mjs +6 -6
- package/esm2020/table/table-row-def.directive.mjs +4 -9
- package/esm2020/table/table-row.component.mjs +4 -5
- package/esm2020/table/table-scroll.directive.mjs +14 -15
- package/esm2020/table/table.component.mjs +6 -9
- package/esm2020/table/table.module.mjs +5 -5
- package/esm2020/table-of-contents/table-of-contents.module.mjs +5 -5
- package/esm2020/table-of-contents/toc-container.directive.mjs +14 -14
- package/esm2020/table-of-contents/toc-content.directive.mjs +3 -3
- package/esm2020/table-of-contents/toc-link.directive.mjs +7 -7
- package/esm2020/tabs/tab-body.component.mjs +25 -43
- package/esm2020/tabs/tab-context.service.mjs +10 -13
- package/esm2020/tabs/tab-group.component.mjs +28 -73
- package/esm2020/tabs/tab-header-active-indicator.component.mjs +4 -13
- package/esm2020/tabs/tab-header.component.mjs +28 -131
- package/esm2020/tabs/tab.component.mjs +13 -27
- package/esm2020/tabs/tabs.module.mjs +11 -13
- package/esm2020/tabs/tabs.types.mjs +1 -4
- package/esm2020/tag/check-tag/check-tag.component.mjs +3 -3
- package/esm2020/tag/tag.component.mjs +6 -7
- package/esm2020/tag/tag.module.mjs +5 -5
- package/esm2020/theme/theme.module.mjs +5 -5
- package/esm2020/theme/theme.pipe.mjs +12 -12
- package/esm2020/theme/theme.service.mjs +3 -3
- package/esm2020/time-picker/component.mjs +12 -12
- package/esm2020/time-picker/panel/panel.component.mjs +27 -29
- package/esm2020/time-picker/time-picker.module.mjs +14 -16
- package/esm2020/tooltip/base-tooltip.mjs +38 -42
- package/esm2020/tooltip/tooltip-active.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip-copy.directive.mjs +10 -10
- package/esm2020/tooltip/tooltip-intl.mjs +4 -10
- package/esm2020/tooltip/tooltip.component.mjs +5 -5
- package/esm2020/tooltip/tooltip.directive.mjs +3 -3
- package/esm2020/tooltip/tooltip.module.mjs +5 -6
- package/esm2020/tree-select/tree-node-placeholder.component.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +29 -30
- package/esm2020/tree-select/tree-select.module.mjs +5 -5
- package/esm2020/types.mjs +1 -4
- package/esm2020/utils/bem.mjs +1 -2
- package/esm2020/utils/coercion.mjs +1 -5
- package/fesm2015/alauda-ui.mjs +1559 -1952
- package/fesm2015/alauda-ui.mjs.map +1 -1
- package/fesm2020/alauda-ui.mjs +1559 -1953
- package/fesm2020/alauda-ui.mjs.map +1 -1
- package/form/common-form.d.ts +1 -8
- package/form/form-item/form-item.component.d.ts +1 -1
- package/form/form.directive.d.ts +1 -1
- package/form/form.types.d.ts +2 -2
- package/form/helper-directives.d.ts +5 -5
- package/i18n/i18n.pipe.d.ts +1 -1
- package/i18n/i18n.type.d.ts +1 -1
- package/icon/icon.component.d.ts +1 -1
- package/inline-alert/helper-directives.d.ts +1 -1
- package/inline-alert/inline-alert.component.d.ts +1 -1
- package/inline-alert/inline-alert.types.d.ts +1 -1
- package/input/autosize.directive.d.ts +1 -4
- package/input/helper-directives.d.ts +4 -4
- package/input/input-group/input-group.component.d.ts +1 -1
- package/input/input.component.d.ts +1 -4
- package/input/number-input/number-input.component.d.ts +1 -1
- package/input/search/search.component.d.ts +1 -1
- package/input/tags-input/tags-input.component.d.ts +4 -4
- package/message/message-wrapper.component.d.ts +1 -1
- package/message/message.component.d.ts +1 -1
- package/message/message.config.d.ts +0 -20
- package/notification/notification-wrapper.component.d.ts +1 -1
- package/notification/notification.component.d.ts +1 -5
- package/notification/notification.config.d.ts +1 -1
- package/package.json +9 -9
- package/paginator/paginator-intl.d.ts +0 -9
- package/paginator/paginator.component.d.ts +1 -15
- package/radio/base-radio.d.ts +1 -1
- package/radio/radio-button/radio-button.component.d.ts +1 -1
- package/radio/radio-group/radio-group.component.d.ts +1 -4
- package/radio/radio.component.d.ts +1 -1
- package/radio/radio.types.d.ts +1 -1
- package/scrolling/fixed-size-table-virtual-scroll.directive.d.ts +1 -1
- package/scrolling/fixed-size-virtual-scroll.directive.d.ts +1 -1
- package/scrolling/virtual-for-of.directive.d.ts +1 -1
- package/scrolling/virtual-scroll-viewport.component.d.ts +1 -1
- package/select/base-select.d.ts +1 -4
- package/select/helper-directives.d.ts +2 -2
- package/select/multi-select/multi-select.component.d.ts +1 -1
- package/select/option/option.component.d.ts +1 -1
- package/select/option-group/option-group.component.d.ts +1 -1
- package/select/option-placeholder.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/select/select.types.d.ts +3 -3
- package/select/validators.d.ts +1 -1
- package/shared/click-outside.directive.d.ts +1 -1
- package/sort/sort-errors.d.ts +0 -4
- package/sort/sort-header.component.d.ts +1 -1
- package/sort/sort.directive.d.ts +1 -1
- package/sort/sort.types.d.ts +2 -2
- package/status-bar/status-bar.component.d.ts +1 -1
- package/status-bar/status-bar.types.d.ts +2 -2
- package/steps/steps.component.d.ts +1 -4
- package/steps/types.d.ts +3 -6
- package/switch/switch.component.d.ts +1 -1
- package/table/table-cell-def.directive.d.ts +1 -5
- package/table/table-cell.component.d.ts +2 -2
- package/table/table-cell.directive.d.ts +1 -2
- package/table/table-column-def.directive.d.ts +1 -5
- package/table/table-header-cell-def.directive.d.ts +1 -5
- package/table/table-header-cell.directive.d.ts +1 -2
- package/table/table-header-row-def.directive.d.ts +1 -5
- package/table/table-header-row.component.d.ts +1 -2
- package/table/table-placeholder.directive.d.ts +2 -2
- package/table/table-row-def.directive.d.ts +1 -6
- package/table/table-row.component.d.ts +1 -2
- package/table/table-scroll.directive.d.ts +2 -2
- package/table/table.component.d.ts +1 -1
- package/table-of-contents/toc-container.directive.d.ts +1 -1
- package/table-of-contents/toc-content.directive.d.ts +1 -1
- package/table-of-contents/toc-link.directive.d.ts +1 -1
- package/tabs/tab-body.component.d.ts +7 -23
- package/tabs/tab-context.service.d.ts +0 -3
- package/tabs/tab-group.component.d.ts +1 -29
- package/tabs/tab-header-active-indicator.component.d.ts +1 -10
- package/tabs/tab-header.component.d.ts +2 -85
- package/tabs/tab.component.d.ts +1 -19
- package/tabs/tabs.types.d.ts +2 -5
- package/tag/check-tag/check-tag.component.d.ts +1 -1
- package/tag/tag.component.d.ts +1 -1
- package/tag/tag.types.d.ts +1 -1
- package/theme/theme.pipe.d.ts +4 -4
- package/theme/theme.types.d.ts +3 -3
- package/time-picker/component.d.ts +1 -1
- package/time-picker/panel/panel.component.d.ts +1 -1
- package/time-picker/time-picker.type.d.ts +1 -1
- package/tooltip/base-tooltip.d.ts +1 -1
- package/tooltip/tooltip-active.directive.d.ts +1 -1
- package/tooltip/tooltip-copy.directive.d.ts +1 -1
- package/tooltip/tooltip-intl.d.ts +0 -4
- package/tooltip/tooltip.component.d.ts +1 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/tree-select/tree-node-placeholder.component.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +2 -2
- package/tree-select/tree-select.types.d.ts +1 -1
- package/types.d.ts +2 -5
- package/utils/operators.d.ts +1 -1
- package/.changeset/README.md +0 -8
- package/alauda-ui.d.ts +0 -5
- package/src/accordion/README.md +0 -13
- package/src/anchor/README.md +0 -23
- package/src/dropdown/README.md +0 -57
- package/src/form/README.md +0 -32
- package/src/icon/README.md +0 -28
- package/src/inline-alert/README.md +0 -16
- package/src/input/number-input/README.md +0 -16
- package/src/select/README.md +0 -57
- package/src/sort/README.md +0 -13
- package/src/table/README.md +0 -8
- package/src/table-of-contents/README.md +0 -94
- package/src/tag/README.md +0 -32
- package/src/tree-select/README.md +0 -34
|
@@ -8,33 +8,12 @@ import { buildBem } from '../../utils';
|
|
|
8
8
|
import { CONTROL_ITEM_HEIGHT, HOUR_ITEMS, MINUTE_ITEMS, SECOND_ITEMS, } from '../constant';
|
|
9
9
|
import { TimePickerControlType } from '../time-picker.type';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "../../button/button.component";
|
|
13
13
|
import * as i3 from "../../i18n/i18n.pipe";
|
|
14
14
|
const TIME_PICKER_COLUMN_WIDTH = 80;
|
|
15
15
|
const bem = buildBem('aui-time-picker-panel');
|
|
16
16
|
export class TimePickerPanelComponent extends CommonFormControl {
|
|
17
|
-
constructor(cdr) {
|
|
18
|
-
super(cdr);
|
|
19
|
-
this.cdr = cdr;
|
|
20
|
-
this.hourStep = 1;
|
|
21
|
-
this.minuteStep = 1;
|
|
22
|
-
this.secondStep = 1;
|
|
23
|
-
this.confirm = new EventEmitter();
|
|
24
|
-
this.TimePickerControlType = TimePickerControlType;
|
|
25
|
-
this.HOUR_ITEM_CONFIG = HOUR_ITEMS;
|
|
26
|
-
this.MINUTE_ITEM_CONFIG = MINUTE_ITEMS;
|
|
27
|
-
this.SECOND_ITEM_CONFIG = SECOND_ITEMS;
|
|
28
|
-
this.CONTROL_ITEM_HEIGHT = CONTROL_ITEM_HEIGHT;
|
|
29
|
-
this.ComponentSize = ComponentSize;
|
|
30
|
-
this.bem = bem;
|
|
31
|
-
this.enabledColumns = 0;
|
|
32
|
-
// 用于控制初次滚动,是否展示滚动动画效果
|
|
33
|
-
this.firstScrolled = false;
|
|
34
|
-
this.model$.subscribe(_ => {
|
|
35
|
-
this.cdr.markForCheck();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
17
|
set format(value) {
|
|
39
18
|
if (value != null) {
|
|
40
19
|
this._format = value;
|
|
@@ -58,6 +37,26 @@ export class TimePickerPanelComponent extends CommonFormControl {
|
|
|
58
37
|
onMousedown() {
|
|
59
38
|
return false;
|
|
60
39
|
}
|
|
40
|
+
constructor(cdr) {
|
|
41
|
+
super(cdr);
|
|
42
|
+
this.cdr = cdr;
|
|
43
|
+
this.hourStep = 1;
|
|
44
|
+
this.minuteStep = 1;
|
|
45
|
+
this.secondStep = 1;
|
|
46
|
+
this.confirm = new EventEmitter();
|
|
47
|
+
this.TimePickerControlType = TimePickerControlType;
|
|
48
|
+
this.HOUR_ITEM_CONFIG = HOUR_ITEMS;
|
|
49
|
+
this.MINUTE_ITEM_CONFIG = MINUTE_ITEMS;
|
|
50
|
+
this.SECOND_ITEM_CONFIG = SECOND_ITEMS;
|
|
51
|
+
this.CONTROL_ITEM_HEIGHT = CONTROL_ITEM_HEIGHT;
|
|
52
|
+
this.ComponentSize = ComponentSize;
|
|
53
|
+
this.bem = bem;
|
|
54
|
+
this.enabledColumns = 0;
|
|
55
|
+
this.firstScrolled = false;
|
|
56
|
+
this.model$.subscribe(_ => {
|
|
57
|
+
this.cdr.markForCheck();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
61
60
|
isDisabled(value, type) {
|
|
62
61
|
const currentValue = this.model;
|
|
63
62
|
if (this.disabled) {
|
|
@@ -150,7 +149,6 @@ export class TimePickerPanelComponent extends CommonFormControl {
|
|
|
150
149
|
}
|
|
151
150
|
else {
|
|
152
151
|
const difference = targetOffset - currentTop;
|
|
153
|
-
// 每个tick滚动距离
|
|
154
152
|
const perTick = (difference / duration) * 10;
|
|
155
153
|
requestAnimationFrame(() => {
|
|
156
154
|
element.scrollTop = currentTop + perTick;
|
|
@@ -179,15 +177,15 @@ export class TimePickerPanelComponent extends CommonFormControl {
|
|
|
179
177
|
return content;
|
|
180
178
|
}
|
|
181
179
|
}
|
|
182
|
-
TimePickerPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
183
|
-
TimePickerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
180
|
+
TimePickerPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimePickerPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
TimePickerPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TimePickerPanelComponent, selector: "aui-time-picker-panel", inputs: { format: "format", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", footerTemplate: "footerTemplate", disableHours: "disableHours", disableMinutes: "disableMinutes", disableSeconds: "disableSeconds" }, outputs: { confirm: "confirm" }, host: { listeners: { "mousedown": "onMousedown()" } }, providers: [
|
|
184
182
|
{
|
|
185
183
|
provide: NG_VALUE_ACCESSOR,
|
|
186
184
|
useExisting: forwardRef(() => TimePickerPanelComponent),
|
|
187
185
|
multi: true,
|
|
188
186
|
},
|
|
189
|
-
], viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n", styles: [".aui-time-picker-panel{display:flex;flex-direction:column;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);overflow:hidden;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}:root .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-time-picker-panel ul,.aui-time-picker-panel li{border:none}.aui-time-picker-panel__content{display:flex;flex-direction:row;height:252px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:9px}.aui-time-picker-panel__column{flex:1;align-self:stretch;text-align:center;overflow:auto}.aui-time-picker-panel__column::-webkit-scrollbar{width:4px;height:4px}.aui-time-picker-panel__column::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-time-picker-panel__column::-webkit-scrollbar-corner{background-color:transparent}.aui-time-picker-panel__column ul{min-height:252px;list-style:none;padding:0;margin:0}.aui-time-picker-panel__column-strut{height:224px;width:1px;visibility:hidden}.aui-time-picker-panel__column+.aui-time-picker-panel__column{border-left:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__cell{flex:none;width:100%;height:28px;color:rgb(var(--aui-color-main-text));line-height:28px;cursor:pointer}.aui-time-picker-panel__cell:hover{background-color:rgb(var(--aui-color-p-6));color:rgb(var(--aui-color-primary))}.aui-time-picker-panel__cell.selected{background-color:rgb(var(--aui-color-p-7));color:rgb(var(--aui-color-primary));font-weight:var(--aui-font-weight-bold)}.aui-time-picker-panel__cell.disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"],
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
187
|
+
], viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"enabledColumns\"\n [class]=\"bem.block()\"\n [style.width.px]=\"totalWidth\"\n>\n <div [class]=\"bem.element('content')\">\n <div\n [class]=\"bem.element('column')\"\n #hourRef\n *ngIf=\"hourEnabled\"\n >\n <ul>\n <li\n *ngFor=\"let item of getControlTypeConfig(TimePickerControlType.Hour)\"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Hour),\n selected: matchValue(item, TimePickerControlType.Hour, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Hour)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #minuteRef\n *ngIf=\"minuteEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Minute);\n trackBy: trackBy\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Minute),\n selected: matchValue(item, TimePickerControlType.Minute, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Minute)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n <div\n [class]=\"bem.element('column')\"\n #secondRef\n *ngIf=\"secondEnabled\"\n >\n <ul>\n <li\n *ngFor=\"\n let item of getControlTypeConfig(TimePickerControlType.Second)\n \"\n [class]=\"bem.element('cell')\"\n [style.height.px]=\"CONTROL_ITEM_HEIGHT\"\n [ngClass]=\"{\n disabled: isDisabled(item, TimePickerControlType.Second),\n selected: matchValue(item, TimePickerControlType.Second, model)\n }\"\n (click)=\"selectValue(item, TimePickerControlType.Second)\"\n >\n {{ item | number: '2.0-0' }}\n </li>\n </ul>\n <div [class]=\"bem.element('column-strut')\"></div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!footerTemplate; else customFooter\">\n <div [class]=\"bem.element('footer')\">\n <button\n aui-button=\"inline\"\n (click)=\"selectNow()\"\n [size]=\"ComponentSize.Small\"\n >\n {{ 'now' | auiI18n }}\n </button>\n <button\n aui-button=\"primary\"\n [size]=\"ComponentSize.Small\"\n (click)=\"$event.stopImmediatePropagation(); confirm.next()\"\n >\n {{ 'confirm' | auiI18n }}\n </button>\n </div>\n </ng-container>\n <ng-template #customFooter>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: this }\"\n ></ng-container>\n </ng-template>\n</div>\n", styles: [".aui-time-picker-panel{display:flex;flex-direction:column;background-color:rgb(var(--aui-color-n-10));border-radius:var(--aui-border-radius-m);overflow:hidden;font-size:var(--aui-font-size-m);line-height:var(--aui-line-height-m);font-weight:var(--aui-font-weight-normal)}:root .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}html[aui-theme-mode=light] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.2)}@media (prefers-color-scheme: dark){html[aui-theme-mode=system] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}}html[aui-theme-mode=dark] .aui-time-picker-panel{box-shadow:0 2px 8px 0 rgba(var(--aui-color-origin-shadow),.75)}.aui-time-picker-panel ul,.aui-time-picker-panel li{border:none}.aui-time-picker-panel__content{display:flex;flex-direction:row;height:252px;border-bottom:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:9px}.aui-time-picker-panel__column{flex:1;align-self:stretch;text-align:center;overflow:auto}.aui-time-picker-panel__column::-webkit-scrollbar{width:4px;height:4px}.aui-time-picker-panel__column::-webkit-scrollbar-thumb{border-radius:2px;background-color:rgba(var(--aui-color-n-1),.2)}.aui-time-picker-panel__column::-webkit-scrollbar-corner{background-color:transparent}.aui-time-picker-panel__column ul{min-height:252px;list-style:none;padding:0;margin:0}.aui-time-picker-panel__column-strut{height:224px;width:1px;visibility:hidden}.aui-time-picker-panel__column+.aui-time-picker-panel__column{border-left:1px solid rgb(var(--aui-color-n-8))}.aui-time-picker-panel__cell{flex:none;width:100%;height:28px;color:rgb(var(--aui-color-main-text));line-height:28px;cursor:pointer}.aui-time-picker-panel__cell:hover{background-color:rgb(var(--aui-color-p-6));color:rgb(var(--aui-color-primary))}.aui-time-picker-panel__cell.selected{background-color:rgb(var(--aui-color-p-7));color:rgb(var(--aui-color-primary));font-weight:var(--aui-font-weight-bold)}.aui-time-picker-panel__cell.disabled{background-color:rgb(var(--aui-color-n-8));color:rgb(var(--aui-color-disabled-text));cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[aui-button]", inputs: ["aui-button", "size", "plain", "loading", "round", "square"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.I18nPipe, name: "auiI18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimePickerPanelComponent, decorators: [{
|
|
191
189
|
type: Component,
|
|
192
190
|
args: [{ selector: 'aui-time-picker-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
193
191
|
{
|
|
@@ -227,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
227
225
|
type: ViewChild,
|
|
228
226
|
args: ['secondRef', { static: false }]
|
|
229
227
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU1RCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQWdCOUMsTUFBTSxPQUFPLHdCQUNYLFNBQVEsaUJBQXdCO0lBb0ZoQyxZQUErQixHQUFzQjtRQUNuRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFEa0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsRHJE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QUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO1lBQ3ZELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiw0VkM5Q0gsd2pHQXFHQTsyRkRyRGEsd0JBQXdCO2tCQWRwQyxTQUFTOytCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBT0csTUFBTTtzQkFEVCxLQUFLO2dCQTBCcUIsV0FBVztzQkFBckMsWUFBWTt1QkFBQyxXQUFXO2dCQUt6QixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sT0FBTztzQkFETixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQWlCTixPQUFPO3NCQUROLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJdkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSXpDLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuXG5pbXBvcnQgeyB1cGRhdGVEYXRlQnlUaW1lTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRlLXBpY2tlci9jYWxlbmRhci91dGlsJztcbmltcG9ydCB7IENvbW1vbkZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vZm9ybS9jb21tb24tZm9ybSc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRCZW0gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBDT05UUk9MX0lURU1fSEVJR0hULFxuICBIT1VSX0lURU1TLFxuICBNSU5VVEVfSVRFTVMsXG4gIFNFQ09ORF9JVEVNUyxcbn0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgVGltZVBpY2tlckNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vdGltZS1waWNrZXIudHlwZSc7XG5cbmNvbnN0IFRJTUVfUElDS0VSX0NPTFVNTl9XSURUSCA9IDgwO1xuY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS10aW1lLXBpY2tlci1wYW5lbCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktdGltZS1waWNrZXItcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFuZWwudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhbmVsLnN0eWxlLnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGltZVBpY2tlclBhbmVsQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudFxuICBleHRlbmRzIENvbW1vbkZvcm1Db250cm9sPERheWpzPlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICBASW5wdXQoKVxuICBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgICBjb25zdCBjaGFyU2V0ID0gbmV3IFNldCh2YWx1ZSk7XG4gICAgICB0aGlzLmhvdXJFbmFibGVkID0gY2hhclNldC5oYXMoJ0gnKSB8fCBjaGFyU2V0LmhhcygnaCcpO1xuICAgICAgdGhpcy5taW51dGVFbmFibGVkID0gY2hhclNldC5oYXMoJ20nKTtcbiAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCA9IGNoYXJTZXQuaGFzKCdzJyk7XG4gICAgICB0aGlzLmVuYWJsZWRDb2x1bW5zID0gW1xuICAgICAgICB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHRoaXMuc2Vjb25kRW5hYmxlZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBnZXQgZm9ybWF0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcbiAgfVxuXG4gIHByaXZhdGUgX2Zvcm1hdDogc3RyaW5nO1xuXG4gIGdldCB0b3RhbFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRDb2x1bW5zICogVElNRV9QSUNLRVJfQ09MVU1OX1dJRFRIO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJykgb25Nb3VzZWRvd24oKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgaG91clN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIG1pbnV0ZVN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIHNlY29uZFN0ZXAgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAT3V0cHV0KClcbiAgY29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlSG91cnM6ICgpID0+IG51bWJlcltdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVNaW51dGVzOiAoaG91cj86IG51bWJlcikgPT4gbnVtYmVyW107XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZVNlY29uZHM6IChob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIpID0+IG51bWJlcltdO1xuXG4gIGhvdXJFbmFibGVkOiBib29sZWFuO1xuICBtaW51dGVFbmFibGVkOiBib29sZWFuO1xuICBzZWNvbmRFbmFibGVkOiBib29sZWFuO1xuXG4gIFRpbWVQaWNrZXJDb250cm9sVHlwZSA9IFRpbWVQaWNrZXJDb250cm9sVHlwZTtcbiAgSE9VUl9JVEVNX0NPTkZJRyA9IEhPVVJfSVRFTVM7XG4gIE1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUztcbiAgU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TO1xuXG4gIENPTlRST0xfSVRFTV9IRUlHSFQgPSBDT05UUk9MX0lURU1fSEVJR0hUO1xuICBDb21wb25lbnRTaXplID0gQ29tcG9uZW50U2l6ZTtcbiAgYmVtID0gYmVtO1xuXG4gIEBWaWV3Q2hpbGQoJ2hvdXJSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgaG91clJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnbWludXRlUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG1pbnV0ZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnc2Vjb25kUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHNlY29uZFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgZW5hYmxlZENvbHVtbnMgPSAwO1xuXG4gIC8vIOeUqOS6juaOp+WItuWIneasoea7muWKqO+8jOaYr+WQpuWxleekuua7muWKqOWKqOeUu+aViOaenFxuICBmaXJzdFNjcm9sbGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjZHIpO1xuICAgIHRoaXMubW9kZWwkLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNEaXNhYmxlZCh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm1vZGVsO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSB7XG4gICAgICByZXR1cm4gKCF0aGlzLmRpc2FibGVIb3VycyA/IFtdIDogdGhpcy5kaXNhYmxlSG91cnMoKSkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXRoaXMuZGlzYWJsZU1pbnV0ZXMgPyBbXSA6IHRoaXMuZGlzYWJsZU1pbnV0ZXMoY3VycmVudFZhbHVlPy5ob3VyKCkpXG4gICAgICApLmluY2x1ZGVzKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09IFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICF0aGlzLmRpc2FibGVTZWNvbmRzXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogdGhpcy5kaXNhYmxlU2Vjb25kcyhjdXJyZW50VmFsdWU/LmhvdXIoKSwgY3VycmVudFZhbHVlPy5taW51dGUoKSlcbiAgICAgICkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgaG91clN0ZXAsIG1pbnV0ZVN0ZXAsIHNlY29uZFN0ZXAgfTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChob3VyU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5IT1VSX0lURU1fQ09ORklHID0gSE9VUl9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIGhvdXJTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChtaW51dGVTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLk1JTlVURV9JVEVNX0NPTkZJRyA9IE1JTlVURV9JVEVNUy5maWx0ZXIoXG4gICAgICAgIGkgPT4gaSAlIG1pbnV0ZVN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlY29uZFN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuU0VDT05EX0lURU1fQ09ORklHID0gU0VDT05EX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgc2Vjb25kU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERheWpzKSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zeW5jU2Nyb2xsT2Zmc2V0KCF0aGlzLmZpcnN0U2Nyb2xsZWQgPyAwIDogMTIwLCB2YWx1ZSk7XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogbnVtYmVyLCB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc3luY1ZhbHVlKHZhbHVlLCB0eXBlLCB0aGlzLm1vZGVsKTtcbiAgICB0aGlzLnN5bmNTY3JvbGxPZmZzZXQoMTIwLCByZXN1bHQpO1xuICB9XG5cbiAgc3luY1ZhbHVlKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSwgY3VycmVudFZhbHVlOiBEYXlqcykge1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSAoXG4gICAgICBjdXJyZW50VmFsdWUgfHxcbiAgICAgIHVwZGF0ZURhdGVCeVRpbWVNb2RlbChkYXlqcygpLCB7IGhvdXI6IDAsIG1pbnV0ZTogMCwgc2Vjb25kOiAwIH0pXG4gICAgKS5zZXQodHlwZSwgdmFsdWUpO1xuICAgIHRoaXMuZW1pdE1vZGVsKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN5bmNTY3JvbGxPZmZzZXQoZHVyYXRpb246IG51bWJlciwgdmFsdWU6IERheWpzKSB7XG4gICAgY29uc3QgZW1wdHkgPSAhdmFsdWU7XG4gICAgY29uc3QgY29uZmlnID0gW1xuICAgICAge1xuICAgICAgICByZWY6IHRoaXMuaG91clJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5ob3VyRW5hYmxlZCxcbiAgICAgICAgc3RlcDogdGhpcy5ob3VyU3RlcCxcbiAgICAgICAgdHlwZTogJ2hvdXInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLm1pbnV0ZVJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5taW51dGVFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLm1pbnV0ZVN0ZXAsXG4gICAgICAgIHR5cGU6ICdtaW51dGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcmVmOiB0aGlzLnNlY29uZFJlZixcbiAgICAgICAgZW5hYmxlZDogdGhpcy5zZWNvbmRFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLnNlY29uZFN0ZXAsXG4gICAgICAgIHR5cGU6ICdzZWNvbmQnLFxuICAgICAgfSxcbiAgICBdIGFzIGNvbnN0O1xuXG4gICAgY29uZmlnLmZvckVhY2goY2YgPT4ge1xuICAgICAgaWYgKGNmLmVuYWJsZWQgJiYgY2YucmVmKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsQnlWYWx1ZShcbiAgICAgICAgICBjZi5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiB2YWx1ZS5nZXQoY2YudHlwZSksXG4gICAgICAgICAgY2Yuc3RlcCxcbiAgICAgICAgICBlbXB0eSA/IDAgOiBkdXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIWVtcHR5KSB7XG4gICAgICB0aGlzLmZpcnN0U2Nyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsQnlWYWx1ZShcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICB2YWx1ZTogbnVtYmVyLFxuICAgIGRpdmlkZUJ5OiBudW1iZXIsXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgdGFyZ2V0T2Zmc2V0ID0gKHZhbHVlICogQ09OVFJPTF9JVEVNX0hFSUdIVCkgLyBkaXZpZGVCeTtcbiAgICBjb25zdCBjdXJyZW50VG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgaWYgKGN1cnJlbnRUb3AgPT09IHRhcmdldE9mZnNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWR1cmF0aW9uKSB7XG4gICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IHRhcmdldE9mZnNldDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGlmZmVyZW5jZSA9IHRhcmdldE9mZnNldCAtIGN1cnJlbnRUb3A7XG4gICAgICAvLyDmr4/kuKp0aWNr5rua5Yqo6Led56a7XG4gICAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSBjdXJyZW50VG9wICsgcGVyVGljaztcbiAgICAgICAgaWYgKGVsZW1lbnQuc2Nyb2xsVG9wID09PSB0YXJnZXRPZmZzZXQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKGVsZW1lbnQsIHZhbHVlLCBkaXZpZGVCeSwgZHVyYXRpb24gLSAxMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBtYXRjaFZhbHVlKFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlLFxuICAgIGN1cnJEYXRlOiBEYXlqcyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGN1cnJEYXRlPy5nZXQodHlwZSkgPT09IHZhbHVlO1xuICB9XG5cbiAgZ2V0Q29udHJvbFR5cGVDb25maWcodHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB7XG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXJdOiB0aGlzLkhPVVJfSVRFTV9DT05GSUcsXG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZV06IHRoaXMuTUlOVVRFX0lURU1fQ09ORklHLFxuICAgICAgW1RpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmRdOiB0aGlzLlNFQ09ORF9JVEVNX0NPTkZJRyxcbiAgICB9W3R5cGVdO1xuICB9XG5cbiAgc2VsZWN0Tm93KCkge1xuICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgdGhpcy5lbWl0TW9kZWwoZGF5anMoKSk7XG4gIH1cblxuICB0cmFja0J5KF9pbmRleDogbnVtYmVyLCBjb250ZW50OiBudW1iZXIpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cImVuYWJsZWRDb2x1bW5zXCJcbiAgW2NsYXNzXT1cImJlbS5ibG9jaygpXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cInRvdGFsV2lkdGhcIlxuPlxuICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29udGVudCcpXCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjaG91clJlZlxuICAgICAgKm5nSWY9XCJob3VyRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cilcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNtaW51dGVSZWZcbiAgICAgICpuZ0lmPVwibWludXRlRW5hYmxlZFwiXG4gICAgPlxuICAgICAgPHVsPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUpO1xuICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiQ09OVFJPTF9JVEVNX0hFSUdIVFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbSB8IG51bWJlcjogJzIuMC0wJyB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4tc3RydXQnKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI3NlY29uZFJlZlxuICAgICAgKm5nSWY9XCJzZWNvbmRFbmFibGVkXCJcbiAgICA+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZClcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY2VsbCcpXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cIkNPTlRST0xfSVRFTV9IRUlHSFRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZCwgbW9kZWwpXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5TZWNvbmQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGl0ZW0gfCBudW1iZXI6ICcyLjAtMCcgfX1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uLXN0cnV0JylcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZTsgZWxzZSBjdXN0b21Gb290ZXJcIj5cbiAgICA8ZGl2IFtjbGFzc109XCJiZW0uZWxlbWVudCgnZm9vdGVyJylcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgYXVpLWJ1dHRvbj1cImlubGluZVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3ROb3coKVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgPlxuICAgICAgICB7eyAnbm93JyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaXplXT1cIkNvbXBvbmVudFNpemUuU21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOyBjb25maXJtLm5leHQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdjb25maXJtJyB8IGF1aUkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21Gb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0aGlzIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci9wYW5lbC9wYW5lbC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEtBQWdCLE1BQU0sT0FBTyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUU1RCxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQWdCOUMsTUFBTSxPQUFPLHdCQUNYLFNBQVEsaUJBQXdCO0lBR2hDLElBQ0ksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcs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LENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7WUFDdkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDRWQzlDSCx3akdBcUdBOzJGRHJEYSx3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDOzRCQUN2RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt3R0FPRyxNQUFNO3NCQURULEtBQUs7Z0JBMEJxQixXQUFXO3NCQUFyQyxZQUFZO3VCQUFDLFdBQVc7Z0JBS3pCLFFBQVE7c0JBRFAsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixPQUFPO3NCQUROLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBaUJOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl2QyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJekMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZGF5anMsIHsgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5cbmltcG9ydCB7IHVwZGF0ZURhdGVCeVRpbWVNb2RlbCB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyL2NhbGVuZGFyL3V0aWwnO1xuaW1wb3J0IHsgQ29tbW9uRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9mb3JtL2NvbW1vbi1mb3JtJztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZEJlbSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIENPTlRST0xfSVRFTV9IRUlHSFQsXG4gIEhPVVJfSVRFTVMsXG4gIE1JTlVURV9JVEVNUyxcbiAgU0VDT05EX0lURU1TLFxufSBmcm9tICcuLi9jb25zdGFudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyQ29udHJvbFR5cGUgfSBmcm9tICcuLi90aW1lLXBpY2tlci50eXBlJztcblxuY29uc3QgVElNRV9QSUNLRVJfQ09MVU1OX1dJRFRIID0gODA7XG5jb25zdCBiZW0gPSBidWlsZEJlbSgnYXVpLXRpbWUtcGlja2VyLXBhbmVsJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS10aW1lLXBpY2tlci1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYW5lbC50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFuZWwuc3R5bGUuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaW1lUGlja2VyUGFuZWxDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlclBhbmVsQ29tcG9uZW50XG4gIGV4dGVuZHMgQ29tbW9uRm9ybUNvbnRyb2w8RGF5anM+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9mb3JtYXQgPSB2YWx1ZTtcbiAgICAgIGNvbnN0IGNoYXJTZXQgPSBuZXcgU2V0KHZhbHVlKTtcbiAgICAgIHRoaXMuaG91ckVuYWJsZWQgPSBjaGFyU2V0LmhhcygnSCcpIHx8IGNoYXJTZXQuaGFzKCdoJyk7XG4gICAgICB0aGlzLm1pbnV0ZUVuYWJsZWQgPSBjaGFyU2V0LmhhcygnbScpO1xuICAgICAgdGhpcy5zZWNvbmRFbmFibGVkID0gY2hhclNldC5oYXMoJ3MnKTtcbiAgICAgIHRoaXMuZW5hYmxlZENvbHVtbnMgPSBbXG4gICAgICAgIHRoaXMuaG91ckVuYWJsZWQsXG4gICAgICAgIHRoaXMubWludXRlRW5hYmxlZCxcbiAgICAgICAgdGhpcy5zZWNvbmRFbmFibGVkLFxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9ybWF0OiBzdHJpbmc7XG5cbiAgZ2V0IHRvdGFsV2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZENvbHVtbnMgKiBUSU1FX1BJQ0tFUl9DT0xVTU5fV0lEVEg7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nKSBvbk1vdXNlZG93bigpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBASW5wdXQoKVxuICBob3VyU3RlcCA9IDE7XG5cbiAgQElucHV0KClcbiAgbWludXRlU3RlcCA9IDE7XG5cbiAgQElucHV0KClcbiAgc2Vjb25kU3RlcCA9IDE7XG5cbiAgQElucHV0KClcbiAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIEBPdXRwdXQoKVxuICBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVIb3VyczogKCkgPT4gbnVtYmVyW107XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZU1pbnV0ZXM6IChob3VyPzogbnVtYmVyKSA9PiBudW1iZXJbXTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlU2Vjb25kczogKGhvdXI/OiBudW1iZXIsIG1pbnV0ZT86IG51bWJlcikgPT4gbnVtYmVyW107XG5cbiAgaG91ckVuYWJsZWQ6IGJvb2xlYW47XG4gIG1pbnV0ZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHNlY29uZEVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgVGltZVBpY2tlckNvbnRyb2xUeXBlID0gVGltZVBpY2tlckNvbnRyb2xUeXBlO1xuICBIT1VSX0lURU1fQ09ORklHID0gSE9VUl9JVEVNUztcbiAgTUlOVVRFX0lURU1fQ09ORklHID0gTUlOVVRFX0lURU1TO1xuICBTRUNPTkRfSVRFTV9DT05GSUcgPSBTRUNPTkRfSVRFTVM7XG5cbiAgQ09OVFJPTF9JVEVNX0hFSUdIVCA9IENPTlRST0xfSVRFTV9IRUlHSFQ7XG4gIENvbXBvbmVudFNpemUgPSBDb21wb25lbnRTaXplO1xuICBiZW0gPSBiZW07XG5cbiAgQFZpZXdDaGlsZCgnaG91clJlZicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBob3VyUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdtaW51dGVSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbWludXRlUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdzZWNvbmRSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgc2Vjb25kUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBlbmFibGVkQ29sdW1ucyA9IDA7XG5cbiAgLy8g55So5LqO5o6n5Yi25Yid5qyh5rua5Yqo77yM5piv5ZCm5bGV56S65rua5Yqo5Yqo55S75pWI5p6cXG4gIGZpcnN0U2Nyb2xsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNkcik7XG4gICAgdGhpcy5tb2RlbCQuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBpc0Rpc2FibGVkKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSkge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMubW9kZWw7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpIHtcbiAgICAgIHJldHVybiAoIXRoaXMuZGlzYWJsZUhvdXJzID8gW10gOiB0aGlzLmRpc2FibGVIb3VycygpKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhdGhpcy5kaXNhYmxlTWludXRlcyA/IFtdIDogdGhpcy5kaXNhYmxlTWludXRlcyhjdXJyZW50VmFsdWU/LmhvdXIoKSlcbiAgICAgICkuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgIXRoaXMuZGlzYWJsZVNlY29uZHNcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiB0aGlzLmRpc2FibGVTZWNvbmRzKGN1cnJlbnRWYWx1ZT8uaG91cigpLCBjdXJyZW50VmFsdWU/Lm1pbnV0ZSgpKVxuICAgICAgKS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyBob3VyU3RlcCwgbWludXRlU3RlcCwgc2Vjb25kU3RlcCB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGhvdXJTdGVwPy5jdXJyZW50VmFsdWUgPiAwKSB7XG4gICAgICB0aGlzLkhPVVJfSVRFTV9DT05GSUcgPSBIT1VSX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgaG91clN0ZXAuY3VycmVudFZhbHVlID09PSAwLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG1pbnV0ZVN0ZXA/LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMuTUlOVVRFX0lURU1fQ09ORklHID0gTUlOVVRFX0lURU1TLmZpbHRlcihcbiAgICAgICAgaSA9PiBpICUgbWludXRlU3RlcC5jdXJyZW50VmFsdWUgPT09IDAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc2Vjb25kU3RlcD8uY3VycmVudFZhbHVlID4gMCkge1xuICAgICAgdGhpcy5TRUNPTkRfSVRFTV9DT05GSUcgPSBTRUNPTkRfSVRFTVMuZmlsdGVyKFxuICAgICAgICBpID0+IGkgJSBzZWNvbmRTdGVwLmN1cnJlbnRWYWx1ZSA9PT0gMCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF5anMpIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLnN5bmNTY3JvbGxPZmZzZXQoIXRoaXMuZmlyc3RTY3JvbGxlZCA/IDAgOiAxMjAsIHZhbHVlKTtcbiAgfVxuXG4gIHNlbGVjdFZhbHVlKHZhbHVlOiBudW1iZXIsIHR5cGU6IFRpbWVQaWNrZXJDb250cm9sVHlwZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zeW5jVmFsdWUodmFsdWUsIHR5cGUsIHRoaXMubW9kZWwpO1xuICAgIHRoaXMuc3luY1Njcm9sbE9mZnNldCgxMjAsIHJlc3VsdCk7XG4gIH1cblxuICBzeW5jVmFsdWUodmFsdWU6IG51bWJlciwgdHlwZTogVGltZVBpY2tlckNvbnRyb2xUeXBlLCBjdXJyZW50VmFsdWU6IERheWpzKSB7XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IChcbiAgICAgIGN1cnJlbnRWYWx1ZSB8fFxuICAgICAgdXBkYXRlRGF0ZUJ5VGltZU1vZGVsKGRheWpzKCksIHsgaG91cjogMCwgbWludXRlOiAwLCBzZWNvbmQ6IDAgfSlcbiAgICApLnNldCh0eXBlLCB2YWx1ZSk7XG4gICAgdGhpcy5lbWl0TW9kZWwocmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3luY1Njcm9sbE9mZnNldChkdXJhdGlvbjogbnVtYmVyLCB2YWx1ZTogRGF5anMpIHtcbiAgICBjb25zdCBlbXB0eSA9ICF2YWx1ZTtcbiAgICBjb25zdCBjb25maWcgPSBbXG4gICAgICB7XG4gICAgICAgIHJlZjogdGhpcy5ob3VyUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLmhvdXJFbmFibGVkLFxuICAgICAgICBzdGVwOiB0aGlzLmhvdXJTdGVwLFxuICAgICAgICB0eXBlOiAnaG91cicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByZWY6IHRoaXMubWludXRlUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLm1pbnV0ZUVuYWJsZWQsXG4gICAgICAgIHN0ZXA6IHRoaXMubWludXRlU3RlcCxcbiAgICAgICAgdHlwZTogJ21pbnV0ZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByZWY6IHRoaXMuc2Vjb25kUmVmLFxuICAgICAgICBlbmFibGVkOiB0aGlzLnNlY29uZEVuYWJsZWQsXG4gICAgICAgIHN0ZXA6IHRoaXMuc2Vjb25kU3RlcCxcbiAgICAgICAgdHlwZTogJ3NlY29uZCcsXG4gICAgICB9LFxuICAgIF0gYXMgY29uc3Q7XG5cbiAgICBjb25maWcuZm9yRWFjaChjZiA9PiB7XG4gICAgICBpZiAoY2YuZW5hYmxlZCAmJiBjZi5yZWYpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxCeVZhbHVlKFxuICAgICAgICAgIGNmLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIGVtcHR5ID8gMCA6IHZhbHVlLmdldChjZi50eXBlKSxcbiAgICAgICAgICBjZi5zdGVwLFxuICAgICAgICAgIGVtcHR5ID8gMCA6IGR1cmF0aW9uLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghZW1wdHkpIHtcbiAgICAgIHRoaXMuZmlyc3RTY3JvbGxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxCeVZhbHVlKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICAgZGl2aWRlQnk6IG51bWJlcixcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCB0YXJnZXRPZmZzZXQgPSAodmFsdWUgKiBDT05UUk9MX0lURU1fSEVJR0hUKSAvIGRpdmlkZUJ5O1xuICAgIGNvbnN0IGN1cnJlbnRUb3AgPSBlbGVtZW50LnNjcm9sbFRvcDtcbiAgICBpZiAoY3VycmVudFRvcCA9PT0gdGFyZ2V0T2Zmc2V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZHVyYXRpb24pIHtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gdGFyZ2V0T2Zmc2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gdGFyZ2V0T2Zmc2V0IC0gY3VycmVudFRvcDtcbiAgICAgIC8vIOavj+S4qnRpY2vmu5rliqjot53nprtcbiAgICAgIGNvbnN0IHBlclRpY2sgPSAoZGlmZmVyZW5jZSAvIGR1cmF0aW9uKSAqIDEwO1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IGN1cnJlbnRUb3AgKyBwZXJUaWNrO1xuICAgICAgICBpZiAoZWxlbWVudC5zY3JvbGxUb3AgPT09IHRhcmdldE9mZnNldCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbEJ5VmFsdWUoZWxlbWVudCwgdmFsdWUsIGRpdmlkZUJ5LCBkdXJhdGlvbiAtIDEwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG1hdGNoVmFsdWUoXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICB0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUsXG4gICAgY3VyckRhdGU6IERheWpzLFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gY3VyckRhdGU/LmdldCh0eXBlKSA9PT0gdmFsdWU7XG4gIH1cblxuICBnZXRDb250cm9sVHlwZUNvbmZpZyh0eXBlOiBUaW1lUGlja2VyQ29udHJvbFR5cGUpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cl06IHRoaXMuSE9VUl9JVEVNX0NPTkZJRyxcbiAgICAgIFtUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlXTogdGhpcy5NSU5VVEVfSVRFTV9DT05GSUcsXG4gICAgICBbVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZF06IHRoaXMuU0VDT05EX0lURU1fQ09ORklHLFxuICAgIH1bdHlwZV07XG4gIH1cblxuICBzZWxlY3ROb3coKSB7XG4gICAgdGhpcy5maXJzdFNjcm9sbGVkID0gdHJ1ZTtcbiAgICB0aGlzLmVtaXRNb2RlbChkYXlqcygpKTtcbiAgfVxuXG4gIHRyYWNrQnkoX2luZGV4OiBudW1iZXIsIGNvbnRlbnQ6IG51bWJlcikge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiZW5hYmxlZENvbHVtbnNcIlxuICBbY2xhc3NdPVwiYmVtLmJsb2NrKClcIlxuICBbc3R5bGUud2lkdGgucHhdPVwidG90YWxXaWR0aFwiXG4+XG4gIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb250ZW50JylcIj5cbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbicpXCJcbiAgICAgICNob3VyUmVmXG4gICAgICAqbmdJZj1cImhvdXJFbmFibGVkXCJcbiAgICA+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldENvbnRyb2xUeXBlQ29uZmlnKFRpbWVQaWNrZXJDb250cm9sVHlwZS5Ib3VyKVwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiQ09OVFJPTF9JVEVNX0hFSUdIVFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIpLFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IG1hdGNoVmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLkhvdXIsIG1vZGVsKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuSG91cilcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbSB8IG51bWJlcjogJzIuMC0wJyB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4tc3RydXQnKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJiZW0uZWxlbWVudCgnY29sdW1uJylcIlxuICAgICAgI21pbnV0ZVJlZlxuICAgICAgKm5nSWY9XCJtaW51dGVFbmFibGVkXCJcbiAgICA+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZ2V0Q29udHJvbFR5cGVDb25maWcoVGltZVBpY2tlckNvbnRyb2xUeXBlLk1pbnV0ZSk7XG4gICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5XG4gICAgICAgICAgXCJcbiAgICAgICAgICBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NlbGwnKVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJDT05UUk9MX0lURU1fSEVJR0hUXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZChpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKSxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBtYXRjaFZhbHVlKGl0ZW0sIFRpbWVQaWNrZXJDb250cm9sVHlwZS5NaW51dGUsIG1vZGVsKVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuTWludXRlKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBpdGVtIHwgbnVtYmVyOiAnMi4wLTAnIH19XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiYmVtLmVsZW1lbnQoJ2NvbHVtbi1zdHJ1dCcpXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4nKVwiXG4gICAgICAjc2Vjb25kUmVmXG4gICAgICAqbmdJZj1cInNlY29uZEVuYWJsZWRcIlxuICAgID5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgaXRlbSBvZiBnZXRDb250cm9sVHlwZUNvbmZpZyhUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjZWxsJylcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiQ09OVFJPTF9JVEVNX0hFSUdIVFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZCksXG4gICAgICAgICAgICBzZWxlY3RlZDogbWF0Y2hWYWx1ZShpdGVtLCBUaW1lUGlja2VyQ29udHJvbFR5cGUuU2Vjb25kLCBtb2RlbClcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VmFsdWUoaXRlbSwgVGltZVBpY2tlckNvbnRyb2xUeXBlLlNlY29uZClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgaXRlbSB8IG51bWJlcjogJzIuMC0wJyB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdjb2x1bW4tc3RydXQnKVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZvb3RlclRlbXBsYXRlOyBlbHNlIGN1c3RvbUZvb3RlclwiPlxuICAgIDxkaXYgW2NsYXNzXT1cImJlbS5lbGVtZW50KCdmb290ZXInKVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwiaW5saW5lXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vdygpXCJcbiAgICAgICAgW3NpemVdPVwiQ29tcG9uZW50U2l6ZS5TbWFsbFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdub3cnIHwgYXVpSTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGF1aS1idXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgW3NpemVdPVwiQ29tcG9uZW50U2l6ZS5TbWFsbFwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7IGNvbmZpcm0ubmV4dCgpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2NvbmZpcm0nIHwgYXVpSTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbUZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRoaXMgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -13,8 +13,8 @@ import { TimePickerPanelComponent } from './panel/panel.component';
|
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export class TimePickerModule {
|
|
15
15
|
}
|
|
16
|
-
TimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
16
|
+
TimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TimePickerModule, declarations: [TimePickerComponent, TimePickerPanelComponent], imports: [FormsModule,
|
|
18
18
|
ReactiveFormsModule,
|
|
19
19
|
PortalModule,
|
|
20
20
|
OverlayModule,
|
|
@@ -24,19 +24,17 @@ TimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
24
24
|
IconModule,
|
|
25
25
|
ButtonModule,
|
|
26
26
|
I18nModule], exports: [TimePickerComponent, TimePickerPanelComponent] });
|
|
27
|
-
TimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
]] });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TimePickerModule, decorators: [{
|
|
27
|
+
TimePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimePickerModule, imports: [FormsModule,
|
|
28
|
+
ReactiveFormsModule,
|
|
29
|
+
PortalModule,
|
|
30
|
+
OverlayModule,
|
|
31
|
+
CommonModule,
|
|
32
|
+
InputModule,
|
|
33
|
+
TooltipModule,
|
|
34
|
+
IconModule,
|
|
35
|
+
ButtonModule,
|
|
36
|
+
I18nModule] });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TimePickerModule, decorators: [{
|
|
40
38
|
type: NgModule,
|
|
41
39
|
args: [{
|
|
42
40
|
imports: [
|
|
@@ -55,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
55
53
|
exports: [TimePickerComponent, TimePickerPanelComponent],
|
|
56
54
|
}]
|
|
57
55
|
}] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWtCbkUsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQUhaLG1CQUFtQixFQUFFLHdCQUF3QixhQVgxRCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWTtRQUNaLFdBQVc7UUFDWCxhQUFhO1FBQ2IsVUFBVTtRQUNWLFlBQVk7UUFDWixVQUFVLGFBR0YsbUJBQW1CLEVBQUUsd0JBQXdCOzhHQUU1QyxnQkFBZ0IsWUFkekIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osYUFBYTtRQUNiLFlBQVk7UUFDWixXQUFXO1FBQ1gsYUFBYTtRQUNiLFVBQVU7UUFDVixZQUFZO1FBQ1osVUFBVTsyRkFLRCxnQkFBZ0I7a0JBaEI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixVQUFVO3FCQUNYO29CQUNELFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQztpQkFDekQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgSTE4bk1vZHVsZSB9IGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24nO1xuaW1wb3J0IHsgSW5wdXRNb2R1bGUgfSBmcm9tICcuLi9pbnB1dCc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5cbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lUGlja2VyUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL3BhbmVsL3BhbmVsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEkxOG5Nb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1RpbWVQaWNrZXJDb21wb25lbnQsIFRpbWVQaWNrZXJQYW5lbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtUaW1lUGlja2VyQ29tcG9uZW50LCBUaW1lUGlja2VyUGFuZWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -11,34 +11,6 @@ import * as i1 from "@angular/cdk/overlay";
|
|
|
11
11
|
export const DISPLAY_DELAY = 50;
|
|
12
12
|
export const HIDDEN_DELAY = 150;
|
|
13
13
|
export class BaseTooltip {
|
|
14
|
-
constructor(overlay, viewContainerRef, elRef, renderer, cdr, ngZone) {
|
|
15
|
-
this.overlay = overlay;
|
|
16
|
-
this.viewContainerRef = viewContainerRef;
|
|
17
|
-
this.elRef = elRef;
|
|
18
|
-
this.renderer = renderer;
|
|
19
|
-
this.cdr = cdr;
|
|
20
|
-
this.ngZone = ngZone;
|
|
21
|
-
this.hideOnClick = false;
|
|
22
|
-
this.disableAnimation = true;
|
|
23
|
-
this.visibleChange = new EventEmitter();
|
|
24
|
-
this.componentClass = TooltipComponent;
|
|
25
|
-
this.hostHovered = false;
|
|
26
|
-
this.tooltipHovered = false;
|
|
27
|
-
this.listeners = [];
|
|
28
|
-
this.inputContent$$ = new ReplaySubject(1);
|
|
29
|
-
this.inputType$$ = new ReplaySubject(1);
|
|
30
|
-
this.inputPosition$$ = new ReplaySubject(1);
|
|
31
|
-
this.inputClass$$ = new ReplaySubject(1);
|
|
32
|
-
this.inputContext$$ = new ReplaySubject(1);
|
|
33
|
-
this.tooltipChanged$ = merge(this.inputContent$$, this.inputType$$, this.inputPosition$$, this.inputClass$$, this.inputContext$$);
|
|
34
|
-
this.destroy$ = new Subject();
|
|
35
|
-
this._position = 'top';
|
|
36
|
-
this._trigger = TooltipTrigger.Hover;
|
|
37
|
-
this._disabled = false;
|
|
38
|
-
this.tooltipChanged$.pipe(debounceTime(0)).subscribe(() => {
|
|
39
|
-
this.updatePosition();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
14
|
set content(value) {
|
|
43
15
|
this._content = value;
|
|
44
16
|
this.inputContent$$.next(value);
|
|
@@ -96,18 +68,44 @@ export class BaseTooltip {
|
|
|
96
68
|
get isCreated() {
|
|
97
69
|
return !!this.overlayRef;
|
|
98
70
|
}
|
|
71
|
+
constructor(overlay, viewContainerRef, elRef, renderer, cdr, ngZone) {
|
|
72
|
+
this.overlay = overlay;
|
|
73
|
+
this.viewContainerRef = viewContainerRef;
|
|
74
|
+
this.elRef = elRef;
|
|
75
|
+
this.renderer = renderer;
|
|
76
|
+
this.cdr = cdr;
|
|
77
|
+
this.ngZone = ngZone;
|
|
78
|
+
this.hideOnClick = false;
|
|
79
|
+
this.disableAnimation = true;
|
|
80
|
+
this.visibleChange = new EventEmitter();
|
|
81
|
+
this.componentClass = TooltipComponent;
|
|
82
|
+
this.hostHovered = false;
|
|
83
|
+
this.tooltipHovered = false;
|
|
84
|
+
this.listeners = [];
|
|
85
|
+
this.inputContent$$ = new ReplaySubject(1);
|
|
86
|
+
this.inputType$$ = new ReplaySubject(1);
|
|
87
|
+
this.inputPosition$$ = new ReplaySubject(1);
|
|
88
|
+
this.inputClass$$ = new ReplaySubject(1);
|
|
89
|
+
this.inputContext$$ = new ReplaySubject(1);
|
|
90
|
+
this.tooltipChanged$ = merge(this.inputContent$$, this.inputType$$, this.inputPosition$$, this.inputClass$$, this.inputContext$$);
|
|
91
|
+
this.destroy$ = new Subject();
|
|
92
|
+
this._position = 'top';
|
|
93
|
+
this._trigger = TooltipTrigger.Hover;
|
|
94
|
+
this._disabled = false;
|
|
95
|
+
this.tooltipChanged$.pipe(debounceTime(0)).subscribe(() => {
|
|
96
|
+
this.updatePosition();
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
99
|
_updateTransformOrigin() {
|
|
100
|
-
// @ts-ignore
|
|
101
100
|
const overlayRef = this.overlayRef;
|
|
102
101
|
const positionStrategy = overlayRef._positionStrategy;
|
|
103
|
-
const hasExactPosition = positionStrategy._hasExactPosition();
|
|
102
|
+
const hasExactPosition = positionStrategy._hasExactPosition();
|
|
104
103
|
if (!hasExactPosition) {
|
|
105
104
|
return;
|
|
106
105
|
}
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
const position = positionStrategy._lastPosition; // 当前策略位置(调整后的最佳的)
|
|
106
|
+
const paneRect = positionStrategy._pane.getBoundingClientRect();
|
|
107
|
+
const triggerElReact = this.elRef.nativeElement.getBoundingClientRect();
|
|
108
|
+
const position = positionStrategy._lastPosition;
|
|
111
109
|
let xOrigin;
|
|
112
110
|
const yOrigin = position.overlayY;
|
|
113
111
|
if (position.overlayX === 'center') {
|
|
@@ -127,10 +125,9 @@ export class BaseTooltip {
|
|
|
127
125
|
}
|
|
128
126
|
if (yOrigin === 'center' ||
|
|
129
127
|
(yOrigin === 'top' &&
|
|
130
|
-
![triggerElReact.bottom, triggerElReact.top].includes(paneRect.top)) ||
|
|
128
|
+
![triggerElReact.bottom, triggerElReact.top].includes(paneRect.top)) ||
|
|
131
129
|
(yOrigin === 'bottom' &&
|
|
132
|
-
![triggerElReact.bottom, triggerElReact.top].includes(paneRect.bottom))
|
|
133
|
-
) {
|
|
130
|
+
![triggerElReact.bottom, triggerElReact.top].includes(paneRect.bottom))) {
|
|
134
131
|
const originTop = triggerElReact.top - paneRect.top + triggerElReact.height / 2;
|
|
135
132
|
origins[1] = Math.min(originTop, paneRect.height) + 'px';
|
|
136
133
|
}
|
|
@@ -208,7 +205,6 @@ export class BaseTooltip {
|
|
|
208
205
|
}
|
|
209
206
|
hide() {
|
|
210
207
|
if (this.disableAnimation) {
|
|
211
|
-
// 如果禁用了动画就立即销毁,而不是等动画完成事件后才销毁
|
|
212
208
|
this._disposeTooltip();
|
|
213
209
|
}
|
|
214
210
|
else {
|
|
@@ -314,9 +310,9 @@ export class BaseTooltip {
|
|
|
314
310
|
this.hide();
|
|
315
311
|
}
|
|
316
312
|
}
|
|
317
|
-
BaseTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
318
|
-
BaseTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
313
|
+
BaseTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseTooltip, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
314
|
+
BaseTooltip.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseTooltip, ngImport: i0 });
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseTooltip, decorators: [{
|
|
320
316
|
type: Directive
|
|
321
317
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBNEd0QixZQUNZLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxLQUFtQyxFQUNuQyxRQUFtQixFQUNuQixHQUFzQixFQUN0QixNQUFjO1FBTGQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFVBQUssR0FBTCxLQUFLLENBQThCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0s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QUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7O3dHQTdaVSxXQUFXOzRGQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVwbGF5U3ViamVjdCxcbiAgbWVyZ2UsXG4gIGRlYm91bmNlVGltZSxcbiAgdGFrZVVudGlsLFxuICBmaXJzdCxcbiAgZmlsdGVyLFxuICBTdWJqZWN0LFxuICBkZWxheSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuL3Rvb2x0aXAudHlwZXMnO1xuaW1wb3J0IHsgZ2V0T3JpZ2luUG9zaXRpb24sIGdldE92ZXJsYXlQb3NpdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBJbnRlcmZhY2Uge1xuICBjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjb250ZXh0OiBhbnk7XG4gIGNsYXNzOiBzdHJpbmc7XG4gIHR5cGU6IFRvb2x0aXBUeXBlO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICB0cmlnZ2VyOiBUb29sdGlwVHJpZ2dlcjtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIGhpZGVPbkNsaWNrOiBib29sZWFuO1xuICB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjb25zdCBESVNQTEFZX0RFTEFZID0gNTA7XG5leHBvcnQgY29uc3QgSElEREVOX0RFTEFZID0gMTUwO1xuXG4vLyBAdHMtaWdub3JlXG5pbnRlcmZhY2UgSGFja092ZXJsYXlSZWYgZXh0ZW5kcyBPdmVybGF5UmVmIHtcbiAgX3Bvc2l0aW9uU3RyYXRlZ3k6IHtcbiAgICBfaGFzRXhhY3RQb3NpdGlvbjogKCkgPT4gYm9vbGVhbjtcbiAgICBfcGFuZTogSFRNTEVsZW1lbnQ7XG4gICAgX2xhc3RQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gfCBudWxsO1xuICAgIF9ib3VuZGluZ0JveDogSFRNTEVsZW1lbnQ7XG4gICAgX3RyYW5zZm9ybU9yaWdpblNlbGVjdG9yOiBzdHJpbmc7XG4gIH07XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VUb29sdGlwPFQgPSBhbnk+XG4gIGltcGxlbWVudHMgVG9vbHRpcEludGVyZmFjZSwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHNldCBjb250ZW50KHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fY29udGVudCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZW50JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgfVxuXG4gIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRDb250ZXh0JCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgY29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbnB1dENsYXNzJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZTogVG9vbHRpcFR5cGUpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5wdXRUeXBlJCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXQgcG9zaXRpb24odmFsdWU6IHN0cmluZykge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Bvc2l0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gIH1cblxuICBzZXQgdHJpZ2dlcih2YWx1ZSkge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09IHRoaXMuX3RyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudXBkYXRlTGlzdGVuZXJzLCB0aGlzKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIGhpZGVPbkNsaWNrID0gZmFsc2U7XG4gIGRpc2FibGVBbmltYXRpb24gPSB0cnVlO1xuXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJvdGVjdGVkIGNvbXBvbmVudENsYXNzOiBDb21wb25lbnRUeXBlPGFueT4gPSBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgY29tcG9uZW50SW5zOiBUb29sdGlwQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgaG9zdEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBsaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG4gIHByb3RlY3RlZCB1bmxpc3RlbkJvZHk6ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udGVudCQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pj4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dFR5cGUkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRvb2x0aXBUeXBlPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0UG9zaXRpb24kJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENsYXNzJCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRDb250ZXh0JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuXG4gIHByb3RlY3RlZCB0b29sdGlwQ2hhbmdlZCQgPSBtZXJnZShcbiAgICB0aGlzLmlucHV0Q29udGVudCQkLFxuICAgIHRoaXMuaW5wdXRUeXBlJCQsXG4gICAgdGhpcy5pbnB1dFBvc2l0aW9uJCQsXG4gICAgdGhpcy5pbnB1dENsYXNzJCQsXG4gICAgdGhpcy5pbnB1dENvbnRleHQkJCxcbiAgKTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByb3RlY3RlZCBfcG9zaXRpb24gPSAndG9wJztcbiAgcHJvdGVjdGVkIF90cmlnZ2VyID0gVG9vbHRpcFRyaWdnZXIuSG92ZXI7XG4gIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9jb250ZXh0OiBUO1xuICBwcm90ZWN0ZWQgX2NvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIGdldCBpc0NyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVybGF5UmVmO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy50b29sdGlwQ2hhbmdlZCQucGlwZShkZWJvdW5jZVRpbWUoMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUcmFuc2Zvcm1PcmlnaW4oKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXlSZWYgYXMgSGFja092ZXJsYXlSZWY7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IG92ZXJsYXlSZWYuX3Bvc2l0aW9uU3RyYXRlZ3k7XG4gICAgY29uc3QgaGFzRXhhY3RQb3NpdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kuX2hhc0V4YWN0UG9zaXRpb24oKTsgLy8g5piv5LiN5piv5bqU55So5LqG57K+56Gu5a6a5L2NXG4gICAgaWYgKCFoYXNFeGFjdFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIOWmguaenOaYr+eyvuehruWumuS9je+8jOS5n+WwseaYr+mihOiuvuS9jee9ruepuumXtOS4jei2s+S7peaJv+i9veW8ueWHuuWFg+e0oO+8jOiiq+mHjeaWsOaMh+WumuaWsOeahOW8ueWHuuS9jee9rlxuICAgIGNvbnN0IHBhbmVSZWN0ID0gcG9zaXRpb25TdHJhdGVneS5fcGFuZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g5by55Ye6cGFuZeWFg+e0oFJlY3RcbiAgICBjb25zdCB0cmlnZ2VyRWxSZWFjdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgLy8g6Kem5Y+R54K5UmVjdFxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBwb3NpdGlvblN0cmF0ZWd5Ll9sYXN0UG9zaXRpb247IC8vIOW9k+WJjeetlueVpeS9jee9ru+8iOiwg+aVtOWQjueahOacgOS9s+eahO+8iVxuICAgIGxldCB4T3JpZ2luOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gICAgY29uc3QgeU9yaWdpbjogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gcG9zaXRpb24ub3ZlcmxheVk7XG4gICAgaWYgKHBvc2l0aW9uLm92ZXJsYXlYID09PSAnY2VudGVyJykge1xuICAgICAgeE9yaWdpbiA9ICdjZW50ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICB4T3JpZ2luID0gcG9zaXRpb24ub3ZlcmxheVggPT09ICdzdGFydCcgPyAnbGVmdCcgOiAncmlnaHQnO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbnM6IHN0cmluZ1tdID0gW3hPcmlnaW4sIHlPcmlnaW5dO1xuICAgIGlmIChcbiAgICAgIHhPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeE9yaWdpbiA9PT0gJ2xlZnQnICYmXG4gICAgICAgICFbdHJpZ2dlckVsUmVhY3QucmlnaHQsIHRyaWdnZXJFbFJlYWN0LmxlZnRdLmluY2x1ZGVzKHBhbmVSZWN0LmxlZnQpKSB8fFxuICAgICAgKHhPcmlnaW4gPT09ICdyaWdodCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5yaWdodCwgdHJpZ2dlckVsUmVhY3QubGVmdF0uaW5jbHVkZXMocGFuZVJlY3QucmlnaHQpKVxuICAgICkge1xuICAgICAgY29uc3Qgb3JpZ2luTGVmdCA9XG4gICAgICAgIHRyaWdnZXJFbFJlYWN0LmxlZnQgLSBwYW5lUmVjdC5sZWZ0ICsgdHJpZ2dlckVsUmVhY3Qud2lkdGggLyAyO1xuICAgICAgb3JpZ2luc1swXSA9IE1hdGgubWluKG9yaWdpbkxlZnQsIHBhbmVSZWN0LndpZHRoKSArICdweCc7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHlPcmlnaW4gPT09ICdjZW50ZXInIHx8XG4gICAgICAoeU9yaWdpbiA9PT0gJ3RvcCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QudG9wKSkgfHwgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgICAoeU9yaWdpbiA9PT0gJ2JvdHRvbScgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5ib3R0b20sIHRyaWdnZXJFbFJlYWN0LnRvcF0uaW5jbHVkZXMocGFuZVJlY3QuYm90dG9tKSkgLy8g5L2N572u5rKh5pyJ6KKr5a6M5YWo6KKr6aKg5YCS55qEXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmlnaW5Ub3AgPVxuICAgICAgICB0cmlnZ2VyRWxSZWFjdC50b3AgLSBwYW5lUmVjdC50b3AgKyB0cmlnZ2VyRWxSZWFjdC5oZWlnaHQgLyAyO1xuICAgICAgb3JpZ2luc1sxXSA9IE1hdGgubWluKG9yaWdpblRvcCwgcGFuZVJlY3QuaGVpZ2h0KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGFuaUVscyA9IHBvc2l0aW9uU3RyYXRlZ3kuX2JvdW5kaW5nQm94LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxuICAgICAgcG9zaXRpb25TdHJhdGVneS5fdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3IsXG4gICAgKTtcbiAgICBBcnJheS5mcm9tKGFuaUVscykuZm9yRWFjaChlbCA9PiB7XG4gICAgICBlbC5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBvcmlnaW5zLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgIHRoaXMuY29tcG9uZW50Q2xhc3MsXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYsXG4gICAgKTtcbiAgICB0aGlzLmNvbXBvbmVudElucyA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKS5pbnN0YW5jZTtcbiAgICB0aGlzLmNvbXBvbmVudElucy5zZXR1cElucHV0cyh7XG4gICAgICBpbnB1dENsYXNzJDogdGhpcy5pbnB1dENsYXNzJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dENvbnRlbnQkOiB0aGlzLmlucHV0Q29udGVudCQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRDb250ZXh0JDogdGhpcy5pbnB1dENvbnRleHQkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0UG9zaXRpb24kOiB0aGlzLmlucHV0UG9zaXRpb24kJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0VHlwZSQ6IHRoaXMuaW5wdXRUeXBlJCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uOiB0aGlzLmRpc2FibGVBbmltYXRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5jb21wb25lbnRJbnMuaGlkZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLmRpc2FibGVBbmltYXRpb24pIHtcbiAgICAgIG1lcmdlKFxuICAgICAgICB0aGlzLmNvbXBvbmVudElucy5iZWZvcmVIaWRlJCxcbiAgICAgICAgdGhpcy5jb21wb25lbnRJbnMuYmVmb3JlU2hvdyQucGlwZShkZWxheSgwKSksXG4gICAgICApXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSh0aGlzLl91cGRhdGVUcmFuc2Zvcm1PcmlnaW4uYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zLmhvdmVyJFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnRJbnMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKGhvdmVyZWQgPT4ge1xuICAgICAgICAgIHRoaXMub25Ub29sdGlwSG92ZXJlZChob3ZlcmVkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuSG92ZXIgfHxcbiAgICAgIHRoaXMudHJpZ2dlciA9PT0gVG9vbHRpcFRyaWdnZXIuQ2xpY2tcbiAgICApIHtcbiAgICAgIHRoaXMudW5saXN0ZW5Cb2R5ID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICdib2R5JyxcbiAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgdGhpcy5vbkJvZHlDbGljay5iaW5kKHRoaXMpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudElucz8uc2hvdygpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBfZGlzcG9zZVRvb2x0aXAoKSB7XG4gICAgdGhpcy5jb21wb25lbnRJbnM/LmFuaW1hdGluZyQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGFuaW1hdGluZyA9PiAhYW5pbWF0aW5nKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICAgIHRoaXMuY29tcG9uZW50SW5zID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHRoaXMudW5saXN0ZW5Cb2R5KSB7XG4gICAgICAgICAgICB0aGlzLnVubGlzdGVuQm9keSgpO1xuICAgICAgICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgLy8g5aaC5p6c56aB55So5LqG5Yqo55S75bCx56uL5Y2z6ZSA5q+B77yM6ICM5LiN5piv562J5Yqo55S75a6M5oiQ5LqL5Lu25ZCO5omN6ZSA5q+BXG4gICAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElucz8uaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3Zlcikge1xuICAgICAgdGhpcy51cGRhdGVMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgc3dpdGNoICh0aGlzLnRyaWdnZXIpIHtcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuQ2xpY2s6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuSG92ZXI6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnbW91c2VlbnRlcicsXG4gICAgICAgICAgICB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpIGFzICgpID0+IHZvaWQsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuRm9jdXM6XG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZm9jdXMnLFxuICAgICAgICAgICAgdGhpcy5vbkZvY3VzLmJpbmQodGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdibHVyJyxcbiAgICAgICAgICAgIHRoaXMub25CbHVyLmJpbmQodGhpcyksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRvb2x0aXBUcmlnZ2VyLk1hbnVhbDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2godW5MaXN0ZW4gPT4ge1xuICAgICAgdW5MaXN0ZW4oKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3JpZ2luUG9zaXRpb24gPSBnZXRPcmlnaW5Qb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcbiAgICBjb25zdCBvdmVybGF5UG9zaXRpb24gPSBnZXRPdmVybGF5UG9zaXRpb24odGhpcy5wb3NpdGlvbik7XG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbFJlZilcbiAgICAgIC53aXRoR3Jvd0FmdGVyT3Blbih0cnVlKVxuICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLmF1aS10b29sdGlwJylcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgeyAuLi5vcmlnaW5Qb3NpdGlvbi5tYWluLCAuLi5vdmVybGF5UG9zaXRpb24ubWFpbiB9LFxuICAgICAgICB7IC4uLm9yaWdpblBvc2l0aW9uLmZhbGxiYWNrLCAuLi5vdmVybGF5UG9zaXRpb24uZmFsbGJhY2sgfSxcbiAgICAgIF0pO1xuXG4gICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvbk1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5ob3N0SG92ZXJlZCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgYXdhaXQgc2xlZXAoRElTUExBWV9ERUxBWSk7XG4gICAgICBpZiAodGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgICB0aGlzLl9jcmVhdGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gZmFsc2U7XG4gICAgYXdhaXQgc2xlZXAoSElEREVOX0RFTEFZKTtcbiAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvblRvb2x0aXBIb3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvb2x0aXBIb3ZlcmVkID0gaG92ZXJlZDtcbiAgICBpZiAoIWhvdmVyZWQpIHtcbiAgICAgIGF3YWl0IHNsZWVwKEhJRERFTl9ERUxBWSk7XG4gICAgICBpZiAoIXRoaXMudG9vbHRpcEhvdmVyZWQgJiYgIXRoaXMuaG9zdEhvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2dnbGVUb29sdGlwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb2R5Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICh0aGlzLmhpZGVPbkNsaWNrIHx8XG4gICAgICAgICF0aGlzLmNvbXBvbmVudElucy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZvY3VzKCkge1xuICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJsdXIoKSB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rvb2x0aXAvYmFzZS10b29sdGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEdBRWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxHQU1iLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBY2hDLE1BQU0sT0FBTyxXQUFXO0lBR3RCLElBQUksT0FBTyxDQUFDLEtBQWdDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQVE7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFL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aW1wb3J0IHtcbiAgQ29ubmVjdGVkUG9zaXRpb24sXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSZXBsYXlTdWJqZWN0LFxuICBtZXJnZSxcbiAgZGVib3VuY2VUaW1lLFxuICB0YWtlVW50aWwsXG4gIGZpcnN0LFxuICBmaWx0ZXIsXG4gIFN1YmplY3QsXG4gIGRlbGF5LFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwVHlwZSB9IGZyb20gJy4vdG9vbHRpcC50eXBlcyc7XG5pbXBvcnQgeyBnZXRPcmlnaW5Qb3NpdGlvbiwgZ2V0T3ZlcmxheVBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcEludGVyZmFjZSB7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIGNvbnRleHQ6IGFueTtcbiAgY2xhc3M6IHN0cmluZztcbiAgdHlwZTogVG9vbHRpcFR5cGU7XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIHRyaWdnZXI6IFRvb2x0aXBUcmlnZ2VyO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgaGlkZU9uQ2xpY2s6IGJvb2xlYW47XG4gIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbn1cblxuZXhwb3J0IGNvbnN0IERJU1BMQVlfREVMQVkgPSA1MDtcbmV4cG9ydCBjb25zdCBISURERU5fREVMQVkgPSAxNTA7XG5cbi8vIEB0cy1pZ25vcmVcbmludGVyZmFjZSBIYWNrT3ZlcmxheVJlZiBleHRlbmRzIE92ZXJsYXlSZWYge1xuICBfcG9zaXRpb25TdHJhdGVneToge1xuICAgIF9oYXNFeGFjdFBvc2l0aW9uOiAoKSA9PiBib29sZWFuO1xuICAgIF9wYW5lOiBIVE1MRWxlbWVudDtcbiAgICBfbGFzdFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiB8IG51bGw7XG4gICAgX2JvdW5kaW5nQm94OiBIVE1MRWxlbWVudDtcbiAgICBfdHJhbnNmb3JtT3JpZ2luU2VsZWN0b3I6IHN0cmluZztcbiAgfTtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRvb2x0aXA8VCA9IGFueT5cbiAgaW1wbGVtZW50cyBUb29sdGlwSW50ZXJmYWNlLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgc2V0IGNvbnRlbnQodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRlbnQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICB9XG5cbiAgc2V0IGNvbnRleHQodmFsdWU6IFQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dENvbnRleHQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgc2V0IGNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlucHV0Q2xhc3MkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlOiBUb29sdGlwVHlwZSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dFR5cGUkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHNldCBwb3NpdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fcG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0UG9zaXRpb24kJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLl9kaXNwb3NlVG9vbHRpcCgpO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgfVxuXG4gIHNldCB0cmlnZ2VyKHZhbHVlKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gdGhpcy5fdHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLm5nWm9uZS5ydW4odGhpcy51cGRhdGVMaXN0ZW5lcnMsIHRoaXMpO1xuICB9XG5cbiAgZ2V0IHRyaWdnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gIH1cblxuICBzZXQgZGlzYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgaGlkZU9uQ2xpY2sgPSBmYWxzZTtcbiAgZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG5cbiAgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwcm90ZWN0ZWQgY29tcG9uZW50Q2xhc3M6IENvbXBvbmVudFR5cGU8YW55PiA9IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBjb21wb25lbnRJbnM6IFRvb2x0aXBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBob3N0SG92ZXJlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdG9vbHRpcEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJvdGVjdGVkIHVubGlzdGVuQm9keTogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250ZW50JCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PigxKTtcbiAgcHJvdGVjdGVkIGlucHV0VHlwZSQkID0gbmV3IFJlcGxheVN1YmplY3Q8VG9vbHRpcFR5cGU+KDEpO1xuICBwcm90ZWN0ZWQgaW5wdXRQb3NpdGlvbiQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcHJvdGVjdGVkIGlucHV0Q2xhc3MkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG4gIHByb3RlY3RlZCBpbnB1dENvbnRleHQkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGFueT4oMSk7XG5cbiAgcHJvdGVjdGVkIHRvb2x0aXBDaGFuZ2VkJCA9IG1lcmdlKFxuICAgIHRoaXMuaW5wdXRDb250ZW50JCQsXG4gICAgdGhpcy5pbnB1dFR5cGUkJCxcbiAgICB0aGlzLmlucHV0UG9zaXRpb24kJCxcbiAgICB0aGlzLmlucHV0Q2xhc3MkJCxcbiAgICB0aGlzLmlucHV0Q29udGV4dCQkLFxuICApO1xuXG4gIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJvdGVjdGVkIF9wb3NpdGlvbiA9ICd0b3AnO1xuICBwcm90ZWN0ZWQgX3RyaWdnZXIgPSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjtcbiAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG4gIHByb3RlY3RlZCBfY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgZ2V0IGlzQ3JlYXRlZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLm92ZXJsYXlSZWY7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICB0aGlzLnRvb2x0aXBDaGFuZ2VkJC5waXBlKGRlYm91bmNlVGltZSgwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVRyYW5zZm9ybU9yaWdpbigpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheVJlZiBhcyBIYWNrT3ZlcmxheVJlZjtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gb3ZlcmxheVJlZi5fcG9zaXRpb25TdHJhdGVneTtcbiAgICBjb25zdCBoYXNFeGFjdFBvc2l0aW9uID0gcG9zaXRpb25TdHJhdGVneS5faGFzRXhhY3RQb3NpdGlvbigpOyAvLyDmmK/kuI3mmK/lupTnlKjkuobnsr7noa7lrprkvY1cbiAgICBpZiAoIWhhc0V4YWN0UG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g5aaC5p6c5piv57K+56Gu5a6a5L2N77yM5Lmf5bCx5piv6aKE6K6+5L2N572u56m66Ze05LiN6Laz5Lul5om/6L295by55Ye65YWD57Sg77yM6KKr6YeN5paw5oyH5a6a5paw55qE5by55Ye65L2N572uXG4gICAgY29uc3QgcGFuZVJlY3QgPSBwb3NpdGlvblN0cmF0ZWd5Ll9wYW5lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyAvLyDlvLnlh7pwYW5l5YWD57SgUmVjdFxuICAgIGNvbnN0IHRyaWdnZXJFbFJlYWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyAvLyDop6blj5HngrlSZWN0XG5cbiAgICBjb25zdCBwb3NpdGlvbiA9IHBvc2l0aW9uU3RyYXRlZ3kuX2xhc3RQb3NpdGlvbjsgLy8g5b2T5YmN562W55Wl5L2N572u77yI6LCD5pW05ZCO55qE5pyA5L2z55qE77yJXG4gICAgbGV0IHhPcmlnaW46ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJztcbiAgICBjb25zdCB5T3JpZ2luOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicgPSBwb3NpdGlvbi5vdmVybGF5WTtcbiAgICBpZiAocG9zaXRpb24ub3ZlcmxheVggPT09ICdjZW50ZXInKSB7XG4gICAgICB4T3JpZ2luID0gJ2NlbnRlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHhPcmlnaW4gPSBwb3NpdGlvbi5vdmVybGF5WCA9PT0gJ3N0YXJ0JyA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luczogc3RyaW5nW10gPSBbeE9yaWdpbiwgeU9yaWdpbl07XG4gICAgaWYgKFxuICAgICAgeE9yaWdpbiA9PT0gJ2NlbnRlcicgfHxcbiAgICAgICh4T3JpZ2luID09PSAnbGVmdCcgJiZcbiAgICAgICAgIVt0cmlnZ2VyRWxSZWFjdC5yaWdodCwgdHJpZ2dlckVsUmVhY3QubGVmdF0uaW5jbHVkZXMocGFuZVJlY3QubGVmdCkpIHx8XG4gICAgICAoeE9yaWdpbiA9PT0gJ3JpZ2h0JyAmJlxuICAgICAgICAhW3RyaWdnZXJFbFJlYWN0LnJpZ2h0LCB0cmlnZ2VyRWxSZWFjdC5sZWZ0XS5pbmNsdWRlcyhwYW5lUmVjdC5yaWdodCkpXG4gICAgKSB7XG4gICAgICBjb25zdCBvcmlnaW5MZWZ0ID1cbiAgICAgICAgdHJpZ2dlckVsUmVhY3QubGVmdCAtIHBhbmVSZWN0LmxlZnQgKyB0cmlnZ2VyRWxSZWFjdC53aWR0aCAvIDI7XG4gICAgICBvcmlnaW5zWzBdID0gTWF0aC5taW4ob3JpZ2luTGVmdCwgcGFuZVJlY3Qud2lkdGgpICsgJ3B4JztcbiAgICB9XG4gICAgaWYgKFxuICAgICAgeU9yaWdpbiA9PT0gJ2NlbnRlcicgfHxcbiAgICAgICh5T3JpZ2luID09PSAndG9wJyAmJlxuICAgICAgICAhW3RyaWdnZXJFbFJlYWN0LmJvdHRvbSwgdHJpZ2dlckVsUmVhY3QudG9wXS5pbmNsdWRlcyhwYW5lUmVjdC50b3ApKSB8fCAvLyDkvY3nva7msqHmnInooqvlrozlhajooqvpoqDlgJLnmoRcbiAgICAgICh5T3JpZ2luID09PSAnYm90dG9tJyAmJlxuICAgICAgICAhW3RyaWdnZXJFbFJlYWN0LmJvdHRvbSwgdHJpZ2dlckVsUmVhY3QudG9wXS5pbmNsdWRlcyhwYW5lUmVjdC5ib3R0b20pKSAvLyDkvY3nva7msqHmnInooqvlrozlhajooqvpoqDlgJLnmoRcbiAgICApIHtcbiAgICAgIGNvbnN0IG9yaWdpblRvcCA9XG4gICAgICAgIHRyaWdnZXJFbFJlYWN0LnRvcCAtIHBhbmVSZWN0LnRvcCArIHRyaWdnZXJFbFJlYWN0LmhlaWdodCAvIDI7XG4gICAgICBvcmlnaW5zWzFdID0gTWF0aC5taW4ob3JpZ2luVG9wLCBwYW5lUmVjdC5oZWlnaHQpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgYW5pRWxzID0gcG9zaXRpb25TdHJhdGVneS5fYm91bmRpbmdCb3gucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5Ll90cmFuc2Zvcm1PcmlnaW5TZWxlY3RvcixcbiAgICApO1xuICAgIEFycmF5LmZyb20oYW5pRWxzKS5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IG9yaWdpbnMuam9pbignICcpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5jb21wb25lbnRDbGFzcyxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50SW5zID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpLmluc3RhbmNlO1xuICAgIHRoaXMuY29tcG9uZW50SW5zLnNldHVwSW5wdXRzKHtcbiAgICAgIGlucHV0Q2xhc3MkOiB0aGlzLmlucHV0Q2xhc3MkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGlucHV0Q29udGVudCQ6IHRoaXMuaW5wdXRDb250ZW50JCQuYXNPYnNlcnZhYmxlKCksXG4gICAgICBpbnB1dENvbnRleHQkOiB0aGlzLmlucHV0Q29udGV4dCQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRQb3NpdGlvbiQ6IHRoaXMuaW5wdXRQb3NpdGlvbiQkLmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgaW5wdXRUeXBlJDogdGhpcy5pbnB1dFR5cGUkJC5hc09ic2VydmFibGUoKSxcbiAgICAgIGRpc2FibGVBbmltYXRpb246IHRoaXMuZGlzYWJsZUFuaW1hdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBvbmVudElucy5oaWRlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgbWVyZ2UoXG4gICAgICAgIHRoaXMuY29tcG9uZW50SW5zLmJlZm9yZUhpZGUkLFxuICAgICAgICB0aGlzLmNvbXBvbmVudElucy5iZWZvcmVTaG93JC5waXBlKGRlbGF5KDApKSxcbiAgICAgIClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKHRoaXMuX3VwZGF0ZVRyYW5zZm9ybU9yaWdpbi5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3Zlcikge1xuICAgICAgdGhpcy5jb21wb25lbnRJbnMuaG92ZXIkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudElucy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoaG92ZXJlZCA9PiB7XG4gICAgICAgICAgdGhpcy5vblRvb2x0aXBIb3ZlcmVkKGhvdmVyZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5Ib3ZlciB8fFxuICAgICAgdGhpcy50cmlnZ2VyID09PSBUb29sdGlwVHJpZ2dlci5DbGlja1xuICAgICkge1xuICAgICAgdGhpcy51bmxpc3RlbkJvZHkgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgJ2JvZHknLFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICB0aGlzLm9uQm9keUNsaWNrLmJpbmQodGhpcyksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50SW5zPy5zaG93KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIF9kaXNwb3NlVG9vbHRpcCgpIHtcbiAgICB0aGlzLmNvbXBvbmVudElucz8uYW5pbWF0aW5nJCRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoYW5pbWF0aW5nID0+ICFhbmltYXRpbmcpLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnRJbnMgPSBudWxsO1xuICAgICAgICAgIHRoaXMudG9vbHRpcEhvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAodGhpcy51bmxpc3RlbkJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudW5saXN0ZW5Cb2R5KCk7XG4gICAgICAgICAgICB0aGlzLnVubGlzdGVuQm9keSA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICB0b2dnbGVUb29sdGlwKCkge1xuICAgIGlmICh0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgdGhpcy5fY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQW5pbWF0aW9uKSB7XG4gICAgICAvLyDlpoLmnpznpoHnlKjkuobliqjnlLvlsLHnq4vljbPplIDmr4HvvIzogIzkuI3mmK/nrYnliqjnlLvlrozmiJDkuovku7blkI7miY3plIDmr4FcbiAgICAgIHRoaXMuX2Rpc3Bvc2VUb29sdGlwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zPy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IFRvb2x0aXBUcmlnZ2VyLkhvdmVyKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxpc3RlbmVycygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGlzcG9zZVRvb2x0aXAoKTtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICBzd2l0Y2ggKHRoaXMudHJpZ2dlcikge1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5DbGljazpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdjbGljaycsXG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Ib3ZlcjpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykgYXMgKCkgPT4gdm9pZCxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgICAgICAgdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKSBhcyAoKSA9PiB2b2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUb29sdGlwVHJpZ2dlci5Gb2N1czpcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdmb2N1cycsXG4gICAgICAgICAgICB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2JsdXInLFxuICAgICAgICAgICAgdGhpcy5vbkJsdXIuYmluZCh0aGlzKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVG9vbHRpcFRyaWdnZXIuTWFudWFsOlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCh1bkxpc3RlbiA9PiB7XG4gICAgICB1bkxpc3RlbigpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT3ZlcmxheSgpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBvcmlnaW5Qb3NpdGlvbiA9IGdldE9yaWdpblBvc2l0aW9uKHRoaXMucG9zaXRpb24pO1xuICAgIGNvbnN0IG92ZXJsYXlQb3NpdGlvbiA9IGdldE92ZXJsYXlQb3NpdGlvbih0aGlzLnBvc2l0aW9uKTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsUmVmKVxuICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpXG4gICAgICAud2l0aFRyYW5zZm9ybU9yaWdpbk9uKCcuYXVpLXRvb2x0aXAnKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7IC4uLm9yaWdpblBvc2l0aW9uLm1haW4sIC4uLm92ZXJsYXlQb3NpdGlvbi5tYWluIH0sXG4gICAgICAgIHsgLi4ub3JpZ2luUG9zaXRpb24uZmFsbGJhY2ssIC4uLm92ZXJsYXlQb3NpdGlvbi5mYWxsYmFjayB9LFxuICAgICAgXSk7XG5cbiAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTW91c2VFbnRlcigpIHtcbiAgICB0aGlzLmhvc3RIb3ZlcmVkID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuaXNDcmVhdGVkKSB7XG4gICAgICBhd2FpdCBzbGVlcChESVNQTEFZX0RFTEFZKTtcbiAgICAgIGlmICh0aGlzLmhvc3RIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVRvb2x0aXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMuaG9zdEhvdmVyZWQgPSBmYWxzZTtcbiAgICBhd2FpdCBzbGVlcChISURERU5fREVMQVkpO1xuICAgIGlmICghdGhpcy50b29sdGlwSG92ZXJlZCAmJiAhdGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uVG9vbHRpcEhvdmVyZWQoaG92ZXJlZDogYm9vbGVhbikge1xuICAgIHRoaXMudG9vbHRpcEhvdmVyZWQgPSBob3ZlcmVkO1xuICAgIGlmICghaG92ZXJlZCkge1xuICAgICAgYXdhaXQgc2xlZXAoSElEREVOX0RFTEFZKTtcbiAgICAgIGlmICghdGhpcy50b29sdGlwSG92ZXJlZCAmJiAhdGhpcy5ob3N0SG92ZXJlZCkge1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DbGljaygpIHtcbiAgICB0aGlzLnRvZ2dsZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkJvZHlDbGljayhldmVudDogRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgKHRoaXMuaGlkZU9uQ2xpY2sgfHxcbiAgICAgICAgIXRoaXMuY29tcG9uZW50SW5zLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKVxuICAgICkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5fY3JlYXRlVG9vbHRpcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQmx1cigpIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -35,9 +35,9 @@ export class TooltipActiveDirective {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
TooltipActiveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
39
|
-
TooltipActiveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
+
TooltipActiveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipActiveDirective, deps: [{ token: i1.BaseTooltip }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
39
|
+
TooltipActiveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TooltipActiveDirective, selector: "[auiTooltipActive]", inputs: { customClass: ["auiTooltipActive", "customClass"] }, ngImport: i0 });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipActiveDirective, decorators: [{
|
|
41
41
|
type: Directive,
|
|
42
42
|
args: [{
|
|
43
43
|
selector: '[auiTooltipActive]',
|