@sbb-esta/lyne-elements 3.0.0-next.1 → 3.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.component.js +19 -22
- package/action-group/action-group.component.js +3 -5
- package/alert/alert/alert.component.d.ts +5 -7
- package/alert/alert/alert.component.d.ts.map +1 -1
- package/alert/alert/alert.component.js +69 -84
- package/alert/alert-group/alert-group.component.js +2 -3
- package/autocomplete/autocomplete-base-element.js +83 -95
- package/autocomplete/autocomplete.component.js +28 -33
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +42 -50
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +4 -5
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +17 -20
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +21 -24
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +5 -5
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +27 -31
- package/button/mini-button/mini-button.component.js +1 -1
- package/button/mini-button-group/mini-button-group.component.js +1 -2
- package/calendar/calendar.component.d.ts +0 -5
- package/calendar/calendar.component.d.ts.map +1 -1
- package/calendar/calendar.component.js +129 -147
- package/card/card/card.component.js +12 -12
- package/card/card-badge/card-badge.component.js +17 -17
- package/card/common/card-action-common.js +20 -22
- package/checkbox/checkbox/checkbox.component.js +17 -20
- package/checkbox/checkbox-group/checkbox-group.component.js +39 -52
- package/checkbox/checkbox-panel/checkbox-panel.component.js +18 -21
- package/checkbox/common/checkbox-common.js +13 -15
- package/chip/chip-group/chip-group.component.js +66 -80
- package/clock/clock.component.js +50 -60
- package/container/container/container.component.js +28 -29
- package/container/sticky-bar/sticky-bar.component.js +25 -26
- package/core/a11y/focus-trap-controller.js +11 -14
- package/core/a11y/input-modality-detector.js +15 -16
- package/core/a11y/interactivity-checker.js +10 -10
- package/core/a11y/live-announcer.js +12 -14
- package/core/base-elements/button-base-element.js +58 -63
- package/core/base-elements/link-base-element.js +3 -6
- package/core/base-elements/open-close-base-element.js +1 -1
- package/core/config/config.d.ts.map +1 -1
- package/core/controllers/escapable-overlay-controller.js +10 -12
- package/core/controllers/id-reference-controller.js +13 -14
- package/core/controllers/inert-controller.js +8 -10
- package/core/controllers/slot-state-controller.js +16 -26
- package/core/datetime/date-adapter.d.ts +1 -1
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/datetime/date-adapter.js +21 -21
- package/core/datetime/native-date-adapter.d.ts +1 -1
- package/core/datetime/native-date-adapter.d.ts.map +1 -1
- package/core/datetime/native-date-adapter.js +28 -28
- package/core/decorators/force-type.js +4 -5
- package/core/decorators/id-reference.js +34 -37
- package/core/decorators/plain-date.js +16 -19
- package/core/dom/breakpoint.js +8 -8
- package/core/eventing/event-emitter.js +4 -5
- package/core/i18n/i18n.js +41 -41
- package/core/mixins/element-internals-mixin.d.ts +21 -0
- package/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/core/mixins/element-internals-mixin.js +109 -23
- package/core/mixins/form-associated-checkbox-mixin.js +32 -37
- package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-input-mixin.js +69 -93
- package/core/mixins/form-associated-mixin.js +32 -35
- package/core/mixins/form-associated-radio-button-mixin.js +3 -5
- package/core/mixins/hydration-mixin.js +12 -13
- package/core/mixins/named-slot-list-mixin.js +32 -37
- package/core/mixins/panel-mixin.js +26 -27
- package/core/mixins/readonly-mixin.d.ts.map +1 -1
- package/core/mixins/readonly-mixin.js +10 -11
- package/core/mixins.js +27 -25
- package/core/overlay/position.js +23 -23
- package/core/styles/core/mediaqueries.scss +1 -1
- package/core/styles/core.scss +70 -35
- package/core/styles/mixins/table.scss +1 -24
- package/core/testing/event-spy.js +2 -4
- package/core/testing/wait-for-image-ready.js +8 -9
- package/core/testing/wait-for-render.js +8 -9
- package/core.css +29 -0
- package/custom-elements.json +5233 -2636
- package/date-input/date-input.component.d.ts +16 -1
- package/date-input/date-input.component.d.ts.map +1 -1
- package/date-input/date-input.component.js +71 -58
- package/datepicker/common/datepicker-button.d.ts +31 -20
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common/datepicker-button.js +79 -74
- package/datepicker/common.d.ts +0 -1
- package/datepicker/common.d.ts.map +1 -1
- package/datepicker/common.js +3 -5
- package/datepicker/datepicker/datepicker.component.d.ts +23 -102
- package/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/datepicker/datepicker/datepicker.component.js +91 -233
- package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -2
- package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
- package/datepicker/datepicker-next-day/datepicker-next-day.component.js +27 -18
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -2
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
- package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +27 -18
- package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +6 -26
- package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.component.js +36 -145
- package/datepicker.js +9 -11
- package/development/accordion/accordion.component.js +4 -7
- package/development/action-group/action-group.component.js +3 -5
- package/development/alert/alert/alert.component.d.ts +5 -7
- package/development/alert/alert/alert.component.d.ts.map +1 -1
- package/development/alert/alert/alert.component.js +34 -52
- package/development/alert/alert-group/alert-group.component.js +2 -3
- package/development/autocomplete/autocomplete-base-element.js +20 -32
- package/development/autocomplete/autocomplete.component.js +7 -12
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +10 -18
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +4 -9
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +4 -7
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +4 -7
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -2
- package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -9
- package/development/button/accent-button/accent-button.component.js +1 -1
- package/development/button/accent-button-link/accent-button-link.component.js +1 -1
- package/development/button/accent-button-static/accent-button-static.component.js +1 -1
- package/development/button/button/button.component.js +1 -1
- package/development/button/button-link/button-link.component.js +1 -1
- package/development/button/button-static/button-static.component.js +1 -1
- package/development/button/common/button-common.js +1 -1
- package/development/button/mini-button/mini-button.component.js +1 -1
- package/development/button/mini-button-group/mini-button-group.component.js +2 -3
- package/development/button/secondary-button/secondary-button.component.js +1 -1
- package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
- package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
- package/development/button/transparent-button/transparent-button.component.js +1 -1
- package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
- package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
- package/development/calendar/calendar.component.d.ts +0 -5
- package/development/calendar/calendar.component.d.ts.map +1 -1
- package/development/calendar/calendar.component.js +20 -44
- package/development/card/card/card.component.js +1 -1
- package/development/card/card-badge/card-badge.component.js +2 -2
- package/development/card/card-button/card-button.component.js +1 -1
- package/development/card/card-link/card-link.component.js +1 -1
- package/development/card/common/card-action-common.js +4 -6
- package/development/checkbox/checkbox/checkbox.component.js +2 -5
- package/development/checkbox/checkbox-group/checkbox-group.component.js +8 -21
- package/development/checkbox/checkbox-panel/checkbox-panel.component.js +2 -5
- package/development/checkbox/common/checkbox-common.js +3 -5
- package/development/chip/chip/chip.component.js +1 -1
- package/development/chip/chip-group/chip-group.component.js +18 -32
- package/development/chip-label/chip-label.component.js +1 -1
- package/development/clock/clock.component.js +23 -33
- package/development/container/container/container.component.js +2 -3
- package/development/container/sticky-bar/sticky-bar.component.js +3 -4
- package/development/core/a11y/arrow-navigation.js +1 -1
- package/development/core/a11y/fake-event-detection.js +1 -1
- package/development/core/a11y/focus-trap-controller.js +6 -9
- package/development/core/a11y/focus-visible-within-controller.js +1 -1
- package/development/core/a11y/input-modality-detector.js +2 -3
- package/development/core/a11y/interactivity-checker.js +2 -2
- package/development/core/a11y/live-announcer.js +6 -8
- package/development/core/base-elements/action-base-element.js +2 -3
- package/development/core/base-elements/button-base-element.js +6 -11
- package/development/core/base-elements/link-base-element.js +4 -7
- package/development/core/base-elements/open-close-base-element.js +2 -2
- package/development/core/config/config.d.ts.map +1 -1
- package/development/core/config/config.js +1 -1
- package/development/core/controllers/escapable-overlay-controller.js +3 -5
- package/development/core/controllers/id-reference-controller.js +2 -3
- package/development/core/controllers/inert-controller.js +4 -6
- package/development/core/controllers/language-controller.js +1 -1
- package/development/core/controllers/media-matchers-controller.js +1 -1
- package/development/core/controllers/slot-state-controller.js +8 -18
- package/development/core/datetime/date-adapter.d.ts +1 -1
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/date-adapter.js +5 -5
- 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/native-date-adapter.js +4 -4
- package/development/core/decorators/force-type.js +3 -4
- package/development/core/decorators/get-override.js +1 -1
- package/development/core/decorators/handle-distinct-change.js +1 -1
- package/development/core/decorators/host-attributes.js +1 -1
- package/development/core/decorators/id-reference.js +4 -7
- package/development/core/decorators/plain-date.js +5 -8
- package/development/core/decorators/slot-state.js +1 -1
- package/development/core/dom/animation.js +1 -1
- package/development/core/dom/breakpoint.js +2 -2
- package/development/core/dom/host-context.js +1 -1
- package/development/core/dom/platform.js +1 -1
- package/development/core/dom/scroll.js +1 -1
- package/development/core/dom/set-or-remove-attribute.js +1 -1
- package/development/core/eventing/composed-path-has-attribute.js +1 -1
- package/development/core/eventing/event-emitter.js +2 -3
- package/development/core/eventing/form-element-handlers.js +1 -1
- package/development/core/eventing/forward-event.js +1 -1
- package/development/core/eventing/throttle.js +1 -1
- package/development/core/i18n/i18n.js +18 -18
- package/development/core/mixins/animation-complete-mixin.js +1 -1
- package/development/core/mixins/disabled-mixin.js +1 -1
- package/development/core/mixins/element-internals-mixin.d.ts +21 -0
- package/development/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/development/core/mixins/element-internals-mixin.js +123 -2
- package/development/core/mixins/form-associated-checkbox-mixin.js +6 -9
- package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-input-mixin.js +29 -59
- package/development/core/mixins/form-associated-mixin.js +6 -9
- package/development/core/mixins/form-associated-radio-button-mixin.js +7 -9
- package/development/core/mixins/hydration-mixin.js +3 -4
- package/development/core/mixins/named-slot-list-mixin.js +4 -7
- package/development/core/mixins/negative-mixin.js +1 -1
- package/development/core/mixins/panel-mixin.js +2 -3
- package/development/core/mixins/readonly-mixin.d.ts.map +1 -1
- package/development/core/mixins/readonly-mixin.js +4 -6
- package/development/core/mixins/required-mixin.js +1 -1
- package/development/core/mixins/update-scheduler-mixin.js +1 -1
- package/development/core/mixins.js +4 -2
- package/development/core/overlay/overlay-option-panel.js +1 -1
- package/development/core/overlay/overlay-trigger-attributes.js +1 -1
- package/development/core/overlay/overlay.js +1 -1
- package/development/core/overlay/position.js +5 -5
- package/development/core/testing/event-spy.js +3 -5
- package/development/core/testing/mocha-extensions.js +1 -1
- package/development/core/testing/wait-for-condition.js +1 -1
- package/development/core/testing/wait-for-image-ready.js +2 -3
- package/development/core/testing/wait-for-render.js +2 -3
- package/development/date-input/date-input.component.d.ts +16 -1
- package/development/date-input/date-input.component.d.ts.map +1 -1
- package/development/date-input/date-input.component.js +28 -11
- package/development/datepicker/common/datepicker-button.d.ts +31 -20
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common/datepicker-button.js +103 -90
- package/development/datepicker/common.d.ts +0 -1
- package/development/datepicker/common.d.ts.map +1 -1
- package/development/datepicker/common.js +4 -6
- package/development/datepicker/datepicker/datepicker.component.d.ts +23 -102
- package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.js +94 -337
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +2 -2
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +18 -6
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +2 -2
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +18 -6
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +6 -26
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +137 -224
- package/development/datepicker.js +3 -5
- package/development/dialog/dialog/dialog.component.d.ts +7 -16
- package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/development/dialog/dialog/dialog.component.js +78 -149
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts +2 -2
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.component.js +20 -17
- package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
- package/development/dialog/dialog-content/dialog-content.component.js +5 -46
- package/development/dialog/dialog-title/dialog-title.component.d.ts +2 -26
- package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
- package/development/dialog/dialog-title/dialog-title.component.js +12 -179
- package/development/divider/divider.component.js +2 -2
- package/development/expansion-panel/expansion-panel/expansion-panel.component.js +9 -13
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +2 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +5 -6
- package/development/file-selector/common/file-selector-common.js +2 -3
- package/development/file-selector/file-selector/file-selector.component.js +1 -1
- package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
- package/development/flip-card/flip-card/flip-card.component.js +7 -13
- package/development/flip-card/flip-card-details/flip-card-details.component.js +3 -4
- package/development/flip-card/flip-card-summary/flip-card-summary.component.js +3 -4
- package/development/footer/footer.component.js +1 -1
- package/development/form-error/form-error.component.js +3 -4
- package/development/form-field/form-field/form-field.component.d.ts +1 -1
- package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/development/form-field/form-field/form-field.component.js +39 -67
- package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
- package/development/form-field/form-field-clear/form-field-clear.component.js +6 -8
- package/development/header/common/header-action-common.js +1 -1
- package/development/header/header/header.component.js +5 -8
- package/development/header/header-button/header-button.component.js +1 -1
- package/development/header/header-link/header-link.component.js +1 -1
- package/development/icon/icon-base.d.ts +5 -3
- package/development/icon/icon-base.d.ts.map +1 -1
- package/development/icon/icon-base.js +4 -7
- package/development/icon/icon-name-mixin.js +1 -1
- package/development/icon/icon-request.js +2 -3
- package/development/icon/icon-validate.js +1 -1
- package/development/icon/icon.component.d.ts +1 -2
- package/development/icon/icon.component.d.ts.map +1 -1
- package/development/icon/icon.component.js +8 -19
- package/development/image/image.component.js +7 -9
- package/development/journey-header/journey-header.component.d.ts +5 -5
- package/development/journey-header/journey-header.component.d.ts.map +1 -1
- package/development/journey-header/journey-header.component.js +26 -40
- package/development/lead-container/lead-container.component.js +1 -1
- package/development/link/block-link/block-link.component.js +1 -1
- package/development/link/block-link-button/block-link-button.component.js +1 -1
- package/development/link/block-link-static/block-link-static.component.js +1 -1
- package/development/link/common/block-link-common.js +1 -1
- package/development/link/common/inline-link-common.js +1 -1
- package/development/link/link/link.component.js +1 -1
- package/development/link/link-button/link-button.component.js +1 -1
- package/development/link/link-static/link-static.component.js +1 -1
- package/development/link-common-DPLJx5Uo.js +1 -1
- package/development/link-list/common/link-list-base.js +1 -1
- package/development/link-list/link-list/link-list.component.js +1 -1
- package/development/link-list/link-list-anchor/link-list-anchor.component.js +1 -1
- package/development/loading-indicator/loading-indicator.component.js +1 -1
- package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
- package/development/logo/logo.component.js +1 -1
- package/development/map-container/map-container.component.js +2 -3
- package/development/menu/common/menu-action-common.js +1 -1
- package/development/menu/menu/menu.component.js +17 -25
- package/development/menu/menu-button/menu-button.component.js +1 -1
- package/development/menu/menu-link/menu-link.component.js +1 -1
- package/development/message/message.component.d.ts +4 -8
- package/development/message/message.component.d.ts.map +1 -1
- package/development/message/message.component.js +12 -54
- package/development/navigation/common/navigation-action-common.js +3 -5
- package/development/navigation/navigation/navigation.component.js +19 -35
- package/development/navigation/navigation-button/navigation-button.component.js +1 -1
- package/development/navigation/navigation-link/navigation-link.component.js +1 -1
- package/development/navigation/navigation-list/navigation-list.component.js +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +4 -6
- package/development/navigation/navigation-section/navigation-section.component.d.ts +1 -1
- package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +27 -37
- package/development/notification/notification.component.d.ts +7 -9
- package/development/notification/notification.component.d.ts.map +1 -1
- package/development/notification/notification.component.js +47 -77
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup/optgroup-base-element.js +8 -14
- package/development/option/optgroup/optgroup.component.js +6 -10
- package/development/option/option/option-base-element.js +3 -4
- package/development/option/option/option.component.js +7 -10
- package/development/overlay/overlay-base-element.d.ts +24 -6
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +114 -15
- package/development/overlay/overlay.component.d.ts +2 -12
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +33 -98
- package/development/paginator/common/paginator-common.js +1 -1
- package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/development/paginator/paginator/paginator.component.js +2 -3
- package/development/popover/popover/popover.component.d.ts +45 -34
- package/development/popover/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover/popover.component.js +215 -172
- package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
- package/development/popover/popover.js +2 -1
- package/development/popover.js +2 -1
- package/development/radio-button/common/radio-button-common.js +6 -10
- package/development/radio-button/radio-button/radio-button.component.js +2 -5
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.js +8 -24
- package/development/radio-button/radio-button-panel/radio-button-panel.component.js +3 -7
- package/development/screen-reader-only/screen-reader-only.component.js +1 -1
- package/development/select/select.component.js +26 -49
- package/development/selection-expansion-panel/selection-expansion-panel.component.js +7 -11
- package/development/sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
- package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
- package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +4 -7
- package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
- package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
- package/development/sidebar/sidebar/sidebar.component.js +9 -16
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -1
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +3 -8
- package/development/sidebar/sidebar-container/sidebar-container.component.js +9 -13
- package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +2 -0
- package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.js +3 -9
- package/development/signet/signet.component.js +1 -1
- package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
- package/development/skiplink-list/skiplink-list.component.js +19 -10
- package/development/slider/slider.component.js +4 -6
- package/development/status/status.component.d.ts +4 -7
- package/development/status/status.component.d.ts.map +1 -1
- package/development/status/status.component.js +23 -57
- package/development/stepper/step/step.component.d.ts +2 -1
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +16 -15
- package/development/stepper/step-label/step-label.component.d.ts +3 -3
- package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.component.js +16 -17
- package/development/stepper/stepper/stepper.component.js +16 -29
- package/development/table/table-wrapper/table-wrapper.component.js +2 -7
- package/development/tabs/tab/tab.component.js +1 -1
- package/development/tabs/tab-group/tab-group.component.js +23 -38
- package/development/tabs/tab-label/tab-label.component.js +1 -1
- package/development/tag/tag/tag.component.js +7 -13
- package/development/tag/tag-group/tag-group.component.js +5 -13
- package/development/teaser/teaser.component.d.ts +6 -10
- package/development/teaser/teaser.component.d.ts.map +1 -1
- package/development/teaser/teaser.component.js +48 -76
- package/development/teaser-hero/teaser-hero.component.js +1 -1
- package/development/teaser-product/common/teaser-product-common.js +1 -1
- package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
- package/development/time-input/time-input.component.js +10 -14
- package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +2 -5
- package/development/title/title-base.d.ts +0 -8
- package/development/title/title-base.d.ts.map +1 -1
- package/development/title/title-base.js +17 -49
- package/development/title/title.component.d.ts +2 -0
- package/development/title/title.component.d.ts.map +1 -1
- package/development/title/title.component.js +9 -14
- package/development/toast/toast.component.d.ts.map +1 -1
- package/development/toast/toast.component.js +7 -16
- package/development/toggle/toggle/toggle.component.js +8 -12
- package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -1
- package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.component.js +10 -17
- package/development/toggle-check/toggle-check.component.js +1 -1
- package/development/train/train/train.component.js +1 -1
- package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
- package/development/train/train-formation/train-formation.component.js +5 -7
- package/development/train/train-wagon/train-wagon.component.js +1 -1
- package/development/visual-checkbox/visual-checkbox.component.js +1 -1
- package/dialog/dialog/dialog.component.d.ts +7 -16
- package/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/dialog/dialog/dialog.component.js +57 -87
- package/dialog/dialog-actions/dialog-actions.component.d.ts +2 -2
- package/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/dialog/dialog-actions/dialog-actions.component.js +16 -16
- package/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
- package/dialog/dialog-content/dialog-content.component.js +14 -19
- package/dialog/dialog-title/dialog-title.component.d.ts +2 -26
- package/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
- package/dialog/dialog-title/dialog-title.component.js +16 -111
- package/divider/divider.component.js +3 -3
- package/expansion-panel/expansion-panel/expansion-panel.component.js +5 -9
- package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +30 -31
- package/file-selector/common/file-selector-common.js +1 -2
- package/flip-card/flip-card/flip-card.component.js +48 -54
- package/flip-card/flip-card-details/flip-card-details.component.js +15 -16
- package/flip-card/flip-card-summary/flip-card-summary.component.js +19 -20
- package/form-error/form-error.component.js +13 -14
- package/form-field/form-field/form-field.component.d.ts +1 -1
- package/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/form-field/form-field/form-field.component.js +149 -168
- package/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
- package/form-field/form-field-clear/form-field-clear.component.js +19 -21
- package/header/header/header.component.js +26 -29
- package/icon/icon-base.d.ts +5 -3
- package/icon/icon-base.d.ts.map +1 -1
- package/icon/icon-base.js +32 -34
- package/icon/icon-request.js +10 -11
- package/icon/icon.component.d.ts +1 -2
- package/icon/icon.component.d.ts.map +1 -1
- package/icon/icon.component.js +37 -37
- package/icon-sidebar-button-common-CM-ueEhH.js +7 -0
- package/image/image.component.js +4 -6
- package/journey-header/journey-header.component.d.ts +5 -5
- package/journey-header/journey-header.component.d.ts.map +1 -1
- package/journey-header/journey-header.component.js +50 -63
- package/map-container/map-container.component.js +1 -2
- package/menu/menu/menu.component.js +47 -55
- package/message/message.component.d.ts +4 -8
- package/message/message.component.d.ts.map +1 -1
- package/message/message.component.js +18 -47
- package/navigation/common/navigation-action-common.js +19 -21
- package/navigation/navigation/navigation.component.js +73 -92
- package/navigation/navigation-marker/navigation-marker.component.js +26 -28
- package/navigation/navigation-section/navigation-section.component.d.ts +1 -1
- package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/navigation/navigation-section/navigation-section.component.js +72 -82
- package/notification/notification.component.d.ts +7 -9
- package/notification/notification.component.d.ts.map +1 -1
- package/notification/notification.component.js +77 -95
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/optgroup/optgroup-base-element.js +36 -38
- package/option/optgroup/optgroup.component.js +16 -20
- package/option/option/option-base-element.js +3 -4
- package/option/option/option.component.js +26 -29
- package/overlay/overlay-base-element.d.ts +24 -6
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay/overlay-base-element.js +98 -51
- package/overlay/overlay.component.d.ts +2 -12
- package/overlay/overlay.component.d.ts.map +1 -1
- package/overlay/overlay.component.js +57 -95
- package/package.json +1 -1
- package/paginator/paginator/paginator.component.js +3 -4
- package/popover/popover/popover.component.d.ts +45 -34
- package/popover/popover/popover.component.d.ts.map +1 -1
- package/popover/popover/popover.component.js +194 -168
- package/popover/popover-trigger/popover-trigger.component.js +1 -1
- package/popover/popover.js +2 -1
- package/popover.js +5 -4
- package/radio-button/common/radio-button-common.js +11 -15
- package/radio-button/radio-button/radio-button.component.js +16 -19
- package/radio-button/radio-button-group/radio-button-group.component.d.ts +1 -1
- package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.component.js +27 -43
- package/radio-button/radio-button-panel/radio-button-panel.component.js +33 -37
- package/select/select.component.js +94 -117
- package/selection-expansion-panel/selection-expansion-panel.component.js +35 -39
- package/sidebar/common.js +1 -1
- package/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +10 -13
- package/sidebar/sidebar/sidebar.component.js +62 -69
- package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +0 -1
- package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
- package/sidebar/sidebar-close-button/sidebar-close-button.component.js +18 -18
- package/sidebar/sidebar-container/sidebar-container.component.js +29 -33
- package/sidebar/sidebar-title/sidebar-title.component.d.ts +2 -0
- package/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
- package/sidebar/sidebar-title/sidebar-title.component.js +16 -16
- package/sidebar.js +1 -1
- package/skiplink-list/skiplink-list.component.d.ts.map +1 -1
- package/skiplink-list/skiplink-list.component.js +36 -39
- package/slider/slider.component.js +11 -13
- package/standard-theme.css +29 -25
- package/status/status.component.d.ts +4 -7
- package/status/status.component.d.ts.map +1 -1
- package/status/status.component.js +34 -50
- package/stepper/step/step.component.d.ts +2 -1
- package/stepper/step/step.component.d.ts.map +1 -1
- package/stepper/step/step.component.js +26 -24
- package/stepper/step-label/step-label.component.d.ts +3 -3
- package/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/stepper/step-label/step-label.component.js +15 -15
- package/stepper/stepper/stepper.component.js +72 -86
- package/table/table-wrapper/table-wrapper.component.js +17 -18
- package/table.css +0 -25
- package/tabs/tab-group/tab-group.component.js +77 -92
- package/tabs/tab-label/tab-label.component.js +12 -12
- package/tag/tag/tag.component.js +49 -55
- package/tag/tag-group/tag-group.component.js +37 -45
- package/teaser/teaser.component.d.ts +6 -10
- package/teaser/teaser.component.d.ts.map +1 -1
- package/teaser/teaser.component.js +45 -68
- package/teaser-product/common.js +1 -1
- package/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/teaser-product-common-C8oSkIxy.js +5 -0
- package/teaser-product.js +1 -1
- package/time-input/time-input.component.js +29 -33
- package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +22 -25
- package/title/title-base.d.ts +0 -8
- package/title/title-base.d.ts.map +1 -1
- package/title/title-base.js +34 -53
- package/title/title.component.d.ts +2 -0
- package/title/title.component.d.ts.map +1 -1
- package/title/title.component.js +9 -9
- package/toast/toast.component.d.ts.map +1 -1
- package/toast/toast.component.js +6 -9
- package/toggle/toggle/toggle.component.js +27 -31
- package/toggle/toggle-option/toggle-option.component.d.ts +1 -1
- package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.component.js +44 -51
- package/train/train-formation/train-formation.component.js +41 -43
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -530
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +0 -1123
- package/datepicker/common/datepicker-association-controllers.d.ts +0 -21
- package/datepicker/common/datepicker-association-controllers.d.ts.map +0 -1
- package/datepicker/common/datepicker-association-controllers.js +0 -58
- package/development/datepicker/common/datepicker-association-controllers.d.ts +0 -21
- package/development/datepicker/common/datepicker-association-controllers.d.ts.map +0 -1
- package/development/datepicker/common/datepicker-association-controllers.js +0 -82
- package/icon-sidebar-button-common-DG8bnrBu.js +0 -7
- package/teaser-product-common-CpMAlYEp.js +0 -5
|
@@ -5,17 +5,18 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
|
|
|
5
5
|
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
6
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
7
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
|
-
import {
|
|
9
|
-
import { css, isServer,
|
|
10
|
-
import { customElement, property
|
|
8
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
9
|
+
import { css, isServer, html, nothing } from "lit";
|
|
10
|
+
import { customElement, property } from "lit/decorators.js";
|
|
11
11
|
import { readConfig } from "../../core/config.js";
|
|
12
|
-
import {
|
|
12
|
+
import { SbbLanguageController } from "../../core/controllers.js";
|
|
13
13
|
import { defaultDateAdapter } from "../../core/datetime.js";
|
|
14
|
-
import { forceType,
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
14
|
+
import { forceType, idReference } from "../../core/decorators.js";
|
|
15
|
+
import { i18nDateChangedTo } from "../../core/i18n.js";
|
|
16
|
+
import { SbbDateInputElement } from "../../date-input.js";
|
|
17
|
+
import { SbbPopoverBaseElement } from "../../popover.js";
|
|
18
|
+
import "../../calendar.js";
|
|
19
|
+
const style = css`#status-container {
|
|
19
20
|
border: 0;
|
|
20
21
|
clip: rect(0 0 0 0);
|
|
21
22
|
height: 1px;
|
|
@@ -27,67 +28,40 @@ const style = css`:host {
|
|
|
27
28
|
width: 1px;
|
|
28
29
|
}`;
|
|
29
30
|
let nextId = 0;
|
|
30
|
-
let warningLogged = false;
|
|
31
|
-
const isDateInput = (element) => (element == null ? void 0 : element.localName) === "sbb-date-input";
|
|
32
31
|
let SbbDatepickerElement = (() => {
|
|
33
|
-
var _wide_accessor_storage, _input_accessor_storage,
|
|
32
|
+
var _wide_accessor_storage, _input_accessor_storage, _view_accessor_storage, _a;
|
|
34
33
|
let _classDecorators = [customElement("sbb-datepicker")];
|
|
35
34
|
let _classDescriptor;
|
|
36
35
|
let _classExtraInitializers = [];
|
|
37
36
|
let _classThis;
|
|
38
|
-
let _classSuper =
|
|
39
|
-
let _instanceExtraInitializers = [];
|
|
37
|
+
let _classSuper = SbbPopoverBaseElement;
|
|
40
38
|
let _wide_decorators;
|
|
41
39
|
let _wide_initializers = [];
|
|
42
40
|
let _wide_extraInitializers = [];
|
|
43
|
-
let _set_dateFilter_decorators;
|
|
44
41
|
let _input_decorators;
|
|
45
42
|
let _input_initializers = [];
|
|
46
43
|
let _input_extraInitializers = [];
|
|
47
|
-
let
|
|
48
|
-
let
|
|
49
|
-
let
|
|
50
|
-
|
|
51
|
-
let __inputElement_decorators;
|
|
52
|
-
let __inputElement_initializers = [];
|
|
53
|
-
let __inputElement_extraInitializers = [];
|
|
54
|
-
var SbbDatepickerElement2 = (_a = class extends _classSuper {
|
|
44
|
+
let _view_decorators;
|
|
45
|
+
let _view_initializers = [];
|
|
46
|
+
let _view_extraInitializers = [];
|
|
47
|
+
_a = class extends _classSuper {
|
|
55
48
|
constructor() {
|
|
56
|
-
|
|
57
|
-
super(...arguments);
|
|
49
|
+
super();
|
|
58
50
|
__privateAdd(this, _wide_accessor_storage);
|
|
59
51
|
__privateAdd(this, _input_accessor_storage);
|
|
60
|
-
__privateAdd(this,
|
|
61
|
-
|
|
62
|
-
__privateSet(this,
|
|
63
|
-
this
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
this._valueAsDate = __runInitializers(this, _now_extraInitializers);
|
|
67
|
-
__privateSet(this, __inputElement_accessor_storage, __runInitializers(this, __inputElement_initializers, null));
|
|
68
|
-
this._change = (__runInitializers(this, __inputElement_extraInitializers), new EventEmitter(this, SbbDatepickerElement2.events.change, {
|
|
69
|
-
bubbles: true
|
|
70
|
-
}));
|
|
71
|
-
this._inputUpdated = new EventEmitter(this, SbbDatepickerElement2.events.inputUpdated, { bubbles: true, cancelable: true });
|
|
72
|
-
this._datePickerUpdated = new EventEmitter(this, SbbDatepickerElement2.events.datePickerUpdated, {
|
|
73
|
-
bubbles: true,
|
|
74
|
-
cancelable: true
|
|
75
|
-
});
|
|
76
|
-
this._validationChange = new EventEmitter(this, SbbDatepickerElement2.events.validationChange);
|
|
77
|
-
this._inputElementPlaceholderMutable = false;
|
|
78
|
-
this._inputIdReferenceController = new SbbIdReferenceController(this, "input");
|
|
79
|
-
this._inputObserver = !isServer ? new MutationObserver((mutationsList) => {
|
|
80
|
-
var _a3;
|
|
81
|
-
this._emitInputUpdated();
|
|
82
|
-
(_a3 = this._associationController) == null ? void 0 : _a3.updateControls();
|
|
83
|
-
if (this.inputElement && !isDateInput(this.inputElement) && (mutationsList == null ? void 0 : mutationsList.some((e) => e.attributeName === "value"))) {
|
|
84
|
-
const value = this.inputElement.getAttribute("value");
|
|
85
|
-
this.valueAsDate = this._dateAdapter.parse(value, this.now) ?? this._dateAdapter.deserialize(value);
|
|
86
|
-
}
|
|
87
|
-
}) : null;
|
|
88
|
-
this._dateAdapter = ((_a2 = readConfig().datetime) == null ? void 0 : _a2.dateAdapter) ?? defaultDateAdapter;
|
|
52
|
+
__privateAdd(this, _view_accessor_storage);
|
|
53
|
+
__privateSet(this, _wide_accessor_storage, __runInitializers(this, _wide_initializers, false));
|
|
54
|
+
__privateSet(this, _input_accessor_storage, (__runInitializers(this, _wide_extraInitializers), __runInitializers(this, _input_initializers, null)));
|
|
55
|
+
__privateSet(this, _view_accessor_storage, (__runInitializers(this, _input_extraInitializers), __runInitializers(this, _view_initializers, "day")));
|
|
56
|
+
this._inputAbortController = __runInitializers(this, _view_extraInitializers);
|
|
57
|
+
this._dateAdapter = readConfig().datetime?.dateAdapter ?? defaultDateAdapter;
|
|
89
58
|
this._language = new SbbLanguageController(this);
|
|
90
|
-
this.
|
|
59
|
+
this.addEventListener(SbbPopoverBaseElement.events.willOpen, () => {
|
|
60
|
+
this.shadowRoot?.querySelector("sbb-calendar")?.resetPosition?.();
|
|
61
|
+
});
|
|
62
|
+
if (!isServer && this.hydrationRequired) {
|
|
63
|
+
this.hydrationComplete.then(() => this.requestUpdate());
|
|
64
|
+
}
|
|
91
65
|
}
|
|
92
66
|
/** If set to true, two months are displayed. */
|
|
93
67
|
get wide() {
|
|
@@ -97,21 +71,9 @@ let SbbDatepickerElement = (() => {
|
|
|
97
71
|
__privateSet(this, _wide_accessor_storage, value);
|
|
98
72
|
}
|
|
99
73
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
|
|
103
|
-
set dateFilter(value) {
|
|
104
|
-
this._dateFilter = value;
|
|
105
|
-
}
|
|
106
|
-
get dateFilter() {
|
|
107
|
-
return this._dateFilter ?? (isDateInput(this.inputElement) ? this.inputElement.dateFilter : null) ?? (() => true);
|
|
108
|
-
}
|
|
109
|
-
// TODO: Replace HTMLElement by HTMLInputElement | SbbDateInputElement
|
|
110
|
-
/**
|
|
111
|
-
* Reference of the sbb-date-input instance or the native input connected to the datepicker.
|
|
112
|
-
* If given a string, it will be treated as an id reference and an attempt is
|
|
113
|
-
* made to be resolved for the containing document fragment.
|
|
114
|
-
* If given a HTMLElement instance, it will be used as is.
|
|
74
|
+
* Reference to the sbb-date-input instance or the native input connected to the datepicker.
|
|
75
|
+
*
|
|
76
|
+
* For attribute usage, provide an id reference.
|
|
115
77
|
*/
|
|
116
78
|
get input() {
|
|
117
79
|
return __privateGet(this, _input_accessor_storage);
|
|
@@ -119,300 +81,95 @@ let SbbDatepickerElement = (() => {
|
|
|
119
81
|
set input(value) {
|
|
120
82
|
__privateSet(this, _input_accessor_storage, value);
|
|
121
83
|
}
|
|
122
|
-
/**
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
*/
|
|
126
|
-
get now() {
|
|
127
|
-
return __privateGet(this, _now_accessor_storage);
|
|
128
|
-
}
|
|
129
|
-
set now(value) {
|
|
130
|
-
__privateSet(this, _now_accessor_storage, value);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* The currently selected date as a Date or custom date provider instance.
|
|
134
|
-
* @deprecated Use valueAsDate from SbbDateInputElement.
|
|
135
|
-
*/
|
|
136
|
-
set valueAsDate(value) {
|
|
137
|
-
value = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
|
138
|
-
if (isDateInput(this.inputElement)) {
|
|
139
|
-
this.inputElement.valueAsDate = value;
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
this._valueAsDate = value;
|
|
143
|
-
if (this._tryApplyFormatToInput()) {
|
|
144
|
-
this.inputElement.dispatchEvent(new Event("blur", { composed: true }));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
get valueAsDate() {
|
|
148
|
-
if (isDateInput(this.inputElement)) {
|
|
149
|
-
return this.inputElement.valueAsDate;
|
|
150
|
-
}
|
|
151
|
-
return this._valueAsDate ?? null;
|
|
84
|
+
/** The initial view of calendar which should be displayed on opening. */
|
|
85
|
+
get view() {
|
|
86
|
+
return __privateGet(this, _view_accessor_storage);
|
|
152
87
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
return this._inputElement;
|
|
156
|
-
}
|
|
157
|
-
get _inputElement() {
|
|
158
|
-
return __privateGet(this, __inputElement_accessor_storage);
|
|
159
|
-
}
|
|
160
|
-
set _inputElement(value) {
|
|
161
|
-
__privateSet(this, __inputElement_accessor_storage, value);
|
|
88
|
+
set view(value) {
|
|
89
|
+
__privateSet(this, _view_accessor_storage, value);
|
|
162
90
|
}
|
|
163
91
|
connectedCallback() {
|
|
92
|
+
this.id ||= `sbb-datepicker-${++nextId}`;
|
|
164
93
|
super.connectedCallback();
|
|
165
|
-
|
|
166
|
-
|
|
94
|
+
const formField = this.closest?.("sbb-form-field");
|
|
95
|
+
if (formField) {
|
|
96
|
+
SbbDateInputElement.resolveAssociation(this);
|
|
97
|
+
const toggle = formField.querySelector("sbb-datepicker-toggle");
|
|
98
|
+
if (toggle && !toggle.hasAttribute("datepicker")) {
|
|
99
|
+
toggle.datepicker ??= this;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
167
102
|
}
|
|
168
103
|
requestUpdate(name, oldValue, options) {
|
|
169
104
|
super.requestUpdate(name, oldValue, options);
|
|
170
|
-
if (
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
105
|
+
if (name === "input" && this.input !== oldValue) {
|
|
106
|
+
this._inputAbortController?.abort();
|
|
107
|
+
if (this.input) {
|
|
108
|
+
const { signal } = this._inputAbortController = new AbortController();
|
|
109
|
+
this.input?.addEventListener("ɵchange", () => {
|
|
110
|
+
super.requestUpdate();
|
|
111
|
+
this._updateStatus();
|
|
112
|
+
}, { signal });
|
|
176
113
|
}
|
|
177
114
|
}
|
|
178
|
-
if (!isServer && (!name || name === "input") && this.hasUpdated) {
|
|
179
|
-
this._configureInputElement();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
willUpdate(changedProperties) {
|
|
183
|
-
super.willUpdate(changedProperties);
|
|
184
|
-
if (changedProperties.has("wide") || changedProperties.has("dateFilter") || changedProperties.has("now")) {
|
|
185
|
-
this._associationController.updateControls();
|
|
186
|
-
this._datePickerUpdated.emit();
|
|
187
|
-
}
|
|
188
|
-
if (changedProperties.has("valueAsDate")) {
|
|
189
|
-
this._setAriaLiveMessage();
|
|
190
|
-
}
|
|
191
115
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
(_a2 = this._inputObserver) == null ? void 0 : _a2.disconnect();
|
|
196
|
-
(_b = this._inputAbortController) == null ? void 0 : _b.abort();
|
|
197
|
-
this._inputElement = null;
|
|
198
|
-
}
|
|
199
|
-
firstUpdated(changedProperties) {
|
|
200
|
-
super.firstUpdated(changedProperties);
|
|
201
|
-
this._setAriaLiveMessage();
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* @internal
|
|
205
|
-
* Whether a custom now is configured.
|
|
206
|
-
*/
|
|
207
|
-
hasCustomNow() {
|
|
208
|
-
return this._dateAdapter.compareDate(this.now, this._dateAdapter.today()) !== 0;
|
|
209
|
-
}
|
|
210
|
-
_configureInputElement() {
|
|
211
|
-
var _a2, _b, _c, _d, _e, _f;
|
|
212
|
-
const inputElement = this.input instanceof HTMLInputElement || this.input instanceof HTMLElement && isDateInput(this.input) ? this.input : this._inputIdReferenceController.find() ?? ((_b = (_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-form-field")) == null ? void 0 : _b.querySelector("input,sbb-date-input")) ?? null;
|
|
213
|
-
if (inputElement === this.inputElement) {
|
|
116
|
+
_updateStatus() {
|
|
117
|
+
const status = this.shadowRoot?.getElementById("status-container");
|
|
118
|
+
if (!status) {
|
|
214
119
|
return;
|
|
215
120
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
if (
|
|
220
|
-
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
this.
|
|
233
|
-
|
|
234
|
-
if (this.
|
|
235
|
-
this.
|
|
121
|
+
const text = this._dateAdapter.isValid(this.input?.valueAsDate) ? `${i18nDateChangedTo[this._language.current]} ${this._dateAdapter.format(this.input.valueAsDate, {
|
|
122
|
+
weekdayStyle: "long"
|
|
123
|
+
})}` : "";
|
|
124
|
+
if (status.textContent !== text) {
|
|
125
|
+
status.textContent = text;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
renderContent() {
|
|
129
|
+
return html`
|
|
130
|
+
<p id="status-container" role="status"></p>
|
|
131
|
+
<sbb-calendar
|
|
132
|
+
.view=${this.view}
|
|
133
|
+
.min=${this.input?.min ?? null}
|
|
134
|
+
.max=${this.input?.max ?? null}
|
|
135
|
+
.dateFilter=${this.input?.dateFilter ?? null}
|
|
136
|
+
.selected=${this.input?.valueAsDate ?? null}
|
|
137
|
+
?wide=${this.wide}
|
|
138
|
+
@dateSelected=${(d) => {
|
|
139
|
+
if (this.input) {
|
|
140
|
+
this.input.valueAsDate = d.detail;
|
|
141
|
+
this.input.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
|
|
142
|
+
this.input.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
|
|
143
|
+
this.input.dispatchEvent(new Event("blur", { composed: true }));
|
|
236
144
|
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
forwardEvent(e, this);
|
|
241
|
-
this._parseInput();
|
|
242
|
-
}, options);
|
|
243
|
-
this.inputElement.addEventListener("change", () => this._handleInputChange(), options);
|
|
244
|
-
this.inputElement.addEventListener("ɵchange", () => {
|
|
245
|
-
var _a3;
|
|
246
|
-
return (_a3 = this._associationController) == null ? void 0 : _a3.updateControls();
|
|
247
|
-
}, options);
|
|
248
|
-
this._parseInput(true);
|
|
249
|
-
this._tryApplyFormatToInput();
|
|
250
|
-
this._validateDate();
|
|
251
|
-
this._emitInputUpdated();
|
|
252
|
-
(_f = this._associationController) == null ? void 0 : _f.updateControls();
|
|
253
|
-
}
|
|
254
|
-
_emitInputUpdated() {
|
|
255
|
-
const { disabled, readOnly: readonly, min: minValue, max: maxValue } = this.inputElement ?? {};
|
|
256
|
-
const min = minValue && typeof minValue !== "string" ? this._dateAdapter.toIso8601(minValue) : minValue;
|
|
257
|
-
const max = maxValue && typeof maxValue !== "string" ? this._dateAdapter.toIso8601(maxValue) : maxValue;
|
|
258
|
-
this._inputUpdated.emit({ disabled, readonly, min, max });
|
|
259
|
-
}
|
|
260
|
-
_handleInputChange() {
|
|
261
|
-
var _a2;
|
|
262
|
-
if (this._tryApplyFormatToInput()) {
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
this._validateDate();
|
|
266
|
-
this._setAriaLiveMessage();
|
|
267
|
-
this._change.emit();
|
|
268
|
-
(_a2 = this._associationController) == null ? void 0 : _a2.updateControls();
|
|
269
|
-
}
|
|
270
|
-
_tryApplyFormatToInput() {
|
|
271
|
-
if (!this.inputElement || isDateInput(this.inputElement)) {
|
|
272
|
-
return false;
|
|
273
|
-
}
|
|
274
|
-
const formattedDate = this.valueAsDate ? this._dateAdapter.format(this.valueAsDate) : "";
|
|
275
|
-
if (formattedDate && this.inputElement.value !== formattedDate) {
|
|
276
|
-
const setValue = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value").set;
|
|
277
|
-
setValue.call(this.inputElement, formattedDate);
|
|
278
|
-
this.inputElement.dispatchEvent(new InputEvent("input", { bubbles: true, composed: true }));
|
|
279
|
-
this.inputElement.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
|
|
280
|
-
return true;
|
|
281
|
-
}
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
_validateDate() {
|
|
285
|
-
if (!this.inputElement) {
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
const isEmptyOrValid = !this.inputElement.value || this._isDateAvailable();
|
|
289
|
-
const wasValid = !this.inputElement.hasAttribute("data-sbb-invalid");
|
|
290
|
-
this.inputElement.toggleAttribute("data-sbb-invalid", !isEmptyOrValid);
|
|
291
|
-
if (wasValid !== isEmptyOrValid) {
|
|
292
|
-
this._validationChange.emit({ valid: isEmptyOrValid });
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
_parseInput(deserializeAsFallback = false) {
|
|
296
|
-
if (isDateInput(this.inputElement)) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
const value = this.inputElement.value;
|
|
300
|
-
this._valueAsDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.parse(value, this.now));
|
|
301
|
-
if (deserializeAsFallback && !this._valueAsDate) {
|
|
302
|
-
this._valueAsDate = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
_setAriaLiveMessage() {
|
|
306
|
-
var _a2, _b;
|
|
307
|
-
const containerElement = (_b = (_a2 = this.shadowRoot) == null ? void 0 : _a2.querySelector) == null ? void 0 : _b.call(_a2, "#status-container");
|
|
308
|
-
if (!containerElement) {
|
|
309
|
-
return;
|
|
310
|
-
} else if (!this.valueAsDate) {
|
|
311
|
-
containerElement.innerText = "";
|
|
312
|
-
} else {
|
|
313
|
-
const date = this._dateAdapter.format(this.valueAsDate, { weekdayStyle: "long" });
|
|
314
|
-
containerElement.innerText = `${i18nDateChangedTo[this._language.current]} ${date}`;
|
|
315
|
-
}
|
|
145
|
+
}}
|
|
146
|
+
></sbb-calendar>
|
|
147
|
+
`;
|
|
316
148
|
}
|
|
317
149
|
render() {
|
|
318
|
-
return html
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Calculates the first available date before the given one,
|
|
322
|
-
* considering the SbbDatepickerElement `dateFilter` property and `min` parameter (e.g. from the self-named input's attribute).
|
|
323
|
-
* @param date The starting date for calculations.
|
|
324
|
-
*/
|
|
325
|
-
findPreviousAvailableDate(date) {
|
|
326
|
-
var _a2;
|
|
327
|
-
const previousDate = this._findAvailableDate(date, -1);
|
|
328
|
-
const dateMin = this._dateAdapter.deserialize((_a2 = this.inputElement) == null ? void 0 : _a2.min);
|
|
329
|
-
if (!dateMin || this._dateAdapter.isValid(dateMin) && this._dateAdapter.compareDate(previousDate, dateMin) >= 0) {
|
|
330
|
-
return previousDate;
|
|
331
|
-
}
|
|
332
|
-
return date;
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Calculates the first available date after the given one,
|
|
336
|
-
* considering the SbbDatepickerElement `dateFilter` property and `max` parameter (e.g. from the self-named input's attribute).
|
|
337
|
-
* @param date The starting date for calculations.
|
|
338
|
-
*/
|
|
339
|
-
findNextAvailableDate(date) {
|
|
340
|
-
var _a2;
|
|
341
|
-
const nextDate = this._findAvailableDate(date, 1);
|
|
342
|
-
const dateMax = this._dateAdapter.deserialize((_a2 = this.inputElement) == null ? void 0 : _a2.max);
|
|
343
|
-
if (!dateMax || this._dateAdapter.isValid(dateMax) && this._dateAdapter.compareDate(nextDate, dateMax) <= 0) {
|
|
344
|
-
return nextDate;
|
|
345
|
-
}
|
|
346
|
-
return date;
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Returns the first available date before or after a given one, considering the `dateFilter` property.
|
|
350
|
-
* @param date The starting date for calculations.
|
|
351
|
-
* @param delta The number of days to add/subtract from the starting one.
|
|
352
|
-
*/
|
|
353
|
-
_findAvailableDate(date, delta) {
|
|
354
|
-
let availableDate = this._dateAdapter.addCalendarDays(date, delta);
|
|
355
|
-
if (this.dateFilter) {
|
|
356
|
-
while (!this.dateFilter(availableDate)) {
|
|
357
|
-
availableDate = this._dateAdapter.addCalendarDays(availableDate, delta);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
return availableDate;
|
|
361
|
-
}
|
|
362
|
-
/**
|
|
363
|
-
* Checks if valueAsDate is valid, considering the SbbDatepickerElement `dateFilter` property
|
|
364
|
-
* and `min` and `max` parameters (e.g. from the self-named input's attributes).
|
|
365
|
-
*/
|
|
366
|
-
_isDateAvailable() {
|
|
367
|
-
var _a2, _b, _c;
|
|
368
|
-
if (!this.valueAsDate) {
|
|
369
|
-
return false;
|
|
370
|
-
}
|
|
371
|
-
const dateMin = this._dateAdapter.deserialize((_a2 = this.inputElement) == null ? void 0 : _a2.min);
|
|
372
|
-
const dateMax = this._dateAdapter.deserialize((_b = this.inputElement) == null ? void 0 : _b.max);
|
|
373
|
-
if (this._dateAdapter.isValid(dateMin) && this._dateAdapter.compareDate(this.valueAsDate, dateMin) < 0 || this._dateAdapter.isValid(dateMax) && this._dateAdapter.compareDate(this.valueAsDate, dateMax) > 0) {
|
|
374
|
-
return false;
|
|
375
|
-
}
|
|
376
|
-
return ((_c = this.dateFilter) == null ? void 0 : _c.call(this, this.valueAsDate)) ?? true;
|
|
150
|
+
return isServer || this.hydrationRequired ? html`${nothing}` : super.render();
|
|
377
151
|
}
|
|
378
|
-
}, _wide_accessor_storage = new WeakMap(), _input_accessor_storage = new WeakMap(),
|
|
152
|
+
}, _wide_accessor_storage = new WeakMap(), _input_accessor_storage = new WeakMap(), _view_accessor_storage = new WeakMap(), _classThis = _a, (() => {
|
|
379
153
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
380
154
|
_wide_decorators = [forceType(), property({ type: Boolean })];
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
_now_decorators = [plainDate({ fallback: (a) => a.today() }), property()];
|
|
384
|
-
_set_valueAsDate_decorators = [property({ attribute: false })];
|
|
385
|
-
__inputElement_decorators = [state()];
|
|
155
|
+
_input_decorators = [idReference(), property()];
|
|
156
|
+
_view_decorators = [property()];
|
|
386
157
|
__esDecorate(_a, null, _wide_decorators, { kind: "accessor", name: "wide", static: false, private: false, access: { has: (obj) => "wide" in obj, get: (obj) => obj.wide, set: (obj, value) => {
|
|
387
158
|
obj.wide = value;
|
|
388
159
|
} }, metadata: _metadata }, _wide_initializers, _wide_extraInitializers);
|
|
389
|
-
__esDecorate(_a, null, _set_dateFilter_decorators, { kind: "setter", name: "dateFilter", static: false, private: false, access: { has: (obj) => "dateFilter" in obj, set: (obj, value) => {
|
|
390
|
-
obj.dateFilter = value;
|
|
391
|
-
} }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
392
160
|
__esDecorate(_a, null, _input_decorators, { kind: "accessor", name: "input", static: false, private: false, access: { has: (obj) => "input" in obj, get: (obj) => obj.input, set: (obj, value) => {
|
|
393
161
|
obj.input = value;
|
|
394
162
|
} }, metadata: _metadata }, _input_initializers, _input_extraInitializers);
|
|
395
|
-
__esDecorate(_a, null,
|
|
396
|
-
obj.
|
|
397
|
-
} }, metadata: _metadata },
|
|
398
|
-
__esDecorate(_a, null, _set_valueAsDate_decorators, { kind: "setter", name: "valueAsDate", static: false, private: false, access: { has: (obj) => "valueAsDate" in obj, set: (obj, value) => {
|
|
399
|
-
obj.valueAsDate = value;
|
|
400
|
-
} }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
401
|
-
__esDecorate(_a, null, __inputElement_decorators, { kind: "accessor", name: "_inputElement", static: false, private: false, access: { has: (obj) => "_inputElement" in obj, get: (obj) => obj._inputElement, set: (obj, value) => {
|
|
402
|
-
obj._inputElement = value;
|
|
403
|
-
} }, metadata: _metadata }, __inputElement_initializers, __inputElement_extraInitializers);
|
|
163
|
+
__esDecorate(_a, null, _view_decorators, { kind: "accessor", name: "view", static: false, private: false, access: { has: (obj) => "view" in obj, get: (obj) => obj.view, set: (obj, value) => {
|
|
164
|
+
obj.view = value;
|
|
165
|
+
} }, metadata: _metadata }, _view_initializers, _view_extraInitializers);
|
|
404
166
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
405
|
-
|
|
167
|
+
_classThis = _classDescriptor.value;
|
|
406
168
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
407
|
-
})(), _a.styles = style, _a.
|
|
408
|
-
|
|
409
|
-
inputUpdated: "inputUpdated",
|
|
410
|
-
datePickerUpdated: "datePickerUpdated",
|
|
411
|
-
validationChange: "validationChange"
|
|
412
|
-
}, __runInitializers(_classThis, _classExtraInitializers), _a);
|
|
413
|
-
return SbbDatepickerElement2 = _classThis;
|
|
169
|
+
})(), _a.styles = [SbbPopoverBaseElement.styles, style], _a.sbbDateInputAssociated = true, __runInitializers(_classThis, _classExtraInitializers), _a;
|
|
170
|
+
return _classThis;
|
|
414
171
|
})();
|
|
415
172
|
export {
|
|
416
173
|
SbbDatepickerElement
|
|
417
174
|
};
|
|
418
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlnLmpzJztcbmltcG9ydCB7IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlciwgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyB0eXBlIERhdGVBZGFwdGVyLCBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgcGxhaW5EYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgZm9yd2FyZEV2ZW50IH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbywgaTE4bkRhdGVQaWNrZXJQbGFjZWhvbGRlciB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9kYXRlLWlucHV0LmpzJztcbmltcG9ydCB7IFNiYkRhdGVwaWNrZXJBc3NvY2lhdGlvbkhvc3RDb250cm9sbGVyIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYklucHV0VXBkYXRlRXZlbnQge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgbWluPzogc3RyaW5nIHwgbnVtYmVyO1xuICBtYXg/OiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbmxldCBuZXh0SWQgPSAwO1xubGV0IHdhcm5pbmdMb2dnZWQgPSBmYWxzZTtcbmNvbnN0IGlzRGF0ZUlucHV0ID0gPFQ+KFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IEhUTUxJbnB1dEVsZW1lbnQgfCBTYmJEYXRlSW5wdXRFbGVtZW50PFQ+IHwgbnVsbCxcbik6IGVsZW1lbnQgaXMgU2JiRGF0ZUlucHV0RWxlbWVudDxUPiA9PiBlbGVtZW50Py5sb2NhbE5hbWUgPT09ICdzYmItZGF0ZS1pbnB1dCc7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIG5hdGl2ZSBpbnB1dCwgaXQgZGlzcGxheXMgdGhlIGlucHV0J3MgdmFsdWUgYXMgYSBmb3JtYXR0ZWQgZGF0ZS5cbiAqXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBjaGFuZ2UgLSBOb3RpZmllcyB0aGF0IHRoZSBjb25uZWN0ZWQgaW5wdXQgaGFzIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBpbnB1dCAtIE5vdGlmaWVzIHRoYXQgdGhlIGNvbm5lY3RlZCBpbnB1dCBmaXJlZCB0aGUgaW5wdXQgZXZlbnQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYklucHV0VXBkYXRlRXZlbnQ+fSBpbnB1dFVwZGF0ZWQgLSBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gZGF0ZVBpY2tlclVwZGF0ZWQgLSBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiVmFsaWRhdGlvbkNoYW5nZUV2ZW50Pn0gdmFsaWRhdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBpbnRlcm5hbCB2YWxpZGF0aW9uIHN0YXRlIGNoYW5nZXMuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1kYXRlcGlja2VyJylcbmNsYXNzIFNiYkRhdGVwaWNrZXJFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgY2hhbmdlOiAnY2hhbmdlJyxcbiAgICBpbnB1dFVwZGF0ZWQ6ICdpbnB1dFVwZGF0ZWQnLFxuICAgIGRhdGVQaWNrZXJVcGRhdGVkOiAnZGF0ZVBpY2tlclVwZGF0ZWQnLFxuICAgIHZhbGlkYXRpb25DaGFuZ2U6ICd2YWxpZGF0aW9uQ2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIHR3byBtb250aHMgYXJlIGRpc3BsYXllZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHdpZGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIGZpbHRlciBvdXQgZGF0ZXMuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBkYXRlRmlsdGVyIGZyb20gU2JiRGF0ZUlucHV0RWxlbWVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCBkYXRlRmlsdGVyKHZhbHVlOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kYXRlRmlsdGVyID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlRmlsdGVyKCk6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2RhdGVGaWx0ZXIgPz9cbiAgICAgIChpc0RhdGVJbnB1dCh0aGlzLmlucHV0RWxlbWVudCkgPyB0aGlzLmlucHV0RWxlbWVudC5kYXRlRmlsdGVyIDogbnVsbCkgPz9cbiAgICAgICgoKSA9PiB0cnVlKVxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBfZGF0ZUZpbHRlcj86IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbjtcblxuICAvLyBUT0RPOiBSZXBsYWNlIEhUTUxFbGVtZW50IGJ5IEhUTUxJbnB1dEVsZW1lbnQgfCBTYmJEYXRlSW5wdXRFbGVtZW50XG4gIC8qKlxuICAgKiBSZWZlcmVuY2Ugb2YgdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKiBJZiBnaXZlbiBhIHN0cmluZywgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGFuIGlkIHJlZmVyZW5jZSBhbmQgYW4gYXR0ZW1wdCBpc1xuICAgKiBtYWRlIHRvIGJlIHJlc29sdmVkIGZvciB0aGUgY29udGFpbmluZyBkb2N1bWVudCBmcmFnbWVudC5cbiAgICogSWYgZ2l2ZW4gYSBIVE1MRWxlbWVudCBpbnN0YW5jZSwgaXQgd2lsbCBiZSB1c2VkIGFzIGlzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGlucHV0OiBzdHJpbmcgfCBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBBIGNvbmZpZ3VyZWQgZGF0ZSB3aGljaCBhY3RzIGFzIHRoZSBjdXJyZW50IGRhdGUgaW5zdGVhZCBvZiB0aGUgcmVhbCBjdXJyZW50IGRhdGUuXG4gICAqIE9ubHkgcmVjb21tZW5kZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuXG4gICAqL1xuICBAcGxhaW5EYXRlKHsgZmFsbGJhY2s6IChhKSA9PiBhLnRvZGF5KCkgfSlcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIG5vdzogVCA9IG51bGwhO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgYXMgYSBEYXRlIG9yIGN1c3RvbSBkYXRlIHByb3ZpZGVyIGluc3RhbmNlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdmFsdWVBc0RhdGUgZnJvbSBTYmJEYXRlSW5wdXRFbGVtZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgaWYgKGlzRGF0ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50KSkge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWVBc0RhdGUgPSB2YWx1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZUFzRGF0ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl90cnlBcHBseUZvcm1hdFRvSW5wdXQoKSkge1xuICAgICAgLy8gRW1pdCBibHVyIGV2ZW50IHdoZW4gdmFsdWUgaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5IHRvIG5vdGlmeVxuICAgICAgLy8gZnJhbWV3b3JrcyB0aGF0IHJlbHkgb24gdGhhdCBldmVudCB0byB1cGRhdGUgZm9ybSBzdGF0dXMuXG4gICAgICB0aGlzLmlucHV0RWxlbWVudCEuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JsdXInLCB7IGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBUIHwgbnVsbCB7XG4gICAgaWYgKGlzRGF0ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlQXNEYXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlQXNEYXRlPzogVCB8IG51bGw7XG5cbiAgLyoqIFRoZSByZXNvbHZlZCBhc3NvY2lhdGVkIGlucHV0IGVsZW1lbnQsIGFzIGRlZmluZWQgYnkgYGlucHV0YC4gKi9cbiAgcHVibGljIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50O1xuICB9XG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2lucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4gfCBudWxsID0gbnVsbDtcblxuICAvKiogTm90aWZpZXMgdGhhdCB0aGUgY29ubmVjdGVkIGlucHV0IGhhcyBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9jaGFuZ2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLmNoYW5nZSwge1xuICAgIGJ1YmJsZXM6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIgaGF2ZSBjaGFuZ2VzLiAqL1xuICBwcml2YXRlIF9pbnB1dFVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjxTYmJJbnB1dFVwZGF0ZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuaW5wdXRVcGRhdGVkLFxuICAgIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkYXRlcGlja2VyIGhhdmUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlclVwZGF0ZWQ6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJEYXRlcGlja2VyRWxlbWVudC5ldmVudHMuZGF0ZVBpY2tlclVwZGF0ZWQsXG4gICAge1xuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgfSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGludGVybmFsIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlcy4gKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFNiYlZhbGlkYXRpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiRGF0ZXBpY2tlckVsZW1lbnQuZXZlbnRzLnZhbGlkYXRpb25DaGFuZ2UsXG4gICk7XG5cbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50UGxhY2Vob2xkZXJNdXRhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW5wdXRBYm9ydENvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2lucHV0SWRSZWZlcmVuY2VDb250cm9sbGVyID0gbmV3IFNiYklkUmVmZXJlbmNlQ29udHJvbGxlcih0aGlzLCAnaW5wdXQnKTtcblxuICBwcml2YXRlIF9pbnB1dE9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT4ge1xuICAgICAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgICAgIHRoaXMuX2Fzc29jaWF0aW9uQ29udHJvbGxlcj8udXBkYXRlQ29udHJvbHMoKTtcbiAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoZXRoZXIgdG8gcmVtb3ZlIHRoaXMgbG9naWMgYnkgYWRkaW5nIGEgdmFsdWUgcHJvcGVydHkgdG8gdGhlIGRhdGVwaWNrZXIuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudCAmJlxuICAgICAgICAgICFpc0RhdGVJbnB1dCh0aGlzLmlucHV0RWxlbWVudCkgJiZcbiAgICAgICAgICBtdXRhdGlvbnNMaXN0Py5zb21lKChlKSA9PiBlLmF0dHJpYnV0ZU5hbWUgPT09ICd2YWx1ZScpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCd2YWx1ZScpO1xuICAgICAgICAgIHRoaXMudmFsdWVBc0RhdGUgPVxuICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodmFsdWUsIHRoaXMubm93KSA/PyB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuXG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfYXNzb2NpYXRpb25Db250cm9sbGVyID0gbmV3IFNiYkRhdGVwaWNrZXJBc3NvY2lhdGlvbkhvc3RDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5pZCB8fD0gYHNiYi1kYXRlcGlja2VyLSR7KytuZXh0SWR9YDtcbiAgICB0aGlzLl9jb25maWd1cmVJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIW5hbWUgJiYgdGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudmFsdWVBc0RhdGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICdpbnB1dCcpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlSW5wdXRFbGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3dpZGUnKSB8fFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkYXRlRmlsdGVyJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbm93JylcbiAgICApIHtcbiAgICAgIHRoaXMuX2Fzc29jaWF0aW9uQ29udHJvbGxlci51cGRhdGVDb250cm9scygpO1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlclVwZGF0ZWQuZW1pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZUFzRGF0ZScpKSB7XG4gICAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50ID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9zZXRBcmlhTGl2ZU1lc3NhZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciBhIGN1c3RvbSBub3cgaXMgY29uZmlndXJlZC5cbiAgICovXG4gIHB1YmxpYyBoYXNDdXN0b21Ob3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMubm93LCB0aGlzLl9kYXRlQWRhcHRlci50b2RheSgpKSAhPT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUlucHV0RWxlbWVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPVxuICAgICAgdGhpcy5pbnB1dCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHxcbiAgICAgICh0aGlzLmlucHV0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgaXNEYXRlSW5wdXQ8VD4odGhpcy5pbnB1dCkpXG4gICAgICAgID8gdGhpcy5pbnB1dFxuICAgICAgICA6ICgodGhpcy5faW5wdXRJZFJlZmVyZW5jZUNvbnRyb2xsZXIuZmluZCgpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsKSA/P1xuICAgICAgICAgIHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpPy5xdWVyeVNlbGVjdG9yPEhUTUxJbnB1dEVsZW1lbnQ+KFxuICAgICAgICAgICAgJ2lucHV0LHNiYi1kYXRlLWlucHV0JyxcbiAgICAgICAgICApID8/XG4gICAgICAgICAgbnVsbCk7XG4gICAgaWYgKGlucHV0RWxlbWVudCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9pbnB1dE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50ID0gaW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKCF0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTmF0aXZlSW5wdXQgPSAhaXNEYXRlSW5wdXQodGhpcy5pbnB1dEVsZW1lbnQpO1xuICAgIGlmIChpc05hdGl2ZUlucHV0ICYmIGltcG9ydC5tZXRhLmVudi5ERVYgJiYgIXdhcm5pbmdMb2dnZWQpIHtcbiAgICAgIHdhcm5pbmdMb2dnZWQgPSB0cnVlO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVXNpbmcgPHNiYi1kYXRlcGlja2VyPiB3aXRoIGEgbmF0aXZlIDxpbnB1dD4gaXMgZGVwcmVjYXRlZC4gVXNlIGEgPHNiYi1kYXRlLWlucHV0PiBpbnN0ZWFkIG9mIDxpbnB1dD4uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5faW5wdXRPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLmlucHV0RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ21pbicsICdtYXgnLCAndmFsdWUnXSxcbiAgICB9KTtcblxuICAgIGlmIChpc05hdGl2ZUlucHV0KSB7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnRQbGFjZWhvbGRlck11dGFibGUgPSAhdGhpcy5pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXI7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC50eXBlID0gJ3RleHQnO1xuICAgICAgaWYgKHRoaXMuX2lucHV0RWxlbWVudFBsYWNlaG9sZGVyTXV0YWJsZSkge1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9uczogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsIH07XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdpbnB1dCcsXG4gICAgICAoZSkgPT4ge1xuICAgICAgICBmb3J3YXJkRXZlbnQoZSwgdGhpcyk7XG4gICAgICAgIHRoaXMuX3BhcnNlSW5wdXQoKTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2UoKSwgb3B0aW9ucyk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICfJtWNoYW5nZScsXG4gICAgICAoKSA9PiB0aGlzLl9hc3NvY2lhdGlvbkNvbnRyb2xsZXI/LnVwZGF0ZUNvbnRyb2xzKCksXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdGhpcy5fcGFyc2VJbnB1dCh0cnVlKTtcbiAgICB0aGlzLl90cnlBcHBseUZvcm1hdFRvSW5wdXQoKTtcbiAgICB0aGlzLl92YWxpZGF0ZURhdGUoKTtcbiAgICB0aGlzLl9lbWl0SW5wdXRVcGRhdGVkKCk7XG4gICAgdGhpcy5fYXNzb2NpYXRpb25Db250cm9sbGVyPy51cGRhdGVDb250cm9scygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdElucHV0VXBkYXRlZCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGRpc2FibGVkLCByZWFkT25seTogcmVhZG9ubHksIG1pbjogbWluVmFsdWUsIG1heDogbWF4VmFsdWUgfSA9IHRoaXMuaW5wdXRFbGVtZW50ID8/IHt9O1xuICAgIGNvbnN0IG1pbiA9IChcbiAgICAgIG1pblZhbHVlICYmIHR5cGVvZiBtaW5WYWx1ZSAhPT0gJ3N0cmluZycgPyB0aGlzLl9kYXRlQWRhcHRlci50b0lzbzg2MDEobWluVmFsdWUpIDogbWluVmFsdWVcbiAgICApIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXggPSAoXG4gICAgICBtYXhWYWx1ZSAmJiB0eXBlb2YgbWF4VmFsdWUgIT09ICdzdHJpbmcnID8gdGhpcy5fZGF0ZUFkYXB0ZXIudG9Jc284NjAxKG1heFZhbHVlKSA6IG1heFZhbHVlXG4gICAgKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdGhpcy5faW5wdXRVcGRhdGVkLmVtaXQoeyBkaXNhYmxlZCwgcmVhZG9ubHksIG1pbiwgbWF4IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlSW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyeUFwcGx5Rm9ybWF0VG9JbnB1dCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ZhbGlkYXRlRGF0ZSgpO1xuICAgIHRoaXMuX3NldEFyaWFMaXZlTWVzc2FnZSgpO1xuICAgIHRoaXMuX2NoYW5nZS5lbWl0KCk7XG4gICAgdGhpcy5fYXNzb2NpYXRpb25Db250cm9sbGVyPy51cGRhdGVDb250cm9scygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHJ5QXBwbHlGb3JtYXRUb0lucHV0KCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pbnB1dEVsZW1lbnQgfHwgaXNEYXRlSW5wdXQodGhpcy5pbnB1dEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMudmFsdWVBc0RhdGUgPyB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy52YWx1ZUFzRGF0ZSEpIDogJyc7XG4gICAgaWYgKGZvcm1hdHRlZERhdGUgJiYgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgIT09IGZvcm1hdHRlZERhdGUpIHtcbiAgICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExNjAwI2lzc3VlY29tbWVudC0zNDU4MTMxMzBcbiAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MSW5wdXRFbGVtZW50LnByb3RvdHlwZSwgJ3ZhbHVlJykhLnNldCE7XG4gICAgICBzZXRWYWx1ZS5jYWxsKHRoaXMuaW5wdXRFbGVtZW50LCBmb3JtYXR0ZWREYXRlKTtcblxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbGlkYXRlRGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNFbXB0eU9yVmFsaWQgPSAhdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgfHwgdGhpcy5faXNEYXRlQXZhaWxhYmxlKCk7XG4gICAgY29uc3Qgd2FzVmFsaWQgPSAhdGhpcy5pbnB1dEVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJyk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbnZhbGlkJywgIWlzRW1wdHlPclZhbGlkKTtcbiAgICBpZiAod2FzVmFsaWQgIT09IGlzRW1wdHlPclZhbGlkKSB7XG4gICAgICB0aGlzLl92YWxpZGF0aW9uQ2hhbmdlLmVtaXQoeyB2YWxpZDogaXNFbXB0eU9yVmFsaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcGFyc2VJbnB1dChkZXNlcmlhbGl6ZUFzRmFsbGJhY2sgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChpc0RhdGVJbnB1dCh0aGlzLmlucHV0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50IS52YWx1ZTtcbiAgICAvLyBXZSBhcmUgYXNzaWduaW5nIGRpcmVjdGx5IHRvIHRoZSBwcml2YXRlIGJhY2tpbmcgcHJvcGVydHkgb2YgdmFsdWVBc0RhdGVcbiAgICAvLyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBibHVyIGV2ZW50IGR1cmluZyB0aGlzIHRpbWUuXG4gICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5wYXJzZSh2YWx1ZSwgdGhpcy5ub3cpLFxuICAgICk7XG4gICAgaWYgKGRlc2VyaWFsaXplQXNGYWxsYmFjayAmJiAhdGhpcy5fdmFsdWVBc0RhdGUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldEFyaWFMaXZlTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50OiBIVE1MUGFyYWdyYXBoRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yPy48SFRNTFBhcmFncmFwaEVsZW1lbnQ+KCcjc3RhdHVzLWNvbnRhaW5lcicpO1xuXG4gICAgaWYgKCFjb250YWluZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghdGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLnZhbHVlQXNEYXRlLCB7IHdlZWtkYXlTdHlsZTogJ2xvbmcnIH0pO1xuICAgICAgY29udGFpbmVyRWxlbWVudC5pbm5lclRleHQgPSBgJHtpMThuRGF0ZUNoYW5nZWRUb1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtkYXRlfWA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHAgaWQ9XCJzdGF0dXMtY29udGFpbmVyXCIgcm9sZT1cInN0YXR1c1wiPjwvcD5gO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGZpcnN0IGF2YWlsYWJsZSBkYXRlIGJlZm9yZSB0aGUgZ2l2ZW4gb25lLFxuICAgKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWluYCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZmluZFByZXZpb3VzQXZhaWxhYmxlRGF0ZShkYXRlOiBUKTogVCB7XG4gICAgY29uc3QgcHJldmlvdXNEYXRlID0gdGhpcy5fZmluZEF2YWlsYWJsZURhdGUoZGF0ZSwgLTEpO1xuICAgIGNvbnN0IGRhdGVNaW4gPSB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh0aGlzLmlucHV0RWxlbWVudD8ubWluKTtcblxuICAgIGlmIChcbiAgICAgICFkYXRlTWluIHx8XG4gICAgICAodGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWluKSAmJlxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShwcmV2aW91c0RhdGUsIGRhdGVNaW4pID49IDApXG4gICAgKSB7XG4gICAgICByZXR1cm4gcHJldmlvdXNEYXRlO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBmaXJzdCBhdmFpbGFibGUgZGF0ZSBhZnRlciB0aGUgZ2l2ZW4gb25lLFxuICAgKiBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5IGFuZCBgbWF4YCBwYXJhbWV0ZXIgKGUuZy4gZnJvbSB0aGUgc2VsZi1uYW1lZCBpbnB1dCdzIGF0dHJpYnV0ZSkuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlIGZvciBjYWxjdWxhdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZmluZE5leHRBdmFpbGFibGVEYXRlKGRhdGU6IFQpOiBUIHtcbiAgICBjb25zdCBuZXh0RGF0ZSA9IHRoaXMuX2ZpbmRBdmFpbGFibGVEYXRlKGRhdGUsIDEpO1xuICAgIGNvbnN0IGRhdGVNYXggPSB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh0aGlzLmlucHV0RWxlbWVudD8ubWF4KTtcblxuICAgIGlmIChcbiAgICAgICFkYXRlTWF4IHx8XG4gICAgICAodGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJiB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShuZXh0RGF0ZSwgZGF0ZU1heCkgPD0gMClcbiAgICApIHtcbiAgICAgIHJldHVybiBuZXh0RGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgYXZhaWxhYmxlIGRhdGUgYmVmb3JlIG9yIGFmdGVyIGEgZ2l2ZW4gb25lLCBjb25zaWRlcmluZyB0aGUgYGRhdGVGaWx0ZXJgIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZSBmb3IgY2FsY3VsYXRpb25zLlxuICAgKiBAcGFyYW0gZGVsdGEgVGhlIG51bWJlciBvZiBkYXlzIHRvIGFkZC9zdWJ0cmFjdCBmcm9tIHRoZSBzdGFydGluZyBvbmUuXG4gICAqL1xuICBwcml2YXRlIF9maW5kQXZhaWxhYmxlRGF0ZShkYXRlOiBULCBkZWx0YTogbnVtYmVyKTogVCB7XG4gICAgbGV0IGF2YWlsYWJsZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhckRheXMoZGF0ZSwgZGVsdGEpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZUZpbHRlcikge1xuICAgICAgd2hpbGUgKCF0aGlzLmRhdGVGaWx0ZXIoYXZhaWxhYmxlRGF0ZSkpIHtcbiAgICAgICAgYXZhaWxhYmxlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhhdmFpbGFibGVEYXRlLCBkZWx0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF2YWlsYWJsZURhdGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHZhbHVlQXNEYXRlIGlzIHZhbGlkLCBjb25zaWRlcmluZyB0aGUgU2JiRGF0ZXBpY2tlckVsZW1lbnQgYGRhdGVGaWx0ZXJgIHByb3BlcnR5XG4gICAqIGFuZCBgbWluYCBhbmQgYG1heGAgcGFyYW1ldGVycyAoZS5nLiBmcm9tIHRoZSBzZWxmLW5hbWVkIGlucHV0J3MgYXR0cmlidXRlcykuXG4gICAqL1xuICBwcml2YXRlIF9pc0RhdGVBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnZhbHVlQXNEYXRlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZU1pbiA9IHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHRoaXMuaW5wdXRFbGVtZW50Py5taW4pO1xuICAgIGNvbnN0IGRhdGVNYXggPSB0aGlzLl9kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh0aGlzLmlucHV0RWxlbWVudD8ubWF4KTtcblxuICAgIGlmIChcbiAgICAgICh0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKGRhdGVNaW4pICYmXG4gICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMudmFsdWVBc0RhdGUsIGRhdGVNaW4hKSA8IDApIHx8XG4gICAgICAodGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlTWF4KSAmJlxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLnZhbHVlQXNEYXRlLCBkYXRlTWF4ISkgPiAwKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGVGaWx0ZXI/Lih0aGlzLnZhbHVlQXNEYXRlKSA/PyB0cnVlO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlcic6IFNiYkRhdGVwaWNrZXJFbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgaW5wdXRVcGRhdGVkOiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNiYkRhdGVwaWNrZXJFbGVtZW50IiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsSUFBSSxTQUFTO0FBQ2IsSUFBSSxnQkFBZ0I7QUFDcEIsTUFBTSxjQUFjLENBQ2xCLGFBQ3NDLG1DQUFTLGVBQWM7SUFhekQsd0JBQW9CLE1BQUE7OzBCQUR6QixjQUFjLGdCQUFnQixDQUFDOzs7O29CQUNhOzs7Ozs7Ozs7Ozs7Ozs7O0FBQVJBLE1BQUFBLHlCQUFBLG1CQUFRLFlBQVU7QUFBQTs7O0FBWXJEO0FBMkJBO0FBUUE7QUFrQ1M7QUFqRkwseUJBQUEseUJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQVk0QixrQkFBQSxNQUFBLG9CQUFBLEtBQUs7QUFpQjdCLFdBQUEsY0FBMEMsa0JBQUEsTUFBQSx1QkFBQTtBQVVsQyx5QkFBQSx5QkFBQSxrQkFB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
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLmpzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZXRpbWUuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBpZFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuRGF0ZUNoYW5nZWRUbyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBTYmJEYXRlSW5wdXRFbGVtZW50LCB0eXBlIFNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgfSBmcm9tICcuLi8uLi9kYXRlLWlucHV0LmpzJztcbmltcG9ydCB7IFNiYlBvcG92ZXJCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudCB9IGZyb20gJy4uL2RhdGVwaWNrZXItdG9nZ2xlLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2NhbGVuZGFyLmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQSBkYXRlcGlja2VyIGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBjYWxlbmRhciB2aWV3LlxuICpcbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZGF0ZXBpY2tlcmAgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kYXRlcGlja2VyYCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHsgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IH0+fSB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1kYXRlcGlja2VyYCBiZWdpbnMgdGhlIGNsb3NpbmdcbiAqIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfT59IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItZGF0ZXBpY2tlcmAgaXMgY2xvc2VkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxUPn0gZGF0ZVNlbGVjdGVkIC0gRXZlbnQgZW1pdHRlZCBvbiBkYXRlIHNlbGVjdGlvbi5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXInKVxuY2xhc3MgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VCA9IERhdGU+XG4gIGV4dGVuZHMgU2JiUG9wb3ZlckJhc2VFbGVtZW50XG4gIGltcGxlbWVudHMgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPlxue1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdHdvIG1vbnRocyBhcmUgZGlzcGxheWVkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igd2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG9yIHRoZSBuYXRpdmUgaW5wdXQgY29ubmVjdGVkIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciBpbnB1dDogU2JiRGF0ZUlucHV0RWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihTYmJQb3BvdmVyQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLCAoKSA9PiB7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJ3NiYi1jYWxlbmRhcicpPy5yZXNldFBvc2l0aW9uPy4oKTtcbiAgICB9KTtcbiAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLnJlcXVlc3RVcGRhdGUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItZGF0ZXBpY2tlci0keysrbmV4dElkfWA7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIFNiYkRhdGVJbnB1dEVsZW1lbnQucmVzb2x2ZUFzc29jaWF0aW9uKHRoaXMpO1xuICAgICAgY29uc3QgdG9nZ2xlID1cbiAgICAgICAgZm9ybUZpZWxkLnF1ZXJ5U2VsZWN0b3I8U2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VD4+KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKTtcbiAgICAgIGlmICh0b2dnbGUgJiYgIXRvZ2dsZS5oYXNBdHRyaWJ1dGUoJ2RhdGVwaWNrZXInKSkge1xuICAgICAgICB0b2dnbGUuZGF0ZXBpY2tlciA/Pz0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAobmFtZSA9PT0gJ2lucHV0JyAmJiB0aGlzLmlucHV0ICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICBjb25zdCB7IHNpZ25hbCB9ID0gKHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpKTtcbiAgICAgICAgdGhpcy5pbnB1dD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnybVjaGFuZ2UnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTdGF0dXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc3RhdHVzLWNvbnRhaW5lcicpO1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5pbnB1dD8udmFsdWVBc0RhdGUpXG4gICAgICA/IGAke2kxOG5EYXRlQ2hhbmdlZFRvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdChcbiAgICAgICAgICB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3ZWVrZGF5U3R5bGU6ICdsb25nJyxcbiAgICAgICAgICB9LFxuICAgICAgICApfWBcbiAgICAgIDogJyc7XG4gICAgaWYgKHN0YXR1cy50ZXh0Q29udGVudCAhPT0gdGV4dCkge1xuICAgICAgc3RhdHVzLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyQ29udGVudCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBpZD1cInN0YXR1cy1jb250YWluZXJcIiByb2xlPVwic3RhdHVzXCI+PC9wPlxuICAgICAgPHNiYi1jYWxlbmRhclxuICAgICAgICAudmlldz0ke3RoaXMudmlld31cbiAgICAgICAgLm1pbj0ke3RoaXMuaW5wdXQ/Lm1pbiA/PyBudWxsfVxuICAgICAgICAubWF4PSR7dGhpcy5pbnB1dD8ubWF4ID8/IG51bGx9XG4gICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5pbnB1dD8uZGF0ZUZpbHRlciA/PyBudWxsfVxuICAgICAgICAuc2VsZWN0ZWQ9JHt0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSA/PyBudWxsfVxuICAgICAgICA/d2lkZT0ke3RoaXMud2lkZX1cbiAgICAgICAgQGRhdGVTZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIC8vIEVtaXQgYmx1ciBldmVudCB3aGVuIHZhbHVlIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseSB0byBub3RpZnlcbiAgICAgICAgICAgIC8vIGZyYW1ld29ya3MgdGhhdCByZWx5IG9uIHRoYXQgZXZlbnQgdG8gdXBkYXRlIGZvcm0gc3RhdHVzLlxuICAgICAgICAgICAgdGhpcy5pbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmx1cicsIHsgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgID48L3NiYi1jYWxlbmRhcj5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGlzU2VydmVyIHx8IHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgPyBodG1sYCR7bm90aGluZ31gIDogc3VwZXIucmVuZGVyKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyJzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxJQUFJLFNBQVM7SUFjUCx3QkFBb0IsTUFBQTs7MEJBRHpCLGNBQWMsZ0JBQWdCLENBQUM7Ozs7b0JBRXRCOzs7Ozs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFxQjtBQUFBLElBMkI3QixjQUFBO0FBQ0UsWUFBQTtBQW5CRjtBQVNBO0FBR1k7QUFaSSx5QkFBQSx3QkFBQSxrQkFBQSxNQUFBLG9CQUFnQixLQUFLO0FBU3JCLHlCQUFBLDBCQUFBLGtCQUFBLE1BQUEsdUJBQUEsR0FBQSxrQkFBQSxNQUFBLHFCQUF1QyxJQUFJO0FBRy9CLHlCQUFBLHlCQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLG9CQUFxQixLQUFLO0FBRTlDLFdBQUEsd0JBQXFCLGtCQUFBLE1BQUEsdUJBQUE7QUFDckIsV0FBQSxlQUErQixXQUFBLEVBQWEsVUFBVSxlQUFlO0FBQ3JFLFdBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBSWhELFdBQUssaUJBQWlCLHNCQUFzQixPQUFPLFVBQVUsTUFBSztBQUNoRSxhQUFLLFlBQVksY0FBYyxjQUFjLEdBQUcsZ0JBQUE7QUFBQSxNQUFlLENBQ2hFO0FBQ0QsVUFBSSxDQUFDLFlBQVksS0FBSyxtQkFBbUI7QUFDdkMsYUFBSyxrQkFBa0IsS0FBSyxNQUFNLEtBQUssZUFBZTtBQUFBLE1BQUE7QUFBQSxJQUN4RDtBQUFBO0FBQUEsSUF6QkYsSUFBZ0IsT0FBSTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEseUJBQUEsd0JBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBU3BCLElBQWdCLFFBQUs7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXJCLElBQWdCLE1BQUssT0FBQTtBQUFBLHlCQUFBLHlCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFHVCxJQUFnQixPQUFJO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQSxJQWdCaEIsb0JBQWlCO0FBQy9CLFdBQUssT0FBTyxrQkFBa0IsRUFBRSxNQUFNO0FBQ3RDLFlBQU0sa0JBQUE7QUFFTixZQUFNLFlBQVksS0FBSyxVQUFVLGdCQUFnQjtBQUNqRCxVQUFJLFdBQVc7QUFDYiw0QkFBb0IsbUJBQW1CLElBQUk7QUFDM0MsY0FBTSxTQUNKLFVBQVUsY0FBNkMsdUJBQXVCO0FBQ2hGLFlBQUksVUFBVSxDQUFDLE9BQU8sYUFBYSxZQUFZLEdBQUc7QUFDaEQsaUJBQU8sZUFBZTtBQUFBLFFBQUE7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxJQUdjLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0FBRTdCLFlBQU0sY0FBYyxNQUFNLFVBQVUsT0FBTztBQUMzQyxVQUFJLFNBQVMsV0FBVyxLQUFLLFVBQVUsVUFBVTtBQUMvQyxhQUFLLHVCQUF1QixNQUFBO0FBQzVCLFlBQUksS0FBSyxPQUFPO0FBQ2QsZ0JBQU0sRUFBRSxPQUFBLElBQVksS0FBSyx3QkFBd0IsSUFBSSxnQkFBQTtBQUNyRCxlQUFLLE9BQU8saUJBQ1YsV0FDQSxNQUFLO0FBQ0gsa0JBQU0sY0FBQTtBQUNOLGlCQUFLLGNBQUE7QUFBQSxVQUFhLEdBRXBCLEVBQUUsT0FBQSxDQUFRO0FBQUEsUUFBQTtBQUFBLE1BRWQ7QUFBQSxJQUNGO0FBQUEsSUFHTSxnQkFBYTtBQUNuQixZQUFNLFNBQVMsS0FBSyxZQUFZLGVBQWUsa0JBQWtCO0FBQ2pFLFVBQUksQ0FBQyxRQUFRO0FBQ1g7QUFBQSxNQUFBO0FBR0YsWUFBTSxPQUFPLEtBQUssYUFBYSxRQUFRLEtBQUssT0FBTyxXQUFXLElBQzFELEdBQUcsa0JBQWtCLEtBQUssVUFBVSxPQUFPLENBQUMsSUFBSSxLQUFLLGFBQWEsT0FDaEUsS0FBSyxNQUFPLGFBQ1o7QUFBQSxRQUNFLGNBQWM7QUFBQSxNQUFBLENBQ2YsQ0FDRixLQUNEO0FBQ0osVUFBSSxPQUFPLGdCQUFnQixNQUFNO0FBQy9CLGVBQU8sY0FBYztBQUFBLE1BQUE7QUFBQSxJQUN2QjtBQUFBLElBR2lCLGdCQUFhO0FBQzlCLGFBQU87QUFBQTtBQUFBO0FBQUEsZ0JBR0ssS0FBSyxJQUFJO0FBQUEsZUFDVixLQUFLLE9BQU8sT0FBTyxJQUFJO0FBQUEsZUFDdkIsS0FBSyxPQUFPLE9BQU8sSUFBSTtBQUFBLHNCQUNoQixLQUFLLE9BQU8sY0FBYyxJQUFJO0FBQUEsb0JBQ2hDLEtBQUssT0FBTyxlQUFlLElBQUk7QUFBQSxnQkFDbkMsS0FBSyxJQUFJO0FBQUEsd0JBQ0QsQ0FBQyxNQUFxQjtBQUNwQyxZQUFJLEtBQUssT0FBTztBQUNkLGVBQUssTUFBTSxjQUFjLEVBQUU7QUFDM0IsZUFBSyxNQUFNLGNBQWMsSUFBSSxXQUFXLFNBQVMsRUFBRSxTQUFTLE1BQU0sVUFBVSxLQUFBLENBQU0sQ0FBQztBQUNuRixlQUFLLE1BQU0sY0FBYyxJQUFJLE1BQU0sVUFBVSxFQUFFLFNBQVMsTUFBTSxVQUFVLEtBQUEsQ0FBTSxDQUFDO0FBRy9FLGVBQUssTUFBTSxjQUFjLElBQUksTUFBTSxRQUFRLEVBQUUsVUFBVSxLQUFBLENBQU0sQ0FBQztBQUFBLFFBQUE7QUFBQSxNQUNoRSxDQUNEO0FBQUE7QUFBQTtBQUFBLElBQUE7QUFBQSxJQUtZLFNBQU07QUFDdkIsYUFBTyxZQUFZLEtBQUssb0JBQW9CLE9BQU8sT0FBTyxLQUFLLE1BQU0sT0FBQTtBQUFBO0tBN0d2RSx3Q0FTQSx5Q0FHWTs7d0JBZFgsYUFDQSxTQUFTLEVBQUUsTUFBTSxRQUFBLENBQVMsQ0FBQzt5QkFRM0IsZUFDQSxVQUFVO0FBSVYsdUJBQUEsQ0FBQSxVQUFVO0FBWlgsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQVNwQixpQkFBQSxJQUFBLE1BQUEsbUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixPQUFLLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7QUFBQSxJQUFBLEtBQUEsVUFBQSxhQUFBLHFCQUFBLHdCQUFBO0FBR1QsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsYUFBQSxvQkFBQSx1QkFBQTtBQXRCbEMsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUl5QixHQUFBLFNBQXlCLENBQUMsc0JBQXNCLFFBQVEsS0FBSyxHQUM3RCxHQUFBLHlCQUF5QixNQUw1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQ0o7OzsifQ==
|
|
@@ -9,8 +9,8 @@ export declare class SbbDatepickerNextDayElement<T = Date> extends SbbDatepicker
|
|
|
9
9
|
protected iconName: string;
|
|
10
10
|
protected i18nOffBoundaryDay: Record<string, string>;
|
|
11
11
|
protected i18nSelectOffBoundaryDay: (currentDate: string) => Record<string, string>;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
protected findAvailableDate(date: T): T | null;
|
|
13
|
+
private _isAfterMaxDate;
|
|
14
14
|
}
|
|
15
15
|
declare global {
|
|
16
16
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-next-day.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-next-day/datepicker-next-day.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD;;;GAGG;AACH,qBAEM,2BAA2B,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAA+B;IACzD,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAe;IACnE,SAAS,CAAC,wBAAwB,kDAAqB;
|
|
1
|
+
{"version":3,"file":"datepicker-next-day.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-next-day/datepicker-next-day.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD;;;GAGG;AACH,qBAEM,2BAA2B,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAA+B;IACzD,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAe;IACnE,SAAS,CAAC,wBAAwB,kDAAqB;IAEvD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAmB9C,OAAO,CAAC,eAAe;CAGxB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,yBAAyB,EAAE,2BAA2B,CAAC;KACxD;CACF"}
|