@sbb-esta/lyne-elements 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete/autocomplete.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid.js +0 -1
- package/autocomplete.js +28 -28
- package/button/common/button-common.d.ts +1 -2
- package/button/common/button-common.d.ts.map +1 -1
- package/button/common.js +4 -4
- package/calendar/calendar.d.ts +55 -11
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +374 -224
- package/card/common/card-action-common.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +1 -1
- package/checkbox/common/checkbox-common.d.ts.map +1 -1
- package/clock/clock.d.ts +8 -0
- package/clock/clock.d.ts.map +1 -1
- package/clock.js +40 -31
- package/core/a11y/focus.d.ts.map +1 -1
- package/core/base-elements.js +36 -36
- package/core/controllers/escapable-overlay-controller.d.ts +11 -0
- package/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
- package/core/controllers/inert-controller.d.ts +3 -3
- package/core/controllers/inert-controller.d.ts.map +1 -1
- package/core/controllers.d.ts +1 -0
- package/core/controllers.d.ts.map +1 -1
- package/core/controllers.js +79 -52
- package/core/datetime/date-adapter.d.ts +4 -2
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime.js +51 -43
- package/core/decorators/date-converter.d.ts +8 -0
- package/core/decorators/date-converter.d.ts.map +1 -0
- package/core/decorators/date-only-type.d.ts +8 -0
- package/core/decorators/date-only-type.d.ts.map +1 -0
- package/core/decorators/force-type.d.ts +1 -1
- package/core/decorators/force-type.d.ts.map +1 -1
- package/core/decorators/get-override.d.ts.map +1 -1
- package/core/decorators/handle-distinct-change.d.ts.map +1 -1
- package/core/decorators/host-attributes.d.ts.map +1 -1
- package/core/decorators/slot-state.d.ts.map +1 -1
- package/core/decorators.d.ts +2 -0
- package/core/decorators.d.ts.map +1 -1
- package/core/decorators.js +61 -41
- package/core/dom/input-element.d.ts +1 -1
- package/core/dom/input-element.d.ts.map +1 -1
- package/core/dom.js +5 -5
- package/core/eventing/throttle.d.ts.map +1 -1
- package/core/i18n/i18n.d.ts +5 -0
- package/core/i18n/i18n.d.ts.map +1 -1
- package/core/i18n.js +138 -108
- package/core/mixins/animation-complete-mixin.d.ts +13 -0
- package/core/mixins/animation-complete-mixin.d.ts.map +1 -0
- package/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-input-mixin.d.ts +25 -0
- package/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
- package/core/mixins/form-associated-mixin.d.ts +13 -0
- package/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/core/mixins/hydration-mixin.d.ts.map +1 -1
- package/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/core/mixins/negative-mixin.d.ts.map +1 -1
- package/core/mixins/panel-mixin.d.ts.map +1 -1
- package/core/mixins/required-mixin.d.ts.map +1 -1
- package/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
- package/core/mixins.d.ts +2 -0
- package/core/mixins.d.ts.map +1 -1
- package/core/mixins.js +566 -341
- package/core/styles/core.scss +84 -1
- package/core/styles/mixins/link.scss +14 -0
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +3 -0
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +4 -1
- package/core/testing/mocha-extensions.d.ts.map +1 -1
- package/core/testing/wait-for-render.d.ts.map +1 -1
- package/core.css +53 -3
- package/custom-elements.json +37278 -30220
- package/date-input/date-input.d.ts +75 -0
- package/date-input/date-input.d.ts.map +1 -0
- package/date-input.d.ts +2 -0
- package/date-input.d.ts.map +1 -0
- package/date-input.js +155 -0
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.js +49 -45
- package/datepicker/datepicker/datepicker.d.ts +16 -6
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +41 -38
- package/datepicker/datepicker.js +95 -77
- package/development/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid.js +1 -2
- package/development/autocomplete.js +9 -4
- package/development/button/common/button-common.d.ts +1 -2
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common.js +26 -24
- package/development/calendar/calendar.d.ts +55 -11
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +301 -87
- package/development/card/common/card-action-common.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +2 -2
- package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
- package/development/clock/clock.d.ts +8 -0
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.js +20 -2
- package/development/core/a11y/focus.d.ts.map +1 -1
- package/development/core/a11y.js +1 -1
- package/development/core/base-elements.js +6 -6
- package/development/core/controllers/escapable-overlay-controller.d.ts +11 -0
- package/development/core/controllers/escapable-overlay-controller.d.ts.map +1 -0
- package/development/core/controllers/inert-controller.d.ts +3 -3
- package/development/core/controllers/inert-controller.d.ts.map +1 -1
- package/development/core/controllers.d.ts +1 -0
- package/development/core/controllers.d.ts.map +1 -1
- package/development/core/controllers.js +41 -7
- package/development/core/datetime/date-adapter.d.ts +4 -2
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/native-date-adapter.d.ts +1 -1
- package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/development/core/datetime.js +14 -2
- package/development/core/decorators/date-converter.d.ts +8 -0
- package/development/core/decorators/date-converter.d.ts.map +1 -0
- package/development/core/decorators/date-only-type.d.ts +8 -0
- package/development/core/decorators/date-only-type.d.ts.map +1 -0
- package/development/core/decorators/force-type.d.ts +1 -1
- package/development/core/decorators/force-type.d.ts.map +1 -1
- package/development/core/decorators/get-override.d.ts.map +1 -1
- package/development/core/decorators/handle-distinct-change.d.ts.map +1 -1
- package/development/core/decorators/host-attributes.d.ts.map +1 -1
- package/development/core/decorators/slot-state.d.ts.map +1 -1
- package/development/core/decorators.d.ts +2 -0
- package/development/core/decorators.d.ts.map +1 -1
- package/development/core/decorators.js +27 -6
- package/development/core/dom/input-element.d.ts +1 -1
- package/development/core/dom/input-element.d.ts.map +1 -1
- package/development/core/dom.js +3 -3
- package/development/core/eventing/throttle.d.ts.map +1 -1
- package/development/core/i18n/i18n.d.ts +5 -0
- package/development/core/i18n/i18n.d.ts.map +1 -1
- package/development/core/i18n.js +36 -1
- package/development/core/mixins/animation-complete-mixin.d.ts +13 -0
- package/development/core/mixins/animation-complete-mixin.d.ts.map +1 -0
- package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-input-mixin.d.ts +25 -0
- package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -0
- package/development/core/mixins/form-associated-mixin.d.ts +13 -0
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/development/core/mixins/hydration-mixin.d.ts.map +1 -1
- package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/development/core/mixins/negative-mixin.d.ts.map +1 -1
- package/development/core/mixins/panel-mixin.d.ts.map +1 -1
- package/development/core/mixins/required-mixin.d.ts.map +1 -1
- package/development/core/mixins/update-scheduler-mixin.d.ts.map +1 -1
- package/development/core/mixins.d.ts +2 -0
- package/development/core/mixins.d.ts.map +1 -1
- package/development/core/mixins.js +428 -88
- package/development/core/testing/mocha-extensions.d.ts.map +1 -1
- package/development/core/testing/wait-for-render.d.ts.map +1 -1
- package/development/date-input/date-input.d.ts +75 -0
- package/development/date-input/date-input.d.ts.map +1 -0
- package/development/date-input.d.ts +2 -0
- package/development/date-input.d.ts.map +1 -0
- package/development/date-input.js +267 -0
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.js +11 -2
- package/development/datepicker/datepicker/datepicker.d.ts +16 -6
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +12 -3
- package/development/datepicker/datepicker.js +66 -39
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog-title/dialog-title.d.ts +3 -1
- package/development/dialog/dialog-title/dialog-title.d.ts.map +1 -1
- package/development/dialog/dialog-title.js +7 -2
- package/development/dialog/dialog.js +3 -1
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel.js +2 -2
- package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/development/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +5 -3
- package/development/form-field/form-field/form-field.d.ts +1 -1
- package/development/form-field/form-field/form-field.d.ts.map +1 -1
- package/development/form-field/form-field.js +19 -13
- package/development/header/common/header-action-common.d.ts.map +1 -1
- package/development/header/common.js +2 -2
- package/development/icon/icon-name-mixin.d.ts.map +1 -1
- package/development/icon/icon-request.d.ts.map +1 -1
- package/development/icon/icon-validate.d.ts.map +1 -1
- package/development/link/common/block-link-common.d.ts.map +1 -1
- package/development/link/common/inline-link-common.d.ts.map +1 -1
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common.js +13 -1
- package/development/menu/common/menu-action-common.d.ts.map +1 -1
- package/development/menu/menu/menu.d.ts +1 -1
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +8 -15
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/navigation/navigation.d.ts +1 -3
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation.js +11 -21
- package/development/overlay/overlay-base-element.d.ts +2 -2
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay.d.ts.map +1 -1
- package/development/overlay.js +9 -13
- package/development/paginator/common/paginator-common.d.ts.map +1 -1
- package/development/popover/popover/popover.d.ts +1 -1
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +5 -15
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +2 -2
- package/development/sbb-tokens-CSAKTXUi.js +1 -1
- package/development/select/select.d.ts +3 -1
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +12 -8
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +2 -2
- package/development/sidebar/common.d.ts +1 -0
- package/development/sidebar/common.d.ts.map +1 -0
- package/development/sidebar/common.js +114 -0
- package/development/sidebar/icon-sidebar/icon-sidebar.d.ts +23 -0
- package/development/sidebar/icon-sidebar/icon-sidebar.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts +19 -0
- package/development/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-button.d.ts +2 -0
- package/development/sidebar/icon-sidebar-button.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-button.js +28 -0
- package/development/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts +23 -0
- package/development/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-container.d.ts +2 -0
- package/development/sidebar/icon-sidebar-container.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-container.js +45 -0
- package/development/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts +17 -0
- package/development/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-content.d.ts +2 -0
- package/development/sidebar/icon-sidebar-content.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-content.js +34 -0
- package/development/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts +19 -0
- package/development/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-link.d.ts +2 -0
- package/development/sidebar/icon-sidebar-link.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar-link.js +28 -0
- package/development/sidebar/icon-sidebar.d.ts +2 -0
- package/development/sidebar/icon-sidebar.d.ts.map +1 -0
- package/development/sidebar/icon-sidebar.js +85 -0
- package/development/sidebar/sidebar/sidebar.d.ts +76 -0
- package/development/sidebar/sidebar/sidebar.d.ts.map +1 -0
- package/development/sidebar/sidebar-close-button/sidebar-close-button.d.ts +22 -0
- package/development/sidebar/sidebar-close-button/sidebar-close-button.d.ts.map +1 -0
- package/development/sidebar/sidebar-close-button.d.ts +2 -0
- package/development/sidebar/sidebar-close-button.d.ts.map +1 -0
- package/development/sidebar/sidebar-close-button.js +55 -0
- package/development/sidebar/sidebar-container/sidebar-container.d.ts +34 -0
- package/development/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -0
- package/development/sidebar/sidebar-container.d.ts +2 -0
- package/development/sidebar/sidebar-container.d.ts.map +1 -0
- package/development/sidebar/sidebar-container.js +153 -0
- package/development/sidebar/sidebar-content/sidebar-content.d.ts +18 -0
- package/development/sidebar/sidebar-content/sidebar-content.d.ts.map +1 -0
- package/development/sidebar/sidebar-content.d.ts +2 -0
- package/development/sidebar/sidebar-content.d.ts.map +1 -0
- package/development/sidebar/sidebar-content.js +37 -0
- package/development/sidebar/sidebar-title/sidebar-title.d.ts +17 -0
- package/development/sidebar/sidebar-title/sidebar-title.d.ts.map +1 -0
- package/development/sidebar/sidebar-title.d.ts +2 -0
- package/development/sidebar/sidebar-title.d.ts.map +1 -0
- package/development/sidebar/sidebar-title.js +63 -0
- package/development/sidebar/sidebar.d.ts +2 -0
- package/development/sidebar/sidebar.d.ts.map +1 -0
- package/development/sidebar/sidebar.js +523 -0
- package/development/sidebar.d.ts +12 -0
- package/development/sidebar.d.ts.map +1 -0
- package/development/sidebar.js +12 -0
- package/development/stepper/step/step.d.ts +0 -2
- package/development/stepper/step/step.d.ts.map +1 -1
- package/development/stepper/step.js +19 -23
- package/development/stepper/stepper/stepper.d.ts +11 -0
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +30 -3
- package/development/tag/tag/tag.d.ts +11 -0
- package/development/tag/tag/tag.d.ts.map +1 -1
- package/development/tag/tag-group/tag-group.d.ts +1 -1
- package/development/tag/tag-group/tag-group.d.ts.map +1 -1
- package/development/tag/tag-group.js +9 -3
- package/development/tag/tag.js +37 -10
- package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
- package/development/time-input/time-input.d.ts +3 -2
- package/development/time-input/time-input.d.ts.map +1 -1
- package/development/time-input.js +19 -10
- package/development/title/title-base.d.ts +2 -4
- package/development/title/title-base.d.ts.map +1 -1
- package/development/title/title.d.ts +3 -1
- package/development/title/title.d.ts.map +1 -1
- package/development/title.js +8 -8
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-title/dialog-title.d.ts +3 -1
- package/dialog/dialog-title/dialog-title.d.ts.map +1 -1
- package/dialog/dialog-title.js +16 -15
- package/dialog/dialog.js +2 -2
- package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/expansion-panel/expansion-panel.js +1 -1
- package/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/flip-card/flip-card-details/flip-card-details.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +14 -13
- package/form-field/form-field/form-field.d.ts +1 -1
- package/form-field/form-field/form-field.d.ts.map +1 -1
- package/form-field/form-field.js +30 -24
- package/header/common/header-action-common.d.ts.map +1 -1
- package/header/common.js +6 -6
- package/icon/icon-name-mixin.d.ts.map +1 -1
- package/icon/icon-request.d.ts.map +1 -1
- package/icon/icon-validate.d.ts.map +1 -1
- package/index.d.ts +22 -0
- package/index.js +22 -0
- package/link/common/block-link-common.d.ts.map +1 -1
- package/link/common/inline-link-common.d.ts.map +1 -1
- package/link/common/link-common.d.ts.map +1 -1
- package/link/common.js +12 -12
- package/menu/common/menu-action-common.d.ts.map +1 -1
- package/menu/menu/menu.d.ts +1 -1
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +26 -35
- package/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/navigation/navigation/navigation.d.ts +1 -3
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation.js +47 -56
- package/overlay/overlay-base-element.d.ts +2 -2
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay.d.ts.map +1 -1
- package/overlay.js +58 -64
- package/package.json +66 -1
- package/paginator/common/paginator-common.d.ts.map +1 -1
- package/popover/popover/popover.d.ts +1 -1
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +101 -110
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +1 -1
- package/select/select.d.ts +3 -1
- package/select/select.d.ts.map +1 -1
- package/select.js +39 -37
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +1 -1
- package/sidebar/common.d.ts +1 -0
- package/sidebar/common.d.ts.map +1 -0
- package/sidebar/common.js +7 -0
- package/sidebar/icon-sidebar/icon-sidebar.d.ts +23 -0
- package/sidebar/icon-sidebar/icon-sidebar.d.ts.map +1 -0
- package/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts +19 -0
- package/sidebar/icon-sidebar-button/icon-sidebar-button.d.ts.map +1 -0
- package/sidebar/icon-sidebar-button.d.ts +2 -0
- package/sidebar/icon-sidebar-button.d.ts.map +1 -0
- package/sidebar/icon-sidebar-button.js +20 -0
- package/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts +23 -0
- package/sidebar/icon-sidebar-container/icon-sidebar-container.d.ts.map +1 -0
- package/sidebar/icon-sidebar-container.d.ts +2 -0
- package/sidebar/icon-sidebar-container.d.ts.map +1 -0
- package/sidebar/icon-sidebar-container.js +35 -0
- package/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts +17 -0
- package/sidebar/icon-sidebar-content/icon-sidebar-content.d.ts.map +1 -0
- package/sidebar/icon-sidebar-content.d.ts +2 -0
- package/sidebar/icon-sidebar-content.d.ts.map +1 -0
- package/sidebar/icon-sidebar-content.js +23 -0
- package/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts +19 -0
- package/sidebar/icon-sidebar-link/icon-sidebar-link.d.ts.map +1 -0
- package/sidebar/icon-sidebar-link.d.ts +2 -0
- package/sidebar/icon-sidebar-link.d.ts.map +1 -0
- package/sidebar/icon-sidebar-link.js +20 -0
- package/sidebar/icon-sidebar.d.ts +2 -0
- package/sidebar/icon-sidebar.d.ts.map +1 -0
- package/sidebar/icon-sidebar.js +47 -0
- package/sidebar/sidebar/sidebar.d.ts +76 -0
- package/sidebar/sidebar/sidebar.d.ts.map +1 -0
- package/sidebar/sidebar-close-button/sidebar-close-button.d.ts +22 -0
- package/sidebar/sidebar-close-button/sidebar-close-button.d.ts.map +1 -0
- package/sidebar/sidebar-close-button.d.ts +2 -0
- package/sidebar/sidebar-close-button.d.ts.map +1 -0
- package/sidebar/sidebar-close-button.js +29 -0
- package/sidebar/sidebar-container/sidebar-container.d.ts +34 -0
- package/sidebar/sidebar-container/sidebar-container.d.ts.map +1 -0
- package/sidebar/sidebar-container.d.ts +2 -0
- package/sidebar/sidebar-container.d.ts.map +1 -0
- package/sidebar/sidebar-container.js +78 -0
- package/sidebar/sidebar-content/sidebar-content.d.ts +18 -0
- package/sidebar/sidebar-content/sidebar-content.d.ts.map +1 -0
- package/sidebar/sidebar-content.d.ts +2 -0
- package/sidebar/sidebar-content.d.ts.map +1 -0
- package/sidebar/sidebar-content.js +23 -0
- package/sidebar/sidebar-title/sidebar-title.d.ts +17 -0
- package/sidebar/sidebar-title/sidebar-title.d.ts.map +1 -0
- package/sidebar/sidebar-title.d.ts +2 -0
- package/sidebar/sidebar-title.d.ts.map +1 -0
- package/sidebar/sidebar-title.js +37 -0
- package/sidebar/sidebar.d.ts +2 -0
- package/sidebar/sidebar.d.ts.map +1 -0
- package/sidebar/sidebar.js +214 -0
- package/sidebar.d.ts +12 -0
- package/sidebar.d.ts.map +1 -0
- package/sidebar.js +11 -0
- package/standard-theme.css +53 -3
- package/stepper/step/step.d.ts +0 -2
- package/stepper/step/step.d.ts.map +1 -1
- package/stepper/step.js +23 -35
- package/stepper/stepper/stepper.d.ts +11 -0
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +59 -41
- package/tag/tag/tag.d.ts +11 -0
- package/tag/tag/tag.d.ts.map +1 -1
- package/tag/tag-group/tag-group.d.ts +1 -1
- package/tag/tag-group/tag-group.d.ts.map +1 -1
- package/tag/tag-group.js +32 -29
- package/tag/tag.js +60 -41
- package/teaser-product/common/teaser-product-common.d.ts.map +1 -1
- package/time-input/time-input.d.ts +3 -2
- package/time-input/time-input.d.ts.map +1 -1
- package/time-input.js +44 -36
- package/title/title-base.d.ts +2 -4
- package/title/title-base.d.ts.map +1 -1
- package/title/title.d.ts +3 -1
- package/title/title.d.ts.map +1 -1
- package/title.js +11 -11
|
@@ -2,8 +2,10 @@ import { SbbLanguageController } from "./controllers.js";
|
|
|
2
2
|
const DAYS_PER_ROW = 7;
|
|
3
3
|
const MONTHS_PER_ROW = 4;
|
|
4
4
|
const YEARS_PER_ROW = 4;
|
|
5
|
+
const MONTHS_PER_PAGE = 12;
|
|
5
6
|
const YEARS_PER_PAGE = 24;
|
|
6
7
|
const FORMAT_DATE = /(^0?[1-9]?|[12]?[0-9]?|3?[01]?)[.,\\/\-\s](0?[1-9]?|1?[0-2]?)?[.,\\/\-\s](\d{1,4}$)?/;
|
|
8
|
+
const ISO8601_FORMAT_DATE = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
7
9
|
class DateAdapter {
|
|
8
10
|
/**
|
|
9
11
|
* Attempts to deserialize a value to a valid date object. This is different from parsing in that
|
|
@@ -34,6 +36,9 @@ class DateAdapter {
|
|
|
34
36
|
month: "2-digit",
|
|
35
37
|
year: "numeric"
|
|
36
38
|
});
|
|
39
|
+
if ((options == null ? void 0 : options.weekdayStyle) === "none") {
|
|
40
|
+
return dateFormatter.format(value);
|
|
41
|
+
}
|
|
37
42
|
const weekdayStyle = (options == null ? void 0 : options.weekdayStyle) ?? "short";
|
|
38
43
|
let weekday = this.getDayOfWeekNames(weekdayStyle)[this.getDayOfWeek(date)];
|
|
39
44
|
weekday = weekday.charAt(0).toUpperCase() + weekday.substring(1);
|
|
@@ -244,10 +249,15 @@ class NativeDateAdapter extends DateAdapter {
|
|
|
244
249
|
return super.deserialize(date);
|
|
245
250
|
}
|
|
246
251
|
/** Returns the right format for the `valueAsDate` property. */
|
|
247
|
-
parse(value, now) {
|
|
252
|
+
parse(value, now = this.today()) {
|
|
248
253
|
if (!value) {
|
|
249
254
|
return null;
|
|
250
255
|
}
|
|
256
|
+
const isoMatch = value.match(ISO8601_FORMAT_DATE);
|
|
257
|
+
const date = isoMatch ? this.createDate(+isoMatch[1], +isoMatch[2], +isoMatch[3]) : null;
|
|
258
|
+
if (this.isValid(date)) {
|
|
259
|
+
return date;
|
|
260
|
+
}
|
|
251
261
|
const strippedValue = value.replace(/\D/g, " ").trim();
|
|
252
262
|
const match = strippedValue == null ? void 0 : strippedValue.match(FORMAT_DATE);
|
|
253
263
|
if (!match || match.index !== 0 || match.length <= 2 || match.some((e) => e === void 0) || !this.isValid(this.createDate(+match[3], +match[2], +match[1]))) {
|
|
@@ -285,10 +295,12 @@ export {
|
|
|
285
295
|
DAYS_PER_ROW,
|
|
286
296
|
DateAdapter,
|
|
287
297
|
FORMAT_DATE,
|
|
298
|
+
ISO8601_FORMAT_DATE,
|
|
299
|
+
MONTHS_PER_PAGE,
|
|
288
300
|
MONTHS_PER_ROW,
|
|
289
301
|
NativeDateAdapter,
|
|
290
302
|
YEARS_PER_PAGE,
|
|
291
303
|
YEARS_PER_ROW,
|
|
292
304
|
defaultDateAdapter
|
|
293
305
|
};
|
|
294
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IFlFQVJTX1BFUl9QQUdFOiBudW1iZXIgPSAyNDtcbmV4cG9ydCBjb25zdCBGT1JNQVRfREFURSA9XG4gIC8oXjA/WzEtOV0/fFsxMl0/WzAtOV0/fDM/WzAxXT8pWy4sXFxcXC9cXC1cXHNdKDA/WzEtOV0/fDE/WzAtMl0/KT9bLixcXFxcL1xcLVxcc10oXFxkezEsNH0kKT8vO1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHllYXIgYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0WWVhcihkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vbnRoIGFzIGEgbnVtYmVyLlxuICAgKiBBdHRlbnRpb246IFRoaXMgcmV0dXJucyAxLTEyIGFuZCBtaXRpZ2F0ZXMgdGhlIGRlZmF1bHQgSmF2YVNjcmlwdCBEYXRlIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF5IG9mIHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgRGF5IG9mIHRoZSB3ZWVrIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2VlayhkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKiBHZXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMDogc3VuZGF5OyAxOiBtb25kYXk7IGV0Yy4pLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGguXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBkZXNlcmlhbGl6ZSBhIHZhbHVlIHRvIGEgdmFsaWQgZGF0ZSBvYmplY3QuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gcGFyc2luZyBpbiB0aGF0XG4gICAqIGRlc2VyaWFsaXplIHNob3VsZCBvbmx5IGFjY2VwdCBub24tYW1iaWd1b3VzLCBsb2NhbGUtaW5kZXBlbmRlbnQgZm9ybWF0cyAoZS5nLiBhIElTTyA4NjAxXG4gICAqIHN0cmluZykuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IGFueSBkZXNlcmlhbGl6YXRpb24sIGl0IHNpbXBseSBjaGVja3MgdGhhdFxuICAgKiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYWxyZWFkeSBhIHZhbGlkIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEBwYXJhbSB2YWx1ZSBFaXRoZXIgRGF0ZSwgSVNPU3RyaW5nLCBVbml4IFRpbWVzdGFtcCAobnVtYmVyIG9mIHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzApLlxuICAgKiBAcmV0dXJucyBUaGUgZGF0ZSBpZiB0aGUgaW5wdXQgaXMgdmFsaWQsIGBudWxsYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZGVzZXJpYWxpemUodmFsdWU6IFQgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogVCB8IG51bGwge1xuICAgIGlmIChcbiAgICAgIHZhbHVlID09IG51bGwgfHxcbiAgICAgICh0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCB8IG51bGwgfCB1bmRlZmluZWQpKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZhbHVlIGFzIFQgfCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGB5ZWFyc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSB5ZWFycyBUaGUgbnVtYmVyIG9mIHllYXJzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhclllYXJzKGRhdGU6IFQsIHllYXJzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYG1vbnRoc2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogSWYgdGhlIGNhbGN1bGF0ZWQgbW9udGggaGFzIGZld2VyIGRheXMgdGhhbiB0aGUgb3JpZ2luYWwgb25lLCB0aGUgZGF0ZSBpcyBzZXQgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aC5cbiAgICogRS5nLiB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBtb250aHMgVGhlIG51bWJlciBvZiBtb250aHMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBkYXlzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIGRheXMgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhckRheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdFxuICAgKiBAcmV0dXJucyBUaGUgYGRhdGVgIGluIHRoZSBsb2NhbCBmb3JtYXQgYXMgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGU6IFQgfCBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZ2l2ZW4gc3RyaW5nIGFzIERhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgZGF0ZSBpbiB0aGUgZm9ybWF0IERELk1NLllZWVkuXG4gICAqIEBwYXJhbSBub3cgVGhlIGN1cnJlbnQgZGF0ZSBhcyBEYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBub3c6IFQpOiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBnaXZlbiBkYXRlIGFzIHN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIG9iamVjdCB3aXRoIHdlZWtkYXlTdHlsZSBhcyBwcm9wZXJ0eVxuICAgKi9cbiAgcHVibGljIGZvcm1hdChcbiAgICBkYXRlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zPzogeyB3ZWVrZGF5U3R5bGU/OiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycgfSxcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gbmV3IERhdGUodGhpcy50b0lzbzg2MDEoZGF0ZSEpICsgJ1QwMDowMDowMCcpO1xuICAgIGNvbnN0IGRhdGVGb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZGUtQ0gnLCB7XG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgfSk7XG5cbiAgICBjb25zdCB3ZWVrZGF5U3R5bGUgPSBvcHRpb25zPy53ZWVrZGF5U3R5bGUgPz8gJ3Nob3J0JztcbiAgICBsZXQgd2Vla2RheSA9IHRoaXMuZ2V0RGF5T2ZXZWVrTmFtZXMod2Vla2RheVN0eWxlKVt0aGlzLmdldERheU9mV2VlayhkYXRlISldO1xuICAgIHdlZWtkYXkgPSB3ZWVrZGF5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd2Vla2RheS5zdWJzdHJpbmcoMSk7XG4gICAgLy8gV2UgaGF2ZSB0aGUgc3BlY2lhbCByZXF1aXJlbWVudCBmb3IgZGF0ZSBmb3JtYXRzIGF0IFNCQiwgd2hlcmUgdGhlIHNob3J0IGZvcm1cbiAgICAvLyBmb3Igd2Vla2RheXMgc2hvdWxkIGJlIHR3byBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAgICBpZiAod2Vla2RheVN0eWxlID09PSAnc2hvcnQnKSB7XG4gICAgICB3ZWVrZGF5ID0gd2Vla2RheS5zdWJzdHJpbmcoMCwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dlZWtkYXl9LCAke2RhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuXG4gICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldHMgZGF0ZSBpbnN0YW5jZSB0aGF0IGlzIG5vdCB2YWxpZC5cbiAgICogQHJldHVybnMgQW4gaW52YWxpZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGludmFsaWQoKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBkYXRlIGFzIElTTyBTdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGNvbnZlcnQgdG8gSVNPIFN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogVCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFkID0gKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDIpOiBzdHJpbmcgPT4gYCR7dmFsdWV9YC5wYWRTdGFydChsZW5ndGgsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZCh0aGlzLmdldFllYXIoZGF0ZSksIDQpfS0ke3BhZCh0aGlzLmdldE1vbnRoKGRhdGUpKX0tJHtwYWQodGhpcy5nZXREYXRlKGRhdGUpKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgcG90ZW50aWFsIGRhdGUgb2JqZWN0LCByZXR1cm5zIHRoYXQgc2FtZSBkYXRlIG9iamVjdCBpZiBpdCBpc1xuICAgKiBhIHZhbGlkIGRhdGUsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBhIHZhbGlkIGRhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBBIGRhdGUgb3IgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldFZhbGlkRGF0ZU9yTnVsbCh2YWx1ZTogdW5rbm93bik6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQpID8gKHZhbHVlIGFzIFQpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGgsIGFuZCB0aGVuIGl0cyBvZmZzZXQgZnJvbSB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIGdldEZpcnN0V2Vla09mZnNldChkYXRlOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBmaXJzdE9mTW9udGggPSB0aGlzLmNyZWF0ZURhdGUodGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAxKSE7XG4gICAgcmV0dXJuIChcbiAgICAgIChEQVlTX1BFUl9ST1cgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIERBWVNfUEVSX1JPV1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iLCJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyLCBGT1JNQVRfREFURSB9IGZyb20gJy4vZGF0ZS1hZGFwdGVyLmpzJztcblxuLyoqXG4gKiBNYXRjaGVzIHN0cmluZ3MgdGhhdCBoYXZlIHRoZSBmb3JtIG9mIGEgdmFsaWQgUkZDIDMzMzkgc3RyaW5nXG4gKiAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkpLiBOb3RlIHRoYXQgdGhlIHN0cmluZyBtYXkgbm90IGFjdHVhbGx5IGJlIGEgdmFsaWQgZGF0ZVxuICogYmVjYXVzZSB0aGUgcmVnZXggd2lsbCBtYXRjaCBzdHJpbmdzIGFuIHdpdGhvdXQgb2YgYm91bmRzIG1vbnRoLCBkYXRlLCBldGMuXG4gKi9cbmNvbnN0IElTT184NjAxX1JFR0VYID1cbiAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfSg/OlRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspPyg/Olp8KD86KD86XFwrfC0pXFxkezJ9OlxcZHsyfSkpPyk/JC87XG5cbmV4cG9ydCBjbGFzcyBOYXRpdmVEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERhdGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3V0b2ZmWWVhck9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXIgPSAxNSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qIERlZmluZXMgd2hpY2ggaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMDogc3VuZGF5OyAxOiBtb25kYXk7IGV0Yy4pLiAqL1xuICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoIGdpdmVuIHRoZSB5ZWFyIGFuZCB0aGUgbW9udGguICovXG4gIHB1YmxpYyBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlKHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3codGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAwKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycygwLCAwLCAwLCAwKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIGluZGV4IFwiJHttb250aH1cIi4gTW9udGggaW5kZXggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiLiBEYXRlIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF0ZSk7XG4gICAgLy8gQ2hlY2sgdGhhdCB0aGUgZGF0ZSB3YXNuJ3QgYWJvdmUgdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgbW9udGgsIGNhdXNpbmcgdGhlIG1vbnRoIHRvIG92ZXJmbG93XG4gICAgaWYgKHJlc3VsdC5nZXRNb250aCgpICsgMSAhPT0gbW9udGgpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS4gKi9cbiAgcHVibGljIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBkYXRlYCBpcyBhIHZhbGlkIERhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBEYXRlIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUuaW5jbHVkZXMoJ1QnKSA/IGRhdGUgOiBkYXRlICsgJ1QwMDowMDowMCcpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSBub3cuZ2V0RnVsbFllYXIoKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCArbWF0Y2hbMl0gLSAxLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGludmFsaWQoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoZSBnaXZlbiBsZW5ndGggYW5kIGZpbGxzIGl0IGJ5IG1hcHBpbmcgd2l0aCB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHZhbHVlRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIG9mIGFycmF5J3MgaW5kZXggdXNlZCB0byBmaWxsIHRoZSBhcnJheS5cbiAgICovXG4gIHByaXZhdGUgX3JhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSkubWFwKChfLCBpKSA9PiB2YWx1ZUZ1bmN0aW9uKGkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgZGF0ZSBidXQgYWxsb3dzIHRoZSBtb250aCBhbmQgZGF0ZSB0byBvdmVyZmxvdy4gKi9cbiAgcHJpdmF0ZSBfY3JlYXRlRGF0ZVdpdGhPdmVyZmxvdyh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXRlKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoZSBmYWN0IHRoYXQgSlMgbmF0aXZlIERhdGUgdHJlYXRzIHllYXJzIGluIHJhbmdlIFswLCA5OV0gYXNcbiAgICAvLyBhYmJyZXZpYXRpb25zIGZvciAxOXh4LlxuICAgIGlmICh5ZWFyID49IDAgJiYgeWVhciA8IDEwMCkge1xuICAgICAgcmVzdWx0LnNldEZ1bGxZZWFyKHRoaXMuZ2V0WWVhcihyZXN1bHQpIC0gMTkwMCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXRlQWRhcHRlciA9IG5ldyBOYXRpdmVEYXRlQWRhcHRlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBTyxNQUFNLGVBQXVCO0FBQzdCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sZ0JBQXdCO0FBQzlCLE1BQU0saUJBQXlCO0FBQy9CLE1BQU0sY0FDWDtNQU9vQixZQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0Z4QixZQUFZLE9BQTZDO0FBRTVELFFBQUEsU0FBUyxRQUNSLEtBQUssZUFBZSxLQUFLLEtBQUssS0FBSyxRQUFRLEtBQTZCLEdBQ3pFO0FBQ08sYUFBQTtBQUFBLElBQUE7QUFFVCxXQUFPLEtBQUssUUFBTztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUE2Q2QsT0FDTCxNQUNBLFNBQXdEO0FBRXhELFFBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHO0FBQ2hCLGFBQUE7QUFBQSxJQUFBO0FBR1QsVUFBTSxRQUFZLG9CQUFBLEtBQUssS0FBSyxVQUFVLElBQUssSUFBSSxXQUFXO0FBQzFELFVBQU0sZ0JBQWdCLElBQUksS0FBSyxlQUFlLFNBQVM7QUFBQSxNQUNyRCxLQUFLO0FBQUEsTUFDTCxPQUFPO0FBQUEsTUFDUCxNQUFNO0FBQUEsSUFBQSxDQUNQO0FBRUssVUFBQSxnQkFBZSxtQ0FBUyxpQkFBZ0I7QUFDMUMsUUFBQSxVQUFVLEtBQUssa0JBQWtCLFlBQVksRUFBRSxLQUFLLGFBQWEsSUFBSyxDQUFD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
|
|
306
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL25hdGl2ZS1kYXRlLWFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuZXhwb3J0IGNvbnN0IEZPUk1BVF9EQVRFID1cbiAgLyheMD9bMS05XT98WzEyXT9bMC05XT98Mz9bMDFdPylbLixcXFxcL1xcLVxcc10oMD9bMS05XT98MT9bMC0yXT8pP1suLFxcXFwvXFwtXFxzXShcXGR7MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkkLztcblxuLyoqXG4gKiBBYnN0cmFjdCBkYXRlIGZ1bmN0aW9uYWxpdHkuXG4gKlxuICogQWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYWluL3NyYy9tYXRlcmlhbC9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0geWVhclxuICAgKiBAcGFyYW0gbW9udGhcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgbW9udGhzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBHZXQgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgd2VlayBkYXlzIGluIGEgZ2l2ZW4gc3R5bGUuXG4gICAqIEBwYXJhbSBzdHlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXTtcblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0b2RheSgpOiBUO1xuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIGBkYXRlYCBpcyB2YWxpZC5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc1ZhbGlkKGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgY2xvbmluZyB0aGUgZ2l2ZW4gb25lLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb25lKGRhdGU6IFQpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUsIGdpdmVuIGRheSwgbW9udGggYW5kIHllYXI7IHdpdGhvdXQgZGF0ZSdzIG92ZXJmbG93LlxuICAgKiBAcGFyYW0geWVhclxuICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIG9mIHRoZSBkYXRlICgxLWluZGV4ZWQsIDEgPSBKYW51YXJ5KS4gTXVzdCBiZSBhbiBpbnRlZ2VyIDEgLSAxMi5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIERhdGUsIElTT1N0cmluZywgVW5peCBUaW1lc3RhbXAgKG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIEphbiAxLCAxOTcwKS5cbiAgICogQHJldHVybnMgVGhlIGRhdGUgaWYgdGhlIGlucHV0IGlzIHZhbGlkLCBgbnVsbGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIGRlc2VyaWFsaXplKHZhbHVlOiBUIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PSBudWxsIHx8XG4gICAgICAodGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQgfCBudWxsIHwgdW5kZWZpbmVkKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBUIHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBULCB5ZWFyczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4gd2l0aCBgZGF0ZWAgPSBuZXcgRGF0ZSgyMDIyLCAwLCAzMSkgYW5kIGBtb250aHNgID0gMSwgaXQgcmV0dXJucyBuZXcgRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gbW9udGhzIFRoZSBudW1iZXIgb2YgbW9udGhzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBULCBtb250aHM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIHN0YXJ0aW5nIGRhdGUuXG4gICAqIEBwYXJhbSBkYXlzIFRoZSBudW1iZXIgb2YgZGF5cyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJEYXlzKGRhdGU6IFQsIGRheXM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGF0ZSBpbiB0aGUgbG9jYWwgZm9ybWF0LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXRcbiAgICogQHJldHVybnMgVGhlIGBkYXRlYCBpbiB0aGUgbG9jYWwgZm9ybWF0IGFzIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUIHwgc3RyaW5nKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIHN0cmluZyBhcyBEYXRlLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGRhdGUgaW4gdGhlIGZvcm1hdCBERC5NTS5ZWVlZLlxuICAgKiBAcGFyYW0gbm93IFRoZSBjdXJyZW50IGRhdGUgYXMgRGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgbm93PzogVCk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGdpdmVuIGRhdGUgYXMgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgZGF0ZSB0byBmb3JtYXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0IHdpdGggd2Vla2RheVN0eWxlIGFzIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZm9ybWF0KFxuICAgIGRhdGU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiB7IHdlZWtkYXlTdHlsZT86ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93JyB8ICdub25lJyB9LFxuICApOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnRvSXNvODYwMShkYXRlISkgKyAnVDAwOjAwOjAwJyk7XG4gICAgY29uc3QgZGF0ZUZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdkZS1DSCcsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zPy53ZWVrZGF5U3R5bGUgPT09ICdub25lJykge1xuICAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3ZWVrZGF5U3R5bGUgPSBvcHRpb25zPy53ZWVrZGF5U3R5bGUgPz8gJ3Nob3J0JztcbiAgICBsZXQgd2Vla2RheSA9IHRoaXMuZ2V0RGF5T2ZXZWVrTmFtZXMod2Vla2RheVN0eWxlKVt0aGlzLmdldERheU9mV2VlayhkYXRlISldO1xuICAgIHdlZWtkYXkgPSB3ZWVrZGF5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd2Vla2RheS5zdWJzdHJpbmcoMSk7XG4gICAgLy8gV2UgaGF2ZSB0aGUgc3BlY2lhbCByZXF1aXJlbWVudCBmb3IgZGF0ZSBmb3JtYXRzIGF0IFNCQiwgd2hlcmUgdGhlIHNob3J0IGZvcm1cbiAgICAvLyBmb3Igd2Vla2RheXMgc2hvdWxkIGJlIHR3byBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAgICBpZiAod2Vla2RheVN0eWxlID09PSAnc2hvcnQnKSB7XG4gICAgICB3ZWVrZGF5ID0gd2Vla2RheS5zdWJzdHJpbmcoMCwgMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dlZWtkYXl9LCAke2RhdGVGb3JtYXR0ZXIuZm9ybWF0KHZhbHVlKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuXG4gICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdldHMgZGF0ZSBpbnN0YW5jZSB0aGF0IGlzIG5vdCB2YWxpZC5cbiAgICogQHJldHVybnMgQW4gaW52YWxpZCBkYXRlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGludmFsaWQoKTogVDtcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBkYXRlIGFzIElTTyBTdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGNvbnZlcnQgdG8gSVNPIFN0cmluZy5cbiAgICovXG4gIHB1YmxpYyB0b0lzbzg2MDEoZGF0ZTogVCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFkID0gKHZhbHVlOiBudW1iZXIsIGxlbmd0aCA9IDIpOiBzdHJpbmcgPT4gYCR7dmFsdWV9YC5wYWRTdGFydChsZW5ndGgsICcwJyk7XG4gICAgcmV0dXJuIGAke3BhZCh0aGlzLmdldFllYXIoZGF0ZSksIDQpfS0ke3BhZCh0aGlzLmdldE1vbnRoKGRhdGUpKX0tJHtwYWQodGhpcy5nZXREYXRlKGRhdGUpKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIGEgcG90ZW50aWFsIGRhdGUgb2JqZWN0LCByZXR1cm5zIHRoYXQgc2FtZSBkYXRlIG9iamVjdCBpZiBpdCBpc1xuICAgKiBhIHZhbGlkIGRhdGUsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBhIHZhbGlkIGRhdGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBBIGRhdGUgb3IgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldFZhbGlkRGF0ZU9yTnVsbCh2YWx1ZTogdW5rbm93bik6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pc0RhdGVJbnN0YW5jZSh2YWx1ZSkgJiYgdGhpcy5pc1ZhbGlkKHZhbHVlIGFzIFQpID8gKHZhbHVlIGFzIFQpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGgsIGFuZCB0aGVuIGl0cyBvZmZzZXQgZnJvbSB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgKi9cbiAgcHVibGljIGdldEZpcnN0V2Vla09mZnNldChkYXRlOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBmaXJzdE9mTW9udGggPSB0aGlzLmNyZWF0ZURhdGUodGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAxKSE7XG4gICAgcmV0dXJuIChcbiAgICAgIChEQVlTX1BFUl9ST1cgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIERBWVNfUEVSX1JPV1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iLCJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVMaWtlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbmltcG9ydCB7IERhdGVBZGFwdGVyLCBGT1JNQVRfREFURSwgSVNPODYwMV9GT1JNQVRfREFURSB9IGZyb20gJy4vZGF0ZS1hZGFwdGVyLmpzJztcblxuLyoqXG4gKiBNYXRjaGVzIHN0cmluZ3MgdGhhdCBoYXZlIHRoZSBmb3JtIG9mIGEgdmFsaWQgUkZDIDMzMzkgc3RyaW5nXG4gKiAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkpLiBOb3RlIHRoYXQgdGhlIHN0cmluZyBtYXkgbm90IGFjdHVhbGx5IGJlIGEgdmFsaWQgZGF0ZVxuICogYmVjYXVzZSB0aGUgcmVnZXggd2lsbCBtYXRjaCBzdHJpbmdzIGFuIHdpdGhvdXQgb2YgYm91bmRzIG1vbnRoLCBkYXRlLCBldGMuXG4gKi9cbmNvbnN0IElTT184NjAxX1JFR0VYID1cbiAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfSg/OlRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspPyg/Olp8KD86KD86XFwrfC0pXFxkezJ9OlxcZHsyfSkpPyk/JC87XG5cbmV4cG9ydCBjbGFzcyBOYXRpdmVEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERhdGU+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3V0b2ZmWWVhck9mZnNldDogbnVtYmVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0OiBudW1iZXIgPSAxNSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qIERlZmluZXMgd2hpY2ggaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMDogc3VuZGF5OyAxOiBtb25kYXk7IGV0Yy4pLiAqL1xuICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoIGdpdmVuIHRoZSB5ZWFyIGFuZCB0aGUgbW9udGguICovXG4gIHB1YmxpYyBnZXROdW1EYXlzSW5Nb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlKHRoaXMuX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3codGhpcy5nZXRZZWFyKGRhdGUpLCB0aGlzLmdldE1vbnRoKGRhdGUpLCAwKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoKS5zZXRIb3VycygwLCAwLCAwLCAwKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIGluZGV4IFwiJHttb250aH1cIi4gTW9udGggaW5kZXggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiLiBEYXRlIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF0ZSk7XG4gICAgLy8gQ2hlY2sgdGhhdCB0aGUgZGF0ZSB3YXNuJ3QgYWJvdmUgdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgbW9udGgsIGNhdXNpbmcgdGhlIG1vbnRoIHRvIG92ZXJmbG93XG4gICAgaWYgKHJlc3VsdC5nZXRNb250aCgpICsgMSAhPT0gbW9udGgpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIgZm9yIG1vbnRoIHdpdGggaW5kZXggXCIke21vbnRofVwiLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS4gKi9cbiAgcHVibGljIGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBkYXRlYCBpcyBhIHZhbGlkIERhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogZGF0ZSBpcyBEYXRlIHtcbiAgICByZXR1cm4gISFkYXRlICYmICFpc05hTihkYXRlLnZhbHVlT2YoKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBEYXRlLCB5ZWFyczogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgeWVhcnMgKiAxMik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBkYXRlIGFkZGluZyB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGBtb250aHNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIElmIHRoZSBjYWxjdWxhdGVkIG1vbnRoIGhhcyBmZXdlciBkYXlzIHRoYW4gdGhlIG9yaWdpbmFsIG9uZSwgdGhlIGRhdGUgaXMgc2V0IHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguXG4gICAqIEUuZy4sIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0TW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyBtb250aHM7XG4gICAgY29uc3QgZGF0ZVdpdGhDb3JyZWN0TW9udGggPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIHRhcmdldE1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuZ2V0TnVtRGF5c0luTW9udGgoZGF0ZVdpdGhDb3JyZWN0TW9udGgpO1xuICAgIC8vIEFkYXB0IHRoZSBsYXN0IGRheSBvZiBtb250aCBmb3Igc2hvcnRlciBtb250aHNcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jbG9uZShkYXRlKS5zZXRNb250aCh0YXJnZXRNb250aCwgTWF0aC5taW4oZGF5c0luTW9udGgsIGRhdGUuZ2V0RGF0ZSgpKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXRlLCBkYXlzOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCB0YXJnZXREYXkgPSBkYXRlLmdldERhdGUoKSArIGRheXM7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCB0YXJnZXREYXksIDAsIDAsIDAsIDApO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBEYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoRGF0ZSwgc3RyaW5nIG9yIG51bWJlciBpbiBzZWNvbmRzKS4gKi9cbiAgcHVibGljIG92ZXJyaWRlIGRlc2VyaWFsaXplKGRhdGU6IFNiYkRhdGVMaWtlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKCFOdW1iZXIuaXNOYU4oK2RhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkRGF0ZU9yTnVsbChuZXcgRGF0ZSgrZGF0ZSAqIDEwMDApKTtcblxuICAgICAgICAvLyBUaGUgYERhdGVgIGNvbnN0cnVjdG9yIGFjY2VwdHMgZm9ybWF0cyBvdGhlciB0aGFuIElTTyA4NjAxLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVcbiAgICAgICAgLy8gc3RyaW5nIGlzIHRoZSByaWdodCBmb3JtYXQgZmlyc3QuXG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUuaW5jbHVkZXMoJ1QnKSA/IGRhdGUgOiBkYXRlICsgJ1QwMDowMDowMCcpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKG5ldyBEYXRlKGRhdGUgKiAxMDAwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZShkYXRlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSByaWdodCBmb3JtYXQgZm9yIHRoZSBgdmFsdWVBc0RhdGVgIHByb3BlcnR5LiAqL1xuICBwdWJsaWMgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsIG5vdzogRGF0ZSA9IHRoaXMudG9kYXkoKSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBpc29NYXRjaCA9IHZhbHVlLm1hdGNoKElTTzg2MDFfRk9STUFUX0RBVEUpO1xuICAgIGNvbnN0IGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuaXNWYWxpZChkYXRlKSkge1xuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaXBwZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnICcpLnRyaW0oKTtcblxuICAgIGNvbnN0IG1hdGNoOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHN0cmlwcGVkVmFsdWU/Lm1hdGNoKEZPUk1BVF9EQVRFKTtcbiAgICBpZiAoXG4gICAgICAhbWF0Y2ggfHxcbiAgICAgIG1hdGNoLmluZGV4ICE9PSAwIHx8XG4gICAgICBtYXRjaC5sZW5ndGggPD0gMiB8fFxuICAgICAgbWF0Y2guc29tZSgoZSkgPT4gZSA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgIXRoaXMuaXNWYWxpZCh0aGlzLmNyZWF0ZURhdGUoK21hdGNoWzNdLCArbWF0Y2hbMl0sICttYXRjaFsxXSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgeWVhciA9ICttYXRjaFszXTtcblxuICAgIGlmICh0eXBlb2YgeWVhciA9PT0gJ251bWJlcicgJiYgeWVhciA8IDEwMCAmJiB5ZWFyID49IDApIHtcbiAgICAgIGNvbnN0IHNoaWZ0ID0gbm93LmdldEZ1bGxZZWFyKCkgLSAyMDAwICsgdGhpcy5fY3V0b2ZmWWVhck9mZnNldDtcbiAgICAgIHllYXIgPSB5ZWFyIDw9IHNoaWZ0ID8gMjAwMCArIHllYXIgOiAxOTAwICsgeWVhcjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgK21hdGNoWzJdIC0gMSwgK21hdGNoWzFdKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBpbnZhbGlkKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgd2l0aCB0aGUgZ2l2ZW4gbGVuZ3RoIGFuZCBmaWxscyBpdCBieSBtYXBwaW5nIHdpdGggdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHRvIGJlIGNyZWF0ZWQuXG4gICAqIEBwYXJhbSB2YWx1ZUZ1bmN0aW9uIFRoZSBmdW5jdGlvbiBvZiBhcnJheSdzIGluZGV4IHVzZWQgdG8gZmlsbCB0aGUgYXJyYXkuXG4gICAqL1xuICBwcml2YXRlIF9yYW5nZTxUPihsZW5ndGg6IG51bWJlciwgdmFsdWVGdW5jdGlvbjogKGluZGV4OiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0pLm1hcCgoXywgaSkgPT4gdmFsdWVGdW5jdGlvbihpKSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIGRhdGUgYnV0IGFsbG93cyB0aGUgbW9udGggYW5kIGRhdGUgdG8gb3ZlcmZsb3cuICovXG4gIHByaXZhdGUgX2NyZWF0ZURhdGVXaXRoT3ZlcmZsb3coeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXRlIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG4gICAgLy8gV2UgbmVlZCB0byBjb3JyZWN0IGZvciB0aGUgZmFjdCB0aGF0IEpTIG5hdGl2ZSBEYXRlIHRyZWF0cyB5ZWFycyBpbiByYW5nZSBbMCwgOTldIGFzXG4gICAgLy8gYWJicmV2aWF0aW9ucyBmb3IgMTl4eC5cbiAgICBpZiAoeWVhciA+PSAwICYmIHllYXIgPCAxMDApIHtcbiAgICAgIHJlc3VsdC5zZXRGdWxsWWVhcih0aGlzLmdldFllYXIocmVzdWx0KSAtIDE5MDApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGF0ZUFkYXB0ZXIgPSBuZXcgTmF0aXZlRGF0ZUFkYXB0ZXIoKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQU8sTUFBTSxlQUF1QjtBQUM3QixNQUFNLGlCQUF5QjtBQUMvQixNQUFNLGdCQUF3QjtBQUM5QixNQUFNLGtCQUEwQjtBQUNoQyxNQUFNLGlCQUF5QjtBQUMvQixNQUFNLGNBQ1g7QUFDSyxNQUFNLHNCQUFzQjtNQU9iLFlBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComplexAttributeConverter } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Converts empty values to null, which will not be rendered as attributes.
|
|
4
|
+
* e.g. for string properties, an empty value '' will not be rendered as an
|
|
5
|
+
* empty attribute, as would be the default with lit.
|
|
6
|
+
*/
|
|
7
|
+
export declare const dateConverter: ComplexAttributeConverter;
|
|
8
|
+
//# sourceMappingURL=date-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-converter.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/date-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,KAAK,CAAC;AAKrD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,yBAS3B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts the given value to a date object or null.
|
|
3
|
+
* Should be used as a type hint for the @property decorator.
|
|
4
|
+
* @param value The value to convert to a date object.
|
|
5
|
+
* @returns A date object or null.
|
|
6
|
+
*/
|
|
7
|
+
export declare function DateOnlyType(value: unknown): unknown | null;
|
|
8
|
+
//# sourceMappingURL=date-only-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-only-type.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/date-only-type.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAS3D"}
|
|
@@ -4,5 +4,5 @@ import { Interface, PropertyDecorator } from './base.js';
|
|
|
4
4
|
* Decorator that forces the value of a property or getter/setter
|
|
5
5
|
* to the defined type.
|
|
6
6
|
*/
|
|
7
|
-
export declare const forceType: <C extends Interface<ReactiveElement>, V>() => PropertyDecorator;
|
|
7
|
+
export declare const forceType: <C extends Interface<ReactiveElement>, V>(convert?: (v: unknown) => V) => PropertyDecorator;
|
|
8
8
|
//# sourceMappingURL=force-type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"force-type.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/force-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"force-type.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/force-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EAC/D,UAAU,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,KAC1B,iBAwCF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-override.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/get-override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"get-override.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/get-override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EACjE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,MAGzC,QAAQ,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,SAAS,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,KAC3C,GAeJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-distinct-change.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/handle-distinct-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"handle-distinct-change.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/handle-distinct-change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,EAC1E,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,MAGnE,QAAQ,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,SAAS,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,KAC3C,GAiBJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-attributes.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/host-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAexD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"host-attributes.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/host-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAexD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,GACxB,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,QAAQ,mBAAmB,CAAC,eAAe,CAAC,SAoBxF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-state.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/slot-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"slot-state.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/decorators/slot-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,SAAU,QAAQ,mBAAmB,CAAC,eAAe,CAAC,SAM3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC"}
|
|
@@ -1,14 +1,33 @@
|
|
|
1
|
+
import { readConfig } from "./config.js";
|
|
2
|
+
import { defaultDateAdapter } from "./datetime.js";
|
|
1
3
|
import { isServer, defaultConverter } from "lit";
|
|
2
4
|
import { SbbSlotStateController } from "./controllers.js";
|
|
3
|
-
const
|
|
5
|
+
const dateConverter = {
|
|
6
|
+
fromAttribute(value, _type) {
|
|
7
|
+
var _a;
|
|
8
|
+
const dateAdapter = ((_a = readConfig().datetime) == null ? void 0 : _a.dateAdapter) ?? defaultDateAdapter;
|
|
9
|
+
return dateAdapter.getValidDateOrNull(dateAdapter.deserialize(value));
|
|
10
|
+
},
|
|
11
|
+
toAttribute(value, _type) {
|
|
12
|
+
var _a;
|
|
13
|
+
const dateAdapter = ((_a = readConfig().datetime) == null ? void 0 : _a.dateAdapter) ?? defaultDateAdapter;
|
|
14
|
+
return dateAdapter.isValid(value) ? dateAdapter.toIso8601(value) : null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
function DateOnlyType(value) {
|
|
18
|
+
var _a;
|
|
19
|
+
const dateAdapter = ((_a = readConfig().datetime) == null ? void 0 : _a.dateAdapter) ?? defaultDateAdapter;
|
|
20
|
+
return dateAdapter.isDateInstance(value) && dateAdapter.isValid(value) ? dateAdapter.createDate(dateAdapter.getYear(value), dateAdapter.getMonth(value), dateAdapter.getDate(value)) : null;
|
|
21
|
+
}
|
|
22
|
+
const forceType = (convert) => {
|
|
4
23
|
return (target, context) => {
|
|
5
24
|
var _a, _b;
|
|
6
25
|
const { kind, metadata, name } = context;
|
|
7
26
|
const type = ((_b = (_a = globalThis.litPropertyMetadata.get(metadata)) == null ? void 0 : _a.get(name)) == null ? void 0 : _b.type) ?? String;
|
|
8
|
-
|
|
9
|
-
if (
|
|
27
|
+
convert ?? (convert = type);
|
|
28
|
+
if (convert === String) {
|
|
10
29
|
convert = (v) => v == null ? "" : String(v);
|
|
11
|
-
} else if (
|
|
30
|
+
} else if (convert === Number) {
|
|
12
31
|
convert = (v) => v == null ? NaN : Number(v);
|
|
13
32
|
}
|
|
14
33
|
if (kind === "accessor") {
|
|
@@ -19,7 +38,7 @@ const forceType = () => {
|
|
|
19
38
|
};
|
|
20
39
|
} else if (kind === "setter") {
|
|
21
40
|
return function(value) {
|
|
22
|
-
target(convert(value));
|
|
41
|
+
target.call(this, convert(value));
|
|
23
42
|
};
|
|
24
43
|
}
|
|
25
44
|
throw new Error(`Unsupported decorator location: ${kind}`);
|
|
@@ -93,6 +112,8 @@ const slotState = () => (target) => {
|
|
|
93
112
|
}
|
|
94
113
|
};
|
|
95
114
|
export {
|
|
115
|
+
DateOnlyType,
|
|
116
|
+
dateConverter,
|
|
96
117
|
forceType,
|
|
97
118
|
getOverride,
|
|
98
119
|
handleDistinctChange,
|
|
@@ -100,4 +121,4 @@ export {
|
|
|
100
121
|
omitEmptyConverter,
|
|
101
122
|
slotState
|
|
102
123
|
};
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9mb3JjZS10eXBlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9nZXQtb3ZlcnJpZGUudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2hhbmRsZS1kaXN0aW5jdC1jaGFuZ2UudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2hvc3QtYXR0cmlidXRlcy50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvb21pdC1lbXB0eS1jb252ZXJ0ZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL3Nsb3Qtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSwgUHJvcGVydHlEZWNvcmF0b3IgfSBmcm9tICcuL2Jhc2UuanMnO1xuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IGZvcmNlcyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBvciBnZXR0ZXIvc2V0dGVyXG4gKiB0byB0aGUgZGVmaW5lZCB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgZm9yY2VUeXBlID0gPEMgZXh0ZW5kcyBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PiwgVj4oKTogUHJvcGVydHlEZWNvcmF0b3IgPT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPiB8ICgodmFsdWU6IFYpID0+IHZvaWQpLFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+IHwgQ2xhc3NTZXR0ZXJEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCwgbWV0YWRhdGEsIG5hbWUgfSA9IGNvbnRleHQ7XG5cbiAgICBjb25zdCB0eXBlID0gKGdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQobWV0YWRhdGEpPy5nZXQobmFtZSk/LnR5cGUgPz8gU3RyaW5nKSBhcyAoXG4gICAgICB2OiB1bmtub3duLFxuICAgICkgPT4gVjtcbiAgICBsZXQgY29udmVydCA9IHR5cGU7XG4gICAgaWYgKCh0eXBlIGFzIHVua25vd24pID09PSBTdHJpbmcpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgU3RyaW5nLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsL3VuZGVmaW5lZCBkaWZmZXJlbnRseVxuICAgICAgLy8gZnJvbSB0aGUgbmF0aXZlIGJlaGF2aW9yIGluIHRoYXQgd2Ugd2FudCB0byB0cmVhdCB0aGVzZSB2YWx1ZXNcbiAgICAgIC8vIGFzIGVtcHR5IHN0cmluZ3MuXG4gICAgICBjb252ZXJ0ID0gKHYpID0+ICh2ID09IG51bGwgPyAnJyA6IFN0cmluZyh2KSkgYXMgVjtcbiAgICB9IGVsc2UgaWYgKCh0eXBlIGFzIHVua25vd24pID09PSBOdW1iZXIpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgTnVtYmVyLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsIGRpZmZlcmVudGx5XG4gICAgICAvLyBmcm9tIHRoZSBuYXRpdmUgYmVoYXZpb3IgaW4gdGhhdCB3ZSB3YW50IHRvIHRyZWF0IG51bGwgYXMgTmFOLlxuICAgICAgY29udmVydCA9ICh2KSA9PiAodiA9PSBudWxsID8gTmFOIDogTnVtYmVyKHYpKSBhcyBWO1xuICAgIH1cbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbChcbiAgICAgICAgICAgIHRoaXMgYXMgdW5rbm93biBhcyBDLFxuICAgICAgICAgICAgY29udmVydCh2YWx1ZSkgYXMgVixcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9IGVsc2UgaWYgKGtpbmQgPT09ICdzZXR0ZXInKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgICh0YXJnZXQgYXMgKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKShjb252ZXJ0KHZhbHVlKSk7XG4gICAgICB9IHNhdGlzZmllcyAodGhpczogQywgdmFsdWU6IFYpID0+IHZvaWQ7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgSW50ZXJmYWNlIH0gZnJvbSAnLi9iYXNlLmpzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgdGhhdCBvdmVycmlkZXMgdGhlIHVuZGVybHlpbmcgZ2V0dGVyIG9mIHRoZSBhY2Nlc3Nvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE92ZXJyaWRlID0gPEMgZXh0ZW5kcyBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PiwgVj4oXG4gIGNhbGxiYWNrOiAoaW5zdGFuY2U6IEMsIGlubmVyVmFsdWU6IFYpID0+IFYsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4sXG4gICAgY29udGV4dDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8QywgVj4sXG4gICk6IGFueSA9PiB7XG4gICAgY29uc3QgeyBraW5kIH0gPSBjb250ZXh0O1xuICAgIGlmIChraW5kID09PSAnYWNjZXNzb3InKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQodGhpczogQykge1xuICAgICAgICAgIGNvbnN0IGlubmVyVmFsdWUgPSAodGFyZ2V0IGFzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4pLmdldC5jYWxsKFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIEMsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2sodGhpcywgaW5uZXJWYWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICB9IHNhdGlzZmllcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yUmVzdWx0PEMsIFY+O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAke2tpbmR9YCk7XG4gIH07XG59O1xuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS5qcyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgY2FsbHMgdGhlIGdpdmVuIGNhbGxiYWNrIHdoZW4gdGhlIHZhbHVlXG4gKiBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRGlzdGluY3RDaGFuZ2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgbmV3VmFsdWU6IFYsIG9sZFZhbHVlOiBWIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBjb250ZXh0LmFjY2Vzcy5nZXQodGhpcyk7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbCh0aGlzIGFzIHVua25vd24gYXMgQywgdmFsdWUpO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29udGV4dC5hY2Nlc3MuZ2V0KHRoaXMpO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogJHtraW5kfWApO1xuICB9O1xufTtcbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL21peGlucy5qcyc7XG5cbmZ1bmN0aW9uIGFwcGx5QXR0cmlidXRlcyhcbiAgaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCxcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZS50b2dnbGVBdHRyaWJ1dGUobmFtZSwgdmFsdWUgIT09IG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZXMgdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqIElmIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgYXMgYSB2YWx1ZSwgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlIHNldFxuICogd2l0aG91dCB2YWx1ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQGhvc3RBdHRyaWJ1dGVzKHtcbiAqICAgcm9sZTogJ3JlZ2lvbidcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBob3N0QXR0cmlidXRlcyA9XG4gIChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPikgPT4gKHRhcmdldDogQWJzdHJhY3RDb25zdHJ1Y3RvcjxSZWFjdGl2ZUVsZW1lbnQ+KSA9PlxuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoKGluc3RhbmNlOiBSZWFjdGl2ZUVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgICBhcHBseUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGF0dHJpYnV0ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IGF0dHJpYnV0ZXMgZHVyaW5nIGNvbnN0cnVjdG9yIHBoYXNlLiBEdWUgdG8gdGhpcyB3ZSB1c2UgYVxuICAgICAgICAvLyBjb250cm9sbGVyIHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBkdXJpbmcgbGl0IGluaXRpYWxpemF0aW9uIHBoYXNlLlxuICAgICAgICAvLyBIb3N0Q29ubmVjdGVkIG9yIGhvc3RVcGRhdGUgY2FuIGJlIGNhbGxlZCBlaXRoZXIgb3JkZXIuIER1ZSB0byB0aGF0IHdlIGFwcGx5IGluIHRoZVxuICAgICAgICAvLyBmaXJzdCBvY2N1cnJlbmNlIGFuZCBkaXJlY3RseSByZW1vdmUgdGhlIGNvbnRyb2xsZXIsIHNvIGl0J3Mgb25seSBjYWxsZWQgb25jZS5cbiAgICAgICAgaW5zdGFuY2UuYWRkQ29udHJvbGxlcih7XG4gICAgICAgICAgaG9zdENvbm5lY3RlZCgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaG9zdFVwZGF0ZSgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuIiwiaW1wb3J0IHsgZGVmYXVsdENvbnZlcnRlciwgdHlwZSBDb21wbGV4QXR0cmlidXRlQ29udmVydGVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBDb252ZXJ0cyBlbXB0eSB2YWx1ZXMgdG8gbnVsbCwgd2hpY2ggd2lsbCBub3QgYmUgcmVuZGVyZWQgYXMgYXR0cmlidXRlcy5cbiAqIGUuZy4gZm9yIHN0cmluZyBwcm9wZXJ0aWVzLCBhbiBlbXB0eSB2YWx1ZSAnJyB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBhblxuICogZW1wdHkgYXR0cmlidXRlLCBhcyB3b3VsZCBiZSB0aGUgZGVmYXVsdCB3aXRoIGxpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9taXRFbXB0eUNvbnZlcnRlcjogQ29tcGxleEF0dHJpYnV0ZUNvbnZlcnRlciA9IHtcbiAgdG9BdHRyaWJ1dGUodmFsdWUsIHR5cGUpIHtcbiAgICByZXR1cm4gKCh0eXBlID09PSBTdHJpbmcgfHwgdHlwZSA9PT0gdW5kZWZpbmVkKSAmJiB2YWx1ZSA9PT0gJycpIHx8XG4gICAgICAodHlwZSA9PT0gTnVtYmVyICYmIGlzTmFOKHZhbHVlIGFzIG51bWJlcikpXG4gICAgICA/IG51bGxcbiAgICAgIDogZGVmYXVsdENvbnZlcnRlci50b0F0dHJpYnV0ZSEodmFsdWUsIHR5cGUpO1xuICB9LFxufTtcbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG4vKipcbiAqIEFkZHMgdGhlIHtAbGluayBTYmJTbG90U3RhdGVDb250cm9sbGVyfSB0byB0aGUgcmVsYXRlZCBlbGVtZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogQGN1c3RvbUVsZW1lbnQoJ215LWVsZW1lbnQpXG4gKiBAc2xvdFN0YXRlKClcbiAqIGV4cG9ydCBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZXMgQSByZWNvcmQgb2YgYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNsb3RTdGF0ZSA9ICgpID0+ICh0YXJnZXQ6IEFic3RyYWN0Q29uc3RydWN0b3I8UmVhY3RpdmVFbGVtZW50PikgPT4ge1xuICBpZiAoIWlzU2VydmVyKSB7XG4gICAgKHRhcmdldCBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5hZGRJbml0aWFsaXplcihcbiAgICAgIChpbnN0YW5jZTogUmVhY3RpdmVFbGVtZW50KSA9PiBuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcihpbnN0YW5jZSksXG4gICAgKTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFPLE1BQU0sWUFBWSxNQUFpRTtBQUNqRixTQUFBLENBQ0wsUUFDQSxZQUNPOztBQUNQLFVBQU0sRUFBRSxNQUFNLFVBQVUsS0FBUyxJQUFBO0FBRTNCLFVBQUEsU0FBUSxzQkFBVyxvQkFBb0IsSUFBSSxRQUFRLE1BQTNDLG1CQUE4QyxJQUFJLFVBQWxELG1CQUF5RCxTQUFRO0FBRy9FLFFBQUksVUFBVTtBQUNkLFFBQUssU0FBcUIsUUFBUTtBQUloQyxnQkFBVSxDQUFDLE1BQU8sS0FBSyxPQUFPLEtBQUssT0FBTyxDQUFDO0FBQUEsSUFBQSxXQUNqQyxTQUFxQixRQUFRO0FBR3ZDLGdCQUFVLENBQUMsTUFBTyxLQUFLLE9BQU8sTUFBTSxPQUFPLENBQUM7QUFBQSxJQUFBO0FBRTlDLFFBQUksU0FBUyxZQUFZO0FBQ2hCLGFBQUE7QUFBQSxRQUNMLElBQWEsT0FBSztBQUNmLGlCQUE4QyxJQUFJLEtBQ2pELE1BQ0EsUUFBUSxLQUFLLENBQU07QUFBQSxRQUFBO0FBQUE7ZUFJaEIsU0FBUyxVQUFVO0FBQzVCLGFBQU8sU0FBVSxPQUFjO0FBQ1EsZUFBQSxRQUFRLEtBQUssQ0FBQztBQUFBLE1BQ3JEO0FBQUEsSUFBQTtBQUdGLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxJQUFJLEVBQUU7QUFBQSxFQUMzRDtBQUNGO0FDdkNhLE1BQUEsY0FBYyxDQUN6QixhQUNFO0FBQ0ssU0FBQSxDQUNMLFFBQ0EsWUFDTztBQUNELFVBQUEsRUFBRSxTQUFTO0FBQ2pCLFFBQUksU0FBUyxZQUFZO0FBQ2hCLGFBQUE7QUFBQSxRQUNMLE1BQUc7QUFDRCxnQkFBTSxhQUFjLE9BQThDLElBQUksS0FDcEUsSUFBb0I7QUFFZixpQkFBQSxTQUFTLE1BQU0sVUFBVTtBQUFBLFFBQUE7QUFBQTs7QUFLdEMsVUFBTSxJQUFJLE1BQU0sbUNBQW1DLElBQUksRUFBRTtBQUFBLEVBQzNEO0FBQ0Y7QUNwQmEsTUFBQSx1QkFBdUIsQ0FDbEMsYUFDRTtBQUNLLFNBQUEsQ0FDTCxRQUNBLFlBQ087QUFDRCxVQUFBLEVBQUUsU0FBUztBQUNqQixRQUFJLFNBQVMsWUFBWTtBQUNoQixhQUFBO0FBQUEsUUFDTCxJQUFhLE9BQUs7QUFDaEIsZ0JBQU0sV0FBVyxRQUFRLE9BQU8sSUFBSSxJQUFJO0FBQ08saUJBQUEsSUFBSSxLQUFLLE1BQXNCLEtBQUs7QUFDbkYsZ0JBQU0sV0FBVyxRQUFRLE9BQU8sSUFBSSxJQUFJO0FBQ3hDLGNBQUksYUFBYSxVQUFVO0FBQ2hCLHFCQUFBLE1BQU0sVUFBVSxRQUFRO0FBQUEsVUFBQTtBQUFBLFFBQ25DO0FBQUE7O0FBS04sVUFBTSxJQUFJLE1BQU0sbUNBQW1DLElBQUksRUFBRTtBQUFBLEVBQzNEO0FBQ0Y7QUMzQkEsU0FBUyxnQkFDUCxVQUNBLFlBQXlDO0FBRXpDLGFBQVcsQ0FBQyxNQUFNLEtBQUssS0FBSyxPQUFPLFFBQVEsVUFBVSxHQUFHO0FBQ3RELFFBQUksT0FBTztBQUNBLGVBQUEsYUFBYSxNQUFNLEtBQUs7QUFBQSxJQUFBLE9BQzVCO0FBQ0ksZUFBQSxnQkFBZ0IsTUFBTSxVQUFVLElBQUk7QUFBQSxJQUFBO0FBQUEsRUFDL0M7QUFFSjtBQW1CYSxNQUFBLGlCQUNYLENBQUMsZUFBOEMsQ0FBQyxXQUM3QyxPQUFrQyxlQUFlLENBQUMsYUFBNkI7QUFDOUUsTUFBSSxVQUFVO0FBQ1osb0JBQWdCLFVBQVUsVUFBVTtBQUFBLEVBQUEsT0FDL0I7QUFLTCxhQUFTLGNBQWM7QUFBQSxNQUNyQixnQkFBYTtBQUNYLHdCQUFnQixVQUFVLFVBQVU7QUFDcEMsaUJBQVMsaUJBQWlCLElBQUk7QUFBQSxNQUNoQztBQUFBLE1BQ0EsYUFBVTtBQUNSLHdCQUFnQixVQUFVLFVBQVU7QUFDcEMsaUJBQVMsaUJBQWlCLElBQUk7QUFBQSxNQUFBO0FBQUEsSUFDaEMsQ0FDRDtBQUFBLEVBQUE7QUFFTCxDQUFDO0FDaERFLE1BQU0scUJBQWdEO0FBQUEsRUFDM0QsWUFBWSxPQUFPLE1BQUk7QUFDckIsWUFBUyxTQUFTLFVBQVUsU0FBUyxXQUFjLFVBQVUsTUFDMUQsU0FBUyxVQUFVLE1BQU0sS0FBZSxJQUN2QyxPQUNBLGlCQUFpQixZQUFhLE9BQU8sSUFBSTtBQUFBLEVBQUE7O0FDTXBDLE1BQUEsWUFBWSxNQUFNLENBQUMsV0FBZ0Q7QUFDOUUsTUFBSSxDQUFDLFVBQVU7QUFDWixXQUFrQyxlQUNqQyxDQUFDLGFBQThCLElBQUksdUJBQXVCLFFBQVEsQ0FBQztBQUFBLEVBQUE7QUFHekU7In0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9kYXRlLWNvbnZlcnRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvZGF0ZS1vbmx5LXR5cGUudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2ZvcmNlLXR5cGUudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2dldC1vdmVycmlkZS50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaGFuZGxlLWRpc3RpbmN0LWNoYW5nZS50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaG9zdC1hdHRyaWJ1dGVzLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy9vbWl0LWVtcHR5LWNvbnZlcnRlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvc2xvdC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbXBsZXhBdHRyaWJ1dGVDb252ZXJ0ZXIgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7IGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uL2RhdGV0aW1lLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBlbXB0eSB2YWx1ZXMgdG8gbnVsbCwgd2hpY2ggd2lsbCBub3QgYmUgcmVuZGVyZWQgYXMgYXR0cmlidXRlcy5cbiAqIGUuZy4gZm9yIHN0cmluZyBwcm9wZXJ0aWVzLCBhbiBlbXB0eSB2YWx1ZSAnJyB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBhblxuICogZW1wdHkgYXR0cmlidXRlLCBhcyB3b3VsZCBiZSB0aGUgZGVmYXVsdCB3aXRoIGxpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGVDb252ZXJ0ZXI6IENvbXBsZXhBdHRyaWJ1dGVDb252ZXJ0ZXIgPSB7XG4gIGZyb21BdHRyaWJ1dGUodmFsdWUsIF90eXBlKSB7XG4gICAgY29uc3QgZGF0ZUFkYXB0ZXIgPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgICByZXR1cm4gZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gIH0sXG4gIHRvQXR0cmlidXRlKHZhbHVlLCBfdHlwZSkge1xuICAgIGNvbnN0IGRhdGVBZGFwdGVyID0gcmVhZENvbmZpZygpLmRhdGV0aW1lPy5kYXRlQWRhcHRlciA/PyBkZWZhdWx0RGF0ZUFkYXB0ZXI7XG4gICAgcmV0dXJuIGRhdGVBZGFwdGVyLmlzVmFsaWQodmFsdWUpID8gZGF0ZUFkYXB0ZXIudG9Jc284NjAxKHZhbHVlKSA6IG51bGw7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9kYXRldGltZS5qcyc7XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGdpdmVuIHZhbHVlIHRvIGEgZGF0ZSBvYmplY3Qgb3IgbnVsbC5cbiAqIFNob3VsZCBiZSB1c2VkIGFzIGEgdHlwZSBoaW50IGZvciB0aGUgQHByb3BlcnR5IGRlY29yYXRvci5cbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBhIGRhdGUgb2JqZWN0LlxuICogQHJldHVybnMgQSBkYXRlIG9iamVjdCBvciBudWxsLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgZnVuY3Rpb24gRGF0ZU9ubHlUeXBlKHZhbHVlOiB1bmtub3duKTogdW5rbm93biB8IG51bGwge1xuICBjb25zdCBkYXRlQWRhcHRlciA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICByZXR1cm4gZGF0ZUFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIGRhdGVBZGFwdGVyLmlzVmFsaWQodmFsdWUpXG4gICAgPyBkYXRlQWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICBkYXRlQWRhcHRlci5nZXRZZWFyKHZhbHVlKSxcbiAgICAgICAgZGF0ZUFkYXB0ZXIuZ2V0TW9udGgodmFsdWUpLFxuICAgICAgICBkYXRlQWRhcHRlci5nZXREYXRlKHZhbHVlKSxcbiAgICAgIClcbiAgICA6IG51bGw7XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgSW50ZXJmYWNlLCBQcm9wZXJ0eURlY29yYXRvciB9IGZyb20gJy4vYmFzZS5qcyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgZm9yY2VzIHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5IG9yIGdldHRlci9zZXR0ZXJcbiAqIHRvIHRoZSBkZWZpbmVkIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JjZVR5cGUgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY29udmVydD86ICh2OiB1bmtub3duKSA9PiBWLFxuKTogUHJvcGVydHlEZWNvcmF0b3IgPT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPiB8ICgodmFsdWU6IFYpID0+IHZvaWQpLFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+IHwgQ2xhc3NTZXR0ZXJEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCwgbWV0YWRhdGEsIG5hbWUgfSA9IGNvbnRleHQ7XG5cbiAgICBjb25zdCB0eXBlID0gKGdsb2JhbFRoaXMubGl0UHJvcGVydHlNZXRhZGF0YS5nZXQobWV0YWRhdGEpPy5nZXQobmFtZSk/LnR5cGUgPz8gU3RyaW5nKSBhcyAoXG4gICAgICB2OiB1bmtub3duLFxuICAgICkgPT4gVjtcblxuICAgIGNvbnZlcnQgPz89IHR5cGU7XG5cbiAgICBpZiAoKGNvbnZlcnQgYXMgdW5rbm93bikgPT09IFN0cmluZykge1xuICAgICAgLy8gSW4gY2FzZSBvZiBTdHJpbmcsIHdlIHdhbnQgdG8gaGFuZGxlIG51bGwvdW5kZWZpbmVkIGRpZmZlcmVudGx5XG4gICAgICAvLyBmcm9tIHRoZSBuYXRpdmUgYmVoYXZpb3IgaW4gdGhhdCB3ZSB3YW50IHRvIHRyZWF0IHRoZXNlIHZhbHVlc1xuICAgICAgLy8gYXMgZW1wdHkgc3RyaW5ncy5cbiAgICAgIGNvbnZlcnQgPSAodikgPT4gKHYgPT0gbnVsbCA/ICcnIDogU3RyaW5nKHYpKSBhcyBWO1xuICAgIH0gZWxzZSBpZiAoKGNvbnZlcnQgYXMgdW5rbm93bikgPT09IE51bWJlcikge1xuICAgICAgLy8gSW4gY2FzZSBvZiBOdW1iZXIsIHdlIHdhbnQgdG8gaGFuZGxlIG51bGwgZGlmZmVyZW50bHlcbiAgICAgIC8vIGZyb20gdGhlIG5hdGl2ZSBiZWhhdmlvciBpbiB0aGF0IHdlIHdhbnQgdG8gdHJlYXQgbnVsbCBhcyBOYU4uXG4gICAgICBjb252ZXJ0ID0gKHYpID0+ICh2ID09IG51bGwgPyBOYU4gOiBOdW1iZXIodikpIGFzIFY7XG4gICAgfVxuICAgIGlmIChraW5kID09PSAnYWNjZXNzb3InKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZXQodGhpczogQywgdmFsdWUpIHtcbiAgICAgICAgICAodGFyZ2V0IGFzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4pLnNldC5jYWxsKFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIEMsXG4gICAgICAgICAgICBjb252ZXJ0ISh2YWx1ZSkgYXMgVixcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9IGVsc2UgaWYgKGtpbmQgPT09ICdzZXR0ZXInKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiB1bmtub3duKSB7XG4gICAgICAgICh0YXJnZXQgYXMgKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkKS5jYWxsKHRoaXMsIGNvbnZlcnQhKHZhbHVlKSk7XG4gICAgICB9IHNhdGlzZmllcyAodGhpczogQywgdmFsdWU6IFYpID0+IHZvaWQ7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgSW50ZXJmYWNlIH0gZnJvbSAnLi9iYXNlLmpzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgdGhhdCBvdmVycmlkZXMgdGhlIHVuZGVybHlpbmcgZ2V0dGVyIG9mIHRoZSBhY2Nlc3Nvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldE92ZXJyaWRlID0gPEMgZXh0ZW5kcyBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PiwgVj4oXG4gIGNhbGxiYWNrOiAoaW5zdGFuY2U6IEMsIGlubmVyVmFsdWU6IFYpID0+IFYsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4sXG4gICAgY29udGV4dDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8QywgVj4sXG4gICk6IGFueSA9PiB7XG4gICAgY29uc3QgeyBraW5kIH0gPSBjb250ZXh0O1xuICAgIGlmIChraW5kID09PSAnYWNjZXNzb3InKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQodGhpczogQykge1xuICAgICAgICAgIGNvbnN0IGlubmVyVmFsdWUgPSAodGFyZ2V0IGFzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4pLmdldC5jYWxsKFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIEMsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gY2FsbGJhY2sodGhpcywgaW5uZXJWYWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICB9IHNhdGlzZmllcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yUmVzdWx0PEMsIFY+O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAke2tpbmR9YCk7XG4gIH07XG59O1xuIiwiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS5qcyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgY2FsbHMgdGhlIGdpdmVuIGNhbGxiYWNrIHdoZW4gdGhlIHZhbHVlXG4gKiBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRGlzdGluY3RDaGFuZ2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgbmV3VmFsdWU6IFYsIG9sZFZhbHVlOiBWIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBjb250ZXh0LmFjY2Vzcy5nZXQodGhpcyk7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbCh0aGlzIGFzIHVua25vd24gYXMgQywgdmFsdWUpO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29udGV4dC5hY2Nlc3MuZ2V0KHRoaXMpO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogJHtraW5kfWApO1xuICB9O1xufTtcbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL21peGlucy5qcyc7XG5cbmZ1bmN0aW9uIGFwcGx5QXR0cmlidXRlcyhcbiAgaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCxcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZS50b2dnbGVBdHRyaWJ1dGUobmFtZSwgdmFsdWUgIT09IG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZXMgdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqIElmIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgYXMgYSB2YWx1ZSwgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlIHNldFxuICogd2l0aG91dCB2YWx1ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQGhvc3RBdHRyaWJ1dGVzKHtcbiAqICAgcm9sZTogJ3JlZ2lvbidcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBob3N0QXR0cmlidXRlcyA9XG4gIChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPikgPT4gKHRhcmdldDogQWJzdHJhY3RDb25zdHJ1Y3RvcjxSZWFjdGl2ZUVsZW1lbnQ+KSA9PlxuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoKGluc3RhbmNlOiBSZWFjdGl2ZUVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgICBhcHBseUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGF0dHJpYnV0ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IGF0dHJpYnV0ZXMgZHVyaW5nIGNvbnN0cnVjdG9yIHBoYXNlLiBEdWUgdG8gdGhpcyB3ZSB1c2UgYVxuICAgICAgICAvLyBjb250cm9sbGVyIHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBkdXJpbmcgbGl0IGluaXRpYWxpemF0aW9uIHBoYXNlLlxuICAgICAgICAvLyBIb3N0Q29ubmVjdGVkIG9yIGhvc3RVcGRhdGUgY2FuIGJlIGNhbGxlZCBlaXRoZXIgb3JkZXIuIER1ZSB0byB0aGF0IHdlIGFwcGx5IGluIHRoZVxuICAgICAgICAvLyBmaXJzdCBvY2N1cnJlbmNlIGFuZCBkaXJlY3RseSByZW1vdmUgdGhlIGNvbnRyb2xsZXIsIHNvIGl0J3Mgb25seSBjYWxsZWQgb25jZS5cbiAgICAgICAgaW5zdGFuY2UuYWRkQ29udHJvbGxlcih7XG4gICAgICAgICAgaG9zdENvbm5lY3RlZCgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaG9zdFVwZGF0ZSgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuIiwiaW1wb3J0IHsgZGVmYXVsdENvbnZlcnRlciwgdHlwZSBDb21wbGV4QXR0cmlidXRlQ29udmVydGVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBDb252ZXJ0cyBlbXB0eSB2YWx1ZXMgdG8gbnVsbCwgd2hpY2ggd2lsbCBub3QgYmUgcmVuZGVyZWQgYXMgYXR0cmlidXRlcy5cbiAqIGUuZy4gZm9yIHN0cmluZyBwcm9wZXJ0aWVzLCBhbiBlbXB0eSB2YWx1ZSAnJyB3aWxsIG5vdCBiZSByZW5kZXJlZCBhcyBhblxuICogZW1wdHkgYXR0cmlidXRlLCBhcyB3b3VsZCBiZSB0aGUgZGVmYXVsdCB3aXRoIGxpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9taXRFbXB0eUNvbnZlcnRlcjogQ29tcGxleEF0dHJpYnV0ZUNvbnZlcnRlciA9IHtcbiAgdG9BdHRyaWJ1dGUodmFsdWUsIHR5cGUpIHtcbiAgICByZXR1cm4gKCh0eXBlID09PSBTdHJpbmcgfHwgdHlwZSA9PT0gdW5kZWZpbmVkKSAmJiB2YWx1ZSA9PT0gJycpIHx8XG4gICAgICAodHlwZSA9PT0gTnVtYmVyICYmIGlzTmFOKHZhbHVlIGFzIG51bWJlcikpXG4gICAgICA/IG51bGxcbiAgICAgIDogZGVmYXVsdENvbnZlcnRlci50b0F0dHJpYnV0ZSEodmFsdWUsIHR5cGUpO1xuICB9LFxufTtcbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG4vKipcbiAqIEFkZHMgdGhlIHtAbGluayBTYmJTbG90U3RhdGVDb250cm9sbGVyfSB0byB0aGUgcmVsYXRlZCBlbGVtZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogQGN1c3RvbUVsZW1lbnQoJ215LWVsZW1lbnQpXG4gKiBAc2xvdFN0YXRlKClcbiAqIGV4cG9ydCBjbGFzcyBNeUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAqICAgLi4uXG4gKiB9XG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZXMgQSByZWNvcmQgb2YgYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNsb3RTdGF0ZSA9ICgpID0+ICh0YXJnZXQ6IEFic3RyYWN0Q29uc3RydWN0b3I8UmVhY3RpdmVFbGVtZW50PikgPT4ge1xuICBpZiAoIWlzU2VydmVyKSB7XG4gICAgKHRhcmdldCBhcyB0eXBlb2YgUmVhY3RpdmVFbGVtZW50KS5hZGRJbml0aWFsaXplcihcbiAgICAgIChpbnN0YW5jZTogUmVhY3RpdmVFbGVtZW50KSA9PiBuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcihpbnN0YW5jZSksXG4gICAgKTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBVU8sTUFBTSxnQkFBMkM7QUFBQSxFQUN0RCxjQUFjLE9BQU8sT0FBSzs7QUFDeEIsVUFBTSxnQkFBYyxnQkFBQSxFQUFhLGFBQWIsbUJBQXVCLGdCQUFlO0FBQzFELFdBQU8sWUFBWSxtQkFBbUIsWUFBWSxZQUFZLEtBQUssQ0FBQztBQUFBLEVBQ3RFO0FBQUEsRUFDQSxZQUFZLE9BQU8sT0FBSzs7QUFDdEIsVUFBTSxnQkFBYyxnQkFBQSxFQUFhLGFBQWIsbUJBQXVCLGdCQUFlO0FBQzFELFdBQU8sWUFBWSxRQUFRLEtBQUssSUFBSSxZQUFZLFVBQVUsS0FBSyxJQUFJO0FBQUEsRUFBQTs7QUNQakUsU0FBVSxhQUFhLE9BQWM7O0FBQ3pDLFFBQU0sZ0JBQWMsZ0JBQUEsRUFBYSxhQUFiLG1CQUF1QixnQkFBZTtBQUNuRCxTQUFBLFlBQVksZUFBZSxLQUFLLEtBQUssWUFBWSxRQUFRLEtBQUssSUFDakUsWUFBWSxXQUNWLFlBQVksUUFBUSxLQUFLLEdBQ3pCLFlBQVksU0FBUyxLQUFLLEdBQzFCLFlBQVksUUFBUSxLQUFLLENBQUMsSUFFNUI7QUFDTjtBQ1hhLE1BQUEsWUFBWSxDQUN2QixZQUNxQjtBQUNkLFNBQUEsQ0FDTCxRQUNBLFlBQ087O0FBQ1AsVUFBTSxFQUFFLE1BQU0sVUFBVSxLQUFTLElBQUE7QUFFM0IsVUFBQSxTQUFRLHNCQUFXLG9CQUFvQixJQUFJLFFBQVEsTUFBM0MsbUJBQThDLElBQUksVUFBbEQsbUJBQXlELFNBQVE7QUFJbkUsMEJBQUE7QUFFWixRQUFLLFlBQXdCLFFBQVE7QUFJbkMsZ0JBQVUsQ0FBQyxNQUFPLEtBQUssT0FBTyxLQUFLLE9BQU8sQ0FBQztBQUFBLElBQUEsV0FDakMsWUFBd0IsUUFB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
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
* @param element The starting SbbDatepickerElement element.
|
|
7
7
|
* @param trigger The id or the reference of the input.
|
|
8
8
|
*/
|
|
9
|
-
export declare function findInput(element: HTMLElement, trigger?: string | HTMLElement | null): HTMLInputElement | null;
|
|
9
|
+
export declare function findInput(element: HTMLElement, trigger?: string | HTMLElement | null, inputSelector?: string): HTMLInputElement | null;
|
|
10
10
|
//# sourceMappingURL=input-element.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/input-element.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"input-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/input-element.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,EACrC,aAAa,SAAU,GACtB,gBAAgB,GAAG,IAAI,CAOzB"}
|
package/development/core/dom.js
CHANGED
|
@@ -44,11 +44,11 @@ function hostContext(selector, element) {
|
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
46
|
const ACTION_ELEMENTS = "a,button,sbb-teaser-hero,sbb-teaser";
|
|
47
|
-
function findInput(element, trigger) {
|
|
47
|
+
function findInput(element, trigger, inputSelector = "input") {
|
|
48
48
|
var _a;
|
|
49
49
|
if (!trigger) {
|
|
50
50
|
const parent = (_a = element.closest) == null ? void 0 : _a.call(element, "sbb-form-field");
|
|
51
|
-
return parent == null ? void 0 : parent.querySelector(
|
|
51
|
+
return parent == null ? void 0 : parent.querySelector(inputSelector);
|
|
52
52
|
}
|
|
53
53
|
return findReferencedElement(trigger);
|
|
54
54
|
}
|
|
@@ -133,4 +133,4 @@ export {
|
|
|
133
133
|
pageScrollDisabled,
|
|
134
134
|
setOrRemoveAttribute
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYW5pbWF0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2JyZWFrcG9pbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vZmluZC1yZWZlcmVuY2VkLWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vaG9zdC1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2lucHV0LWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vbGVhbi1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1plcm9BbmltYXRpb25EdXJhdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoY3NzVmFyaWFibGVOYW1lKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChhbmltYXRpb25EdXJhdGlvbikgPT09IDA7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjb25zdCBicmVha3BvaW50cyA9IFsnemVybycsICdtaWNybycsICdzbWFsbCcsICdtZWRpdW0nLCAnd2lkZScsICdsYXJnZScsICd1bHRyYSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgYnJlYWtwb2ludHMpW251bWJlcl07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRvY3VtZW50IG1hdGNoZXMgYSBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5LlxuICogSXQgd2lsbCByZWx5IG9uIHRoZSBnbG9iYWwgQ1NTIHZhcmlhYmxlcyB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIHRoZSBicmVha3BvaW50cy5cbiAqXG4gKiBAcGFyYW0gZnJvbSBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWluLXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB0byBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWF4LXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIFdoZXRoZXIgdGhlIG1heCBicmVha3BvaW50IHNob3VsZCBiZSBpbmNsdWRlZFxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2luZG93IG1hdGNoZXMgdGhlIGJyZWFrcG9pbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JyZWFrcG9pbnQoXG4gIGZyb20/OiBCcmVha3BvaW50LFxuICB0bz86IEJyZWFrcG9pbnQsXG4gIHByb3BlcnRpZXM/OiB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiBib29sZWFuIH0sXG4pOiBib29sZWFuIHwgbnVsbCB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogTG9va3MgZm9yIHRoZSBjbG9zZXN0IGVsZW1lbnQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlbGVjdG9yIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBSZXR1cm5zIG51bGwsIGlmIG5vbmUgb2YgdGhlIGFuY2VzdG9yIG1hdGNoLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3IgdG8gbWF0Y2ggYW5jZXN0b3IgYWdhaW5zdC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQgZnJvbSB3aGljaCB0byBzdGFydCB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Igb3IgbnVsbCBpZiBub25lIGlzIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9zdENvbnRleHQoc2VsZWN0b3I6IHN0cmluZywgZWxlbWVudDogRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gU3RhcnQgd2l0aCBwYXJlbnQgZWxlbWVudCBpbiBvcmRlciB0byBhdm9pZCBmaW5kaW5nIGVsZW1lbnQgaXRzZWxmXG4gIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB3aGlsZSAoZWxlbWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSBkb2N1bWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSB3aW5kb3cpIHtcbiAgICBjb25zdCBtYXRjaCA9IGVsZW1lbnQuY2xvc2VzdChzZWxlY3Rvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgZWxlbWVudCA9IChlbGVtZW50LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBBIGxpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGFsbG93IGFub3RoZXIgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50IGluc2lkZSB0aGVtLlxuLy8gTmVlZHMgdG8gYmUgZXh0ZW5kZWQgaWYgYWRkaXRpb25hbCBlbGVtZW50cyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS5cbmV4cG9ydCBjb25zdCBBQ1RJT05fRUxFTUVOVFMgPSAnYSxidXR0b24sc2JiLXRlYXNlci1oZXJvLHNiYi10ZWFzZXInO1xuIiwiaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC5qcyc7XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgcmV0dXJucyB0aGUgcmVsYXRlZCBpbnB1dCByZWZlcmVuY2UsIGlmIGl0IGV4aXN0cyByZXNwZWN0aW5nIGZvbGxvd2luZyBwcmlvcml0eS5cbiAqIDEuIElucHV0IGZpZWxkIGluIGBzYmItZm9ybS1maWVsZGAgKGlmIHRyaWdnZXIgaXMgdW5kZWZpZW5kKVxuICogMi4gSW5wdXQgcmVmZXJlbmNlZCBieSBpZCAodHJpZ2dlciBpcyBzdHJpbmcpXG4gKiAzLiBJbnB1dCByZWZlcmVuY2VkIGRpcmVjdGx5ICh0cmlnZ2VyIGlzIEhUTUxFbGVtZW50KVxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHN0YXJ0aW5nIFNiYkRhdGVwaWNrZXJFbGVtZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgaWQgb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgaW5wdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICBpZiAoIXRyaWdnZXIpIHtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKTtcbiAgICByZXR1cm4gcGFyZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0cmlnZ2VyKTtcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGRvY3VtZW50IGhhcyB0aGUgYHNiYi1sZWFuYCBjbGFzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGVhbigpOiBib29sZWFuIHtcbiAgcmV0dXJuICFpc1NlcnZlciAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYmItbGVhbicpO1xufVxuIiwiLyoqXG4gKiBTZXQgdGhlIGF0dHJpYnV0ZSBvbmx5IGlmIHZhbHVlIGlzIG5vdCAnZmFsc2UnLCBvdGhlcndpc2UgcmVtb3ZlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiLy8gVGhpcyBmaWxlIGlzIGZyZWVseSBpbnNwaXJlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHNvbHV0aW9uLlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvY2RrL3BsYXRmb3JtL3BsYXRmb3JtLnRzXG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8vIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIFY4IEJyZWFrIEl0ZXJhdG9yLiBUaGUgVjggY2hlY2tcbi8vIGlzIG5lY2Vzc2FyeSB0byBkZXRlY3QgYWxsIEJsaW5rIGJhc2VkIGJyb3dzZXJzLlxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcblxuLy8gV2UgbmVlZCBhIHRyeS9jYXRjaCBhcm91bmQgdGhlIHJlZmVyZW5jZSB0byBgSW50bGAsIGJlY2F1c2UgYWNjZXNzaW5nIGl0IGluIHNvbWUgY2FzZXMgY2FuXG4vLyBjYXVzZSBJRSB0byB0aHJvdy4gVGhlc2UgY2FzZXMgYXJlIHRpZWQgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBjYW4gaGFwcGVuIGlmXG4vLyB0aGUgY29uc3VtZXIgaXMgcHJvdmlkaW5nIGEgcG9seWZpbGxlZCBgTWFwYC4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2lzc3Vlcy8zMTg5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNTY4N1xudHJ5IHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmIChJbnRsIGFzIGFueSkudjhCcmVha0l0ZXJhdG9yO1xufSBjYXRjaCB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IGZhbHNlO1xufVxuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIE1pY3Jvc29mdCBFZGdlLiAqL1xuZXhwb3J0IGNvbnN0IGlzRWRnZSA9ICFpc1NlcnZlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBNaWNyb3NvZnQgVHJpZGVudC4gKi9cbmV4cG9ydCBjb25zdCBpc1RyaWRlbnQgPSAhaXNTZXJ2ZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gRWRnZUhUTUwgYW5kIFRyaWRlbnQgbW9jayBCbGluayBzcGVjaWZpYyB0aGluZ3MgYW5kIG5lZWQgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGNoZWNrLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBCbGluay4gKi9cbmV4cG9ydCBjb25zdCBpc0JsaW5rID1cbiAgIWlzU2VydmVyICYmXG4gICEhKCh3aW5kb3cgYXMgYW55KS5jaHJvbWUgfHwgaGFzVjhCcmVha0l0ZXJhdG9yKSAmJlxuICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAhaXNFZGdlICYmXG4gICFpc1RyaWRlbnQ7XG5cbi8vIFdlYmtpdCBpcyBwYXJ0IG9mIHRoZSB1c2VyQWdlbnQgaW4gRWRnZUhUTUwsIEJsaW5rIGFuZCBUcmlkZW50LiBUaGVyZWZvcmUsIHdlIG5lZWQgdG9cbi8vIGVuc3VyZSB0aGF0IFdlYmtpdCBydW5zIHN0YW5kYWxvbmUgYW5kIGlzIG5vdCB1c2VkIGFzIGFub3RoZXIgZW5naW5lJ3MgYmFzZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgV2ViS2l0LiAqL1xuZXhwb3J0IGNvbnN0IGlzV2Via2l0ID1cbiAgIWlzU2VydmVyICYmIC9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWlzQmxpbmsgJiYgIWlzRWRnZSAmJiAhaXNUcmlkZW50O1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBcHBsZSBpT1MuICovXG5leHBvcnQgY29uc3QgaXNJT1MgPVxuICAhaXNTZXJ2ZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG5cbi8vIEl0J3MgZGlmZmljdWx0IHRvIGRldGVjdCB0aGUgcGxhaW4gR2Vja28gZW5naW5lLCBiZWNhdXNlIG1vc3Qgb2YgdGhlIGJyb3dzZXJzIGlkZW50aWZ5XG4vLyB0aGVtIHNlbGYgYXMgR2Vja28tbGlrZSBicm93c2VycyBhbmQgbW9kaWZ5IHRoZSB1c2VyQWdlbnQncyBhY2NvcmRpbmcgdG8gdGhhdC5cbi8vIFNpbmNlIHdlIG9ubHkgY292ZXIgb25lIGV4cGxpY2l0IEZpcmVmb3ggY2FzZSwgd2UgY2FuIHNpbXBseSBjaGVjayBmb3IgRmlyZWZveFxuLy8gaW5zdGVhZCBvZiBoYXZpbmcgYW4gdW5zdGFibGUgY2hlY2sgZm9yIEdlY2tvLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBGaXJlZm94LiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICFpc1NlcnZlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIEFuZHJvaWQuICovXG4vLyBUcmlkZW50IG9uIG1vYmlsZSBhZGRzIHRoZSBhbmRyb2lkIHBsYXRmb3JtIHRvIHRoZSB1c2VyQWdlbnQgdG8gdHJpY2sgZGV0ZWN0aW9ucy5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAhaXNTZXJ2ZXIgJiYgL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc1RyaWRlbnQ7XG5cbi8vIFNhZmFyaSBicm93c2VycyB3aWxsIGluY2x1ZGUgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZWlyIHVzZXJBZ2VudC4gU29tZSBicm93c2VycyBtYXkgZmFrZVxuLy8gdGhpcyBhbmQganVzdCBwbGFjZSB0aGUgU2FmYXJpIGtleXdvcmQgaW4gdGhlIHVzZXJBZ2VudC4gVG8gYmUgbW9yZSBzYWZlIGFib3V0IFNhZmFyaSBldmVyeVxuLy8gU2FmYXJpIGJyb3dzZXIgc2hvdWxkIGFsc28gdXNlIFdlYmtpdCBhcyBpdHMgbGF5b3V0IGVuZ2luZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgU2FmYXJpLiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gIWlzU2VydmVyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIGlzV2Via2l0O1xuXG4vKipcbiAqIFdlIGp1c3QgY2hlY2sgZm9yIHRoZSBibGluayBlbmdpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Nocm9taXVtID0gaXNCbGluaztcblxuLyoqIFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIHJlbmRlcmVkIGluIGEgTmV4dC5qcyBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBpc05leHRqcyA9ICgpOiBib29sZWFuID0+ICEhKGdsb2JhbFRoaXMgYXMgeyBuZXh0Pzogb2JqZWN0IH0pLm5leHQ7XG4iLCJleHBvcnQgZnVuY3Rpb24gcGFnZVNjcm9sbERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xufVxuXG4vKipcbiAqIEhhbmRsZSB0aGUgcGFnZSBzY3JvbGwsIGFsbG93aW5nIHRvIGRpc2FibGUvZW5hYmxlIHRoZSB3aW5kb3cgc2Nyb2xsIGF2b2lkaW5nIGEgcG90ZW50aWFsXG4gKiBjb250ZW50IHNoaWZ0IGNhdXNlZCBieSB0aGUgZGlzYXBwZWFyYW5jZS9hcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTY3JvbGxIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfaGVpZ2h0ITogc3RyaW5nO1xuICBwcml2YXRlIF9wb3NpdGlvbiE6IHN0cmluZztcbiAgcHJpdmF0ZSBfb3ZlcmZsb3chOiBzdHJpbmc7XG4gIHByaXZhdGUgX21hcmdpbklubGluZUVuZCE6IHN0cmluZztcblxuICBwdWJsaWMgZGlzYWJsZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAocGFnZVNjcm9sbERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTYXZlIGFueSBwcmUtZXhpc3Rpbmcgc3R5bGVzIHRvIHJlYXBwbHkgdGhlbSB0byB0aGUgYm9keSB3aGVuIGVuYWJsaW5nIHRoZSBzY3JvbGwgYWdhaW4uXG4gICAgdGhpcy5faGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQ7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJmbG93ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICB0aGlzLl9tYXJnaW5JbmxpbmVFbmQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZDtcblxuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAnMTAwZHZoJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZCA9IGAke3Njcm9sbGJhcldpZHRofXB4YDtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zY3JvbGxiYXItd2lkdGgnLCBgJHtzY3JvbGxiYXJXaWR0aH1weGApO1xuXG4gICAgZG9jdW1lbnQuYm9keS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAoIXBhZ2VTY3JvbGxEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IGJvZHkgaW5saW5lIHN0eWxlcy5cbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9IHRoaXMuX2hlaWdodCB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gdGhpcy5fcG9zaXRpb24gfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHRoaXMuX292ZXJmbG93IHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gdGhpcy5fbWFyZ2luSW5saW5lRW5kIHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXNjcm9sbGJhci13aWR0aCcsICcwJyk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItc2Nyb2xsLWRpc2FibGVkJyk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRWdCLFNBQUEsd0JBQXdCLFNBQXNCLGlCQUF1QjtBQUNuRixNQUFJLFVBQVU7QUFDTCxXQUFBO0FBQUEsRUFBQTtBQUVULFFBQU0sb0JBQW9CLGlCQUFpQixPQUFPLEVBQUUsaUJBQWlCLGVBQWU7QUFFN0UsU0FBQSxXQUFXLGlCQUFpQixNQUFNO0FBQzNDO0FDUGEsTUFBQSxjQUFjLENBQUMsUUFBUSxTQUFTLFNBQVMsVUFBVSxRQUFRLFNBQVMsT0FBTztBQVl4RSxTQUFBLGFBQ2QsTUFDQSxJQUNBLFlBQThDO0FBRTlDLE1BQUksVUFBVTtBQUNMLFdBQUE7QUFBQSxFQUFBO0FBR0gsUUFBQSxnQkFBZ0IsaUJBQWlCLFNBQVMsZUFBZTtBQUMvRCxRQUFNLGdCQUFnQixPQUFPLGNBQWMsaUJBQWlCLG9CQUFvQixJQUFJLE1BQU0sSUFBSTtBQUN4RixRQUFBLGdCQUFnQixLQUNsQixHQUNFLFdBQ0UsY0FBYyxpQkFDWixvQkFBb0IsRUFBRSxLQUFJLHlDQUFZLHdCQUF1QixRQUFRLEtBQUssRUFBRSxDQUM3RSxNQUNFLHlDQUFZLHdCQUF1QixJQUFJLE9BQzlDLFFBQ0E7QUFFRSxRQUFBLFdBQVcsaUJBQWlCLGVBQWUsYUFBYTtBQUN4RCxRQUFBLFdBQVcsaUJBQWlCLGVBQWUsYUFBYTtBQUN4RCxRQUFBLE1BQU0saUJBQWlCLGlCQUFpQjtBQUV2QyxTQUFBLE9BQU8sV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUcsUUFBUSxFQUFFLEVBQUU7QUFDM0Q7QUNqQ00sU0FBVSxzQkFDZCxXQUErQjtBQUUvQixNQUFJLFVBQVU7QUFDTCxXQUFBO0FBQUEsRUFBQSxXQUNFLE9BQU8sY0FBYyxV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
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYW5pbWF0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2JyZWFrcG9pbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vZmluZC1yZWZlcmVuY2VkLWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vaG9zdC1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2lucHV0LWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vbGVhbi1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1plcm9BbmltYXRpb25EdXJhdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoY3NzVmFyaWFibGVOYW1lKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChhbmltYXRpb25EdXJhdGlvbikgPT09IDA7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjb25zdCBicmVha3BvaW50cyA9IFsnemVybycsICdtaWNybycsICdzbWFsbCcsICdtZWRpdW0nLCAnd2lkZScsICdsYXJnZScsICd1bHRyYSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgYnJlYWtwb2ludHMpW251bWJlcl07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRvY3VtZW50IG1hdGNoZXMgYSBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5LlxuICogSXQgd2lsbCByZWx5IG9uIHRoZSBnbG9iYWwgQ1NTIHZhcmlhYmxlcyB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIHRoZSBicmVha3BvaW50cy5cbiAqXG4gKiBAcGFyYW0gZnJvbSBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWluLXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB0byBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWF4LXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIFdoZXRoZXIgdGhlIG1heCBicmVha3BvaW50IHNob3VsZCBiZSBpbmNsdWRlZFxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2luZG93IG1hdGNoZXMgdGhlIGJyZWFrcG9pbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JyZWFrcG9pbnQoXG4gIGZyb20/OiBCcmVha3BvaW50LFxuICB0bz86IEJyZWFrcG9pbnQsXG4gIHByb3BlcnRpZXM/OiB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiBib29sZWFuIH0sXG4pOiBib29sZWFuIHwgbnVsbCB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogTG9va3MgZm9yIHRoZSBjbG9zZXN0IGVsZW1lbnQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlbGVjdG9yIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBSZXR1cm5zIG51bGwsIGlmIG5vbmUgb2YgdGhlIGFuY2VzdG9yIG1hdGNoLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3IgdG8gbWF0Y2ggYW5jZXN0b3IgYWdhaW5zdC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQgZnJvbSB3aGljaCB0byBzdGFydCB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Igb3IgbnVsbCBpZiBub25lIGlzIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9zdENvbnRleHQoc2VsZWN0b3I6IHN0cmluZywgZWxlbWVudDogRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gU3RhcnQgd2l0aCBwYXJlbnQgZWxlbWVudCBpbiBvcmRlciB0byBhdm9pZCBmaW5kaW5nIGVsZW1lbnQgaXRzZWxmXG4gIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB3aGlsZSAoZWxlbWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSBkb2N1bWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSB3aW5kb3cpIHtcbiAgICBjb25zdCBtYXRjaCA9IGVsZW1lbnQuY2xvc2VzdChzZWxlY3Rvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgZWxlbWVudCA9IChlbGVtZW50LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBBIGxpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGFsbG93IGFub3RoZXIgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50IGluc2lkZSB0aGVtLlxuLy8gTmVlZHMgdG8gYmUgZXh0ZW5kZWQgaWYgYWRkaXRpb25hbCBlbGVtZW50cyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS5cbmV4cG9ydCBjb25zdCBBQ1RJT05fRUxFTUVOVFMgPSAnYSxidXR0b24sc2JiLXRlYXNlci1oZXJvLHNiYi10ZWFzZXInO1xuIiwiaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC5qcyc7XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgcmV0dXJucyB0aGUgcmVsYXRlZCBpbnB1dCByZWZlcmVuY2UsIGlmIGl0IGV4aXN0cyByZXNwZWN0aW5nIGZvbGxvd2luZyBwcmlvcml0eS5cbiAqIDEuIElucHV0IGZpZWxkIGluIGBzYmItZm9ybS1maWVsZGAgKGlmIHRyaWdnZXIgaXMgdW5kZWZpZW5kKVxuICogMi4gSW5wdXQgcmVmZXJlbmNlZCBieSBpZCAodHJpZ2dlciBpcyBzdHJpbmcpXG4gKiAzLiBJbnB1dCByZWZlcmVuY2VkIGRpcmVjdGx5ICh0cmlnZ2VyIGlzIEhUTUxFbGVtZW50KVxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHN0YXJ0aW5nIFNiYkRhdGVwaWNrZXJFbGVtZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgaWQgb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgaW5wdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuICBpbnB1dFNlbGVjdG9yID0gJ2lucHV0Jyxcbik6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgY29uc3QgcGFyZW50ID0gZWxlbWVudC5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk7XG4gICAgcmV0dXJuIHBhcmVudD8ucXVlcnlTZWxlY3RvcihpbnB1dFNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgfVxuXG4gIHJldHVybiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8SFRNTElucHV0RWxlbWVudD4odHJpZ2dlcik7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBkb2N1bWVudCBoYXMgdGhlIGBzYmItbGVhbmAgY2xhc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0xlYW4oKTogYm9vbGVhbiB7XG4gIHJldHVybiAhaXNTZXJ2ZXIgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnc2JiLWxlYW4nKTtcbn1cbiIsIi8qKlxuICogU2V0IHRoZSBhdHRyaWJ1dGUgb25seSBpZiB2YWx1ZSBpcyBub3QgJ2ZhbHNlJywgb3RoZXJ3aXNlIHJlbW92ZSBhdHRyaWJ1dGUuXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCB0aGF0IHdpbGwgaGF2ZSB0aGUgYXR0cmlidXRlXG4gKiBAcGFyYW0gYXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgbmFtZVxuICogQHBhcmFtIHZhbHVlIFRoZSBhdHRyaWJ1dGUgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldE9yUmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpOiB2b2lkIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSk7XG4gIH1cbn1cbiIsIi8vIFRoaXMgZmlsZSBpcyBmcmVlbHkgaW5zcGlyZWQgYnkgQW5ndWxhciBNYXRlcmlhbCBzb2x1dGlvbi5cbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL2Nkay9wbGF0Zm9ybS9wbGF0Zm9ybS50c1xuaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuXG4vLyBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIHN1cHBvcnRzIHRoZSBWOCBCcmVhayBJdGVyYXRvci4gVGhlIFY4IGNoZWNrXG4vLyBpcyBuZWNlc3NhcnkgdG8gZGV0ZWN0IGFsbCBCbGluayBiYXNlZCBicm93c2Vycy5cbmxldCBoYXNWOEJyZWFrSXRlcmF0b3I6IGJvb2xlYW47XG5cbi8vIFdlIG5lZWQgYSB0cnkvY2F0Y2ggYXJvdW5kIHRoZSByZWZlcmVuY2UgdG8gYEludGxgLCBiZWNhdXNlIGFjY2Vzc2luZyBpdCBpbiBzb21lIGNhc2VzIGNhblxuLy8gY2F1c2UgSUUgdG8gdGhyb3cuIFRoZXNlIGNhc2VzIGFyZSB0aWVkIHRvIHBhcnRpY3VsYXIgdmVyc2lvbnMgb2YgV2luZG93cyBhbmQgY2FuIGhhcHBlbiBpZlxuLy8gdGhlIGNvbnN1bWVyIGlzIHByb3ZpZGluZyBhIHBvbHlmaWxsZWQgYE1hcGAuIFNlZTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvQ2hha3JhQ29yZS9pc3N1ZXMvMzE4OVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMTU2ODdcbnRyeSB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IHR5cGVvZiBJbnRsICE9PSAndW5kZWZpbmVkJyAmJiAoSW50bCBhcyBhbnkpLnY4QnJlYWtJdGVyYXRvcjtcbn0gY2F0Y2gge1xuICBoYXNWOEJyZWFrSXRlcmF0b3IgPSBmYWxzZTtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBNaWNyb3NvZnQgRWRnZS4gKi9cbmV4cG9ydCBjb25zdCBpc0VkZ2UgPSAhaXNTZXJ2ZXIgJiYgLyhlZGdlKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgTWljcm9zb2Z0IFRyaWRlbnQuICovXG5leHBvcnQgY29uc3QgaXNUcmlkZW50ID0gIWlzU2VydmVyICYmIC8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8vIEVkZ2VIVE1MIGFuZCBUcmlkZW50IG1vY2sgQmxpbmsgc3BlY2lmaWMgdGhpbmdzIGFuZCBuZWVkIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhpcyBjaGVjay5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgQmxpbmsuICovXG5leHBvcnQgY29uc3QgaXNCbGluayA9XG4gICFpc1NlcnZlciAmJlxuICAhISgod2luZG93IGFzIGFueSkuY2hyb21lIHx8IGhhc1Y4QnJlYWtJdGVyYXRvcikgJiZcbiAgdHlwZW9mIENTUyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgIWlzRWRnZSAmJlxuICAhaXNUcmlkZW50O1xuXG4vLyBXZWJraXQgaXMgcGFydCBvZiB0aGUgdXNlckFnZW50IGluIEVkZ2VIVE1MLCBCbGluayBhbmQgVHJpZGVudC4gVGhlcmVmb3JlLCB3ZSBuZWVkIHRvXG4vLyBlbnN1cmUgdGhhdCBXZWJraXQgcnVucyBzdGFuZGFsb25lIGFuZCBpcyBub3QgdXNlZCBhcyBhbm90aGVyIGVuZ2luZSdzIGJhc2UuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCByZW5kZXJpbmcgZW5naW5lIGlzIFdlYktpdC4gKi9cbmV4cG9ydCBjb25zdCBpc1dlYmtpdCA9XG4gICFpc1NlcnZlciAmJiAvQXBwbGVXZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc0JsaW5rICYmICFpc0VkZ2UgJiYgIWlzVHJpZGVudDtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gaXMgQXBwbGUgaU9TLiAqL1xuZXhwb3J0IGNvbnN0IGlzSU9TID1cbiAgIWlzU2VydmVyICYmIC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICEoJ01TU3RyZWFtJyBpbiB3aW5kb3cpO1xuXG4vLyBJdCdzIGRpZmZpY3VsdCB0byBkZXRlY3QgdGhlIHBsYWluIEdlY2tvIGVuZ2luZSwgYmVjYXVzZSBtb3N0IG9mIHRoZSBicm93c2VycyBpZGVudGlmeVxuLy8gdGhlbSBzZWxmIGFzIEdlY2tvLWxpa2UgYnJvd3NlcnMgYW5kIG1vZGlmeSB0aGUgdXNlckFnZW50J3MgYWNjb3JkaW5nIHRvIHRoYXQuXG4vLyBTaW5jZSB3ZSBvbmx5IGNvdmVyIG9uZSBleHBsaWNpdCBGaXJlZm94IGNhc2UsIHdlIGNhbiBzaW1wbHkgY2hlY2sgZm9yIEZpcmVmb3hcbi8vIGluc3RlYWQgb2YgaGF2aW5nIGFuIHVuc3RhYmxlIGNoZWNrIGZvciBHZWNrby5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgRmlyZWZveC4gKi9cbmV4cG9ydCBjb25zdCBpc0ZpcmVmb3ggPSAhaXNTZXJ2ZXIgJiYgLyhmaXJlZm94fG1pbmVmaWVsZCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBbmRyb2lkLiAqL1xuLy8gVHJpZGVudCBvbiBtb2JpbGUgYWRkcyB0aGUgYW5kcm9pZCBwbGF0Zm9ybSB0byB0aGUgdXNlckFnZW50IHRvIHRyaWNrIGRldGVjdGlvbnMuXG5leHBvcnQgY29uc3QgaXNBbmRyb2lkID0gIWlzU2VydmVyICYmIC9hbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAhaXNUcmlkZW50O1xuXG4vLyBTYWZhcmkgYnJvd3NlcnMgd2lsbCBpbmNsdWRlIHRoZSBTYWZhcmkga2V5d29yZCBpbiB0aGVpciB1c2VyQWdlbnQuIFNvbWUgYnJvd3NlcnMgbWF5IGZha2Vcbi8vIHRoaXMgYW5kIGp1c3QgcGxhY2UgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZSB1c2VyQWdlbnQuIFRvIGJlIG1vcmUgc2FmZSBhYm91dCBTYWZhcmkgZXZlcnlcbi8vIFNhZmFyaSBicm93c2VyIHNob3VsZCBhbHNvIHVzZSBXZWJraXQgYXMgaXRzIGxheW91dCBlbmdpbmUuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIFNhZmFyaS4gKi9cbmV4cG9ydCBjb25zdCBpc1NhZmFyaSA9ICFpc1NlcnZlciAmJiAvc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiBpc1dlYmtpdDtcblxuLyoqXG4gKiBXZSBqdXN0IGNoZWNrIGZvciB0aGUgYmxpbmsgZW5naW5lLlxuICovXG5leHBvcnQgY29uc3QgaXNDaHJvbWl1bSA9IGlzQmxpbms7XG5cbi8qKiBXaGV0aGVyIHRoZSBhcHBsaWNhdGlvbiBpcyBiZWluZyByZW5kZXJlZCBpbiBhIE5leHQuanMgZW52aXJvbm1lbnQuICovXG5leHBvcnQgY29uc3QgaXNOZXh0anMgPSAoKTogYm9vbGVhbiA9PiAhIShnbG9iYWxUaGlzIGFzIHsgbmV4dD86IG9iamVjdCB9KS5uZXh0O1xuIiwiZXhwb3J0IGZ1bmN0aW9uIHBhZ2VTY3JvbGxEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRvY3VtZW50LmJvZHkuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1zY3JvbGwtZGlzYWJsZWQnKTtcbn1cblxuLyoqXG4gKiBIYW5kbGUgdGhlIHBhZ2Ugc2Nyb2xsLCBhbGxvd2luZyB0byBkaXNhYmxlL2VuYWJsZSB0aGUgd2luZG93IHNjcm9sbCBhdm9pZGluZyBhIHBvdGVudGlhbFxuICogY29udGVudCBzaGlmdCBjYXVzZWQgYnkgdGhlIGRpc2FwcGVhcmFuY2UvYXBwZWFyYW5jZSBvZiB0aGUgc2Nyb2xsYmFyLlxuICovXG5leHBvcnQgY2xhc3MgU2JiU2Nyb2xsSGFuZGxlciB7XG4gIHByaXZhdGUgX2hlaWdodCE6IHN0cmluZztcbiAgcHJpdmF0ZSBfcG9zaXRpb24hOiBzdHJpbmc7XG4gIHByaXZhdGUgX292ZXJmbG93ITogc3RyaW5nO1xuICBwcml2YXRlIF9tYXJnaW5JbmxpbmVFbmQhOiBzdHJpbmc7XG5cbiAgcHVibGljIGRpc2FibGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHBhZ2VTY3JvbGxEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2F2ZSBhbnkgcHJlLWV4aXN0aW5nIHN0eWxlcyB0byByZWFwcGx5IHRoZW0gdG8gdGhlIGJvZHkgd2hlbiBlbmFibGluZyB0aGUgc2Nyb2xsIGFnYWluLlxuICAgIHRoaXMuX2hlaWdodCA9IGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0O1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbjtcbiAgICB0aGlzLl9vdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgdGhpcy5fbWFyZ2luSW5saW5lRW5kID0gZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gJzEwMGR2aCc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQgPSBgJHtzY3JvbGxiYXJXaWR0aH1weGA7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItc2Nyb2xsYmFyLXdpZHRoJywgYCR7c2Nyb2xsYmFyV2lkdGh9cHhgKTtcblxuICAgIGRvY3VtZW50LmJvZHkudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1zY3JvbGwtZGlzYWJsZWQnLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCFwYWdlU2Nyb2xsRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJldmVydCBib2R5IGlubGluZSBzdHlsZXMuXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSB0aGlzLl9oZWlnaHQgfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9IHRoaXMuX3Bvc2l0aW9uIHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSB0aGlzLl9vdmVyZmxvdyB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZCA9IHRoaXMuX21hcmdpbklubGluZUVuZCB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zY3JvbGxiYXItd2lkdGgnLCAnMCcpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVnQixTQUFBLHdCQUF3QixTQUFzQixpQkFBdUI7QUFDbkYsTUFBSSxVQUFVO0FBQ0wsV0FBQTtBQUFBLEVBQUE7QUFFVCxRQUFNLG9CQUFvQixpQkFBaUIsT0FBTyxFQUFFLGlCQUFpQixlQUFlO0FBRTdFLFNBQUEsV0FBVyxpQkFBaUIsTUFBTTtBQUMzQztBQ1BhLE1BQUEsY0FBYyxDQUFDLFFBQVEsU0FBUyxTQUFTLFVBQVUsUUFBUSxTQUFTLE9BQU87QUFZeEUsU0FBQSxhQUNkLE1BQ0EsSUFDQSxZQUE4QztBQUU5QyxNQUFJLFVBQVU7QUFDTCxXQUFBO0FBQUEsRUFBQTtBQUdILFFBQUEsZ0JBQWdCLGlCQUFpQixTQUFTLGVBQWU7QUFDL0QsUUFBTSxnQkFBZ0IsT0FBTyxjQUFjLGlCQUFpQixvQkFBb0IsSUFBSSxNQUFNLElBQUk7QUFDeEYsUUFBQSxnQkFBZ0IsS0FDbEIsR0FDRSxXQUNFLGNBQWMsaUJBQ1osb0JBQW9CLEVBQUUsS0FBSSx5Q0FBWSx3QkFBdUIsUUFBUSxLQUFLLEVBQUUsQ0FDN0UsTUFDRSx5Q0FBWSx3QkFBdUIsSUFBSSxPQUM5QyxRQUNBO0FBRUUsUUFBQSxXQUFXLGlCQUFpQixlQUFlLGFBQWE7QUFDeEQsUUFBQSxXQUFXLGlCQUFpQixlQUFlLGFBQWE7QUFDeEQsUUFBQSxNQUFNLGlCQUFpQixpQkFBaUI7QUFFdkMsU0FBQSxPQUFPLFdBQVcsR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLFFBQVEsRUFBRSxFQUFFO0FBQzNEO0FDakNNLFNBQVUsc0JBQ2QsV0FBK0I7QUFFL0IsTUFBSSxVQUFVO0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/eventing/throttle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/eventing/throttle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,MAAM,CAAC,EACP,OAAO,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAerD,CAAC"}
|
|
@@ -39,6 +39,7 @@ export declare const i18nCloseNotification: Record<string, string>;
|
|
|
39
39
|
export declare const i18nDialog: Record<string, string>;
|
|
40
40
|
export declare const i18nCloseDialog: Record<string, string>;
|
|
41
41
|
export declare const i18nCloseNavigation: Record<string, string>;
|
|
42
|
+
export declare const i18nCloseSidebar: Record<string, string>;
|
|
42
43
|
export declare const i18nClosePopover: Record<string, string>;
|
|
43
44
|
export declare const i18nGoBack: Record<string, string>;
|
|
44
45
|
export declare const i18nToday: Record<string, string>;
|
|
@@ -79,4 +80,8 @@ export declare const i18nItemsPerPage: Record<string, string>;
|
|
|
79
80
|
export declare const i18nSelectedPage: (pageNumber: number) => Record<string, string>;
|
|
80
81
|
export declare const i18nCheckboxRequired: Record<string, string>;
|
|
81
82
|
export declare const i18nSelectionRequired: Record<string, string>;
|
|
83
|
+
export declare const i18nInputRequired: Record<string, string>;
|
|
84
|
+
export declare const i18nDateInvalid: Record<string, string>;
|
|
85
|
+
export declare const i18nDateMin: (min: string) => Record<string, string>;
|
|
86
|
+
export declare const i18nDateMax: (max: string) => Record<string, string>;
|
|
82
87
|
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/i18n/i18n.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/i18n/i18n.ts"],"names":[],"mappings":"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"}
|