@sbb-esta/lyne-elements 2.0.1 → 2.0.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.d.ts +1 -2
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +39 -44
- package/alert/alert-group/alert-group.d.ts +1 -2
- package/alert/alert-group/alert-group.d.ts.map +1 -1
- package/alert/alert-group.js +29 -34
- package/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete/autocomplete.d.ts +1 -1
- package/autocomplete/autocomplete.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid.js +18 -22
- package/autocomplete.js +17 -18
- package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +1 -2
- package/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group.js +26 -30
- package/button/common.js +4 -4
- package/calendar/calendar.d.ts +3 -3
- package/calendar/calendar.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +34 -36
- package/core/base-elements/button-base-element.d.ts +1 -1
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements.js +1 -1
- package/core/controllers/connected-abort-controller.d.ts +4 -0
- package/core/controllers/connected-abort-controller.d.ts.map +1 -1
- package/core/eventing/forward-event.d.ts +7 -1
- package/core/eventing/forward-event.d.ts.map +1 -1
- package/core/eventing.js +14 -12
- package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/core/mixins/form-associated-radio-button-mixin.d.ts +1 -0
- package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/core/mixins.js +28 -34
- package/core/styles/core.scss +13 -12
- package/core/styles/mixins/buttons.scss +1 -1
- package/core/styles/mixins/lists.scss +100 -35
- package/core.css +2 -1
- package/custom-elements.json +226 -366
- package/datepicker/common/datepicker-button.d.ts +1 -1
- package/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/datepicker/common.js +24 -24
- package/datepicker/datepicker/datepicker.d.ts +1 -1
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -2
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +76 -75
- package/datepicker/datepicker.js +58 -60
- package/development/accordion/accordion.d.ts +1 -2
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +16 -23
- package/development/alert/alert-group/alert-group.d.ts +1 -2
- package/development/alert/alert-group/alert-group.d.ts.map +1 -1
- package/development/alert/alert-group.js +12 -17
- package/development/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.d.ts +1 -1
- package/development/autocomplete/autocomplete.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid.js +9 -12
- package/development/autocomplete.js +12 -12
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts +1 -2
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group.js +13 -17
- package/development/button/common.js +20 -6
- package/development/calendar/calendar.d.ts +3 -3
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +10 -15
- package/development/core/base-elements/button-base-element.d.ts +1 -1
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +2 -2
- package/development/core/controllers/connected-abort-controller.d.ts +4 -0
- package/development/core/controllers/connected-abort-controller.d.ts.map +1 -1
- package/development/core/controllers.js +1 -1
- package/development/core/eventing/forward-event.d.ts +7 -1
- package/development/core/eventing/forward-event.d.ts.map +1 -1
- package/development/core/eventing.js +5 -3
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts +1 -0
- package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +9 -18
- package/development/datepicker/common/datepicker-button.d.ts +1 -1
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common.js +6 -7
- package/development/datepicker/datepicker/datepicker.d.ts +1 -1
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +1 -2
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +14 -14
- package/development/datepicker/datepicker.js +8 -11
- package/development/dialog/dialog/dialog.d.ts +1 -1
- package/development/dialog/dialog/dialog.d.ts.map +1 -1
- package/development/dialog/dialog-content/dialog-content.d.ts.map +1 -1
- package/development/dialog/dialog-content.js +3 -2
- package/development/dialog/dialog.js +7 -13
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts +1 -1
- package/development/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header.js +7 -11
- package/development/expansion-panel/expansion-panel.js +5 -7
- package/development/file-selector/common.js +3 -3
- package/development/flip-card/flip-card/flip-card.d.ts +1 -2
- package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card.js +12 -15
- package/development/footer/footer.d.ts +1 -1
- package/development/footer.js +2 -2
- package/development/form-field/form-field-clear/form-field-clear.d.ts +1 -1
- package/development/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/development/form-field/form-field-clear.js +5 -6
- package/development/image/image.d.ts +2 -2
- package/development/image.js +1 -1
- package/development/map-container/map-container.d.ts.map +1 -1
- package/development/map-container.js +3 -2
- package/development/menu/menu/menu.d.ts +2 -1
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +20 -13
- package/development/message.js +2 -1
- package/development/navigation/common/navigation-action-common.d.ts +1 -1
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/common.js +11 -13
- package/development/navigation/navigation/navigation.d.ts +0 -1
- package/development/navigation/navigation/navigation.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.d.ts +1 -0
- package/development/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/development/navigation/navigation-section.js +5 -6
- package/development/navigation/navigation.js +9 -10
- package/development/notification.js +2 -2
- package/development/option/option/option-base-element.d.ts +1 -1
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +17 -21
- package/development/overlay/overlay-base-element.d.ts +1 -0
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay.js +4 -4
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +6 -3
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common.js +11 -11
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +3 -3
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +5 -9
- package/development/select/select.d.ts +5 -2
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +59 -34
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +1 -1
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +6 -8
- package/development/slider/slider.d.ts +1 -2
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +6 -8
- package/development/stepper/step/step.d.ts +5 -5
- package/development/stepper/step/step.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.d.ts +1 -1
- package/development/stepper/step-label/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +12 -14
- package/development/stepper/step.js +8 -10
- package/development/stepper/stepper/stepper.d.ts +9 -8
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +28 -27
- package/development/tabs/tab-group/tab-group.d.ts +1 -2
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +9 -14
- package/development/tag/tag/tag.d.ts +1 -1
- package/development/tag/tag/tag.d.ts.map +1 -1
- package/development/tag/tag-group/tag-group.d.ts +1 -1
- package/development/tag/tag-group/tag-group.d.ts.map +1 -1
- package/development/tag/tag-group.js +1 -1
- package/development/tag/tag.js +5 -6
- package/development/teaser-hero.js +6 -2
- package/development/time-input/time-input.d.ts +1 -1
- package/development/time-input/time-input.d.ts.map +1 -1
- package/development/time-input.js +6 -4
- package/development/toast/toast.d.ts +1 -1
- package/development/toast/toast.d.ts.map +1 -1
- package/development/toast.js +6 -7
- package/development/toggle/toggle/toggle.d.ts +1 -1
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +9 -13
- package/development/toggle/toggle.js +6 -8
- package/development/train/train-formation/train-formation.d.ts +1 -2
- package/development/train/train-formation/train-formation.d.ts.map +1 -1
- package/development/train/train-formation.js +8 -12
- package/dialog/dialog/dialog.d.ts +1 -1
- package/dialog/dialog/dialog.d.ts.map +1 -1
- package/dialog/dialog-content/dialog-content.d.ts.map +1 -1
- package/dialog/dialog-content.js +8 -7
- package/dialog/dialog.js +36 -42
- package/expansion-panel/expansion-panel/expansion-panel.d.ts +1 -1
- package/expansion-panel/expansion-panel/expansion-panel.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +1 -2
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header.js +29 -33
- package/expansion-panel/expansion-panel.js +58 -60
- package/file-selector/common.js +5 -5
- package/flip-card/flip-card/flip-card.d.ts +1 -2
- package/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card.js +34 -36
- package/footer/footer.d.ts +1 -1
- package/footer.js +1 -1
- package/form-field/form-field-clear/form-field-clear.d.ts +1 -1
- package/form-field/form-field-clear/form-field-clear.d.ts.map +1 -1
- package/form-field/form-field-clear.js +10 -11
- package/image/image.d.ts +2 -2
- package/lists.css +46 -62
- package/map-container/map-container.d.ts.map +1 -1
- package/map-container.js +22 -21
- package/menu/menu/menu.d.ts +2 -1
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +84 -77
- package/message.js +12 -12
- package/navigation/common/navigation-action-common.d.ts +1 -1
- package/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/navigation/common.js +24 -26
- package/navigation/navigation/navigation.d.ts +0 -1
- package/navigation/navigation/navigation.d.ts.map +1 -1
- package/navigation/navigation-section/navigation-section.d.ts +1 -0
- package/navigation/navigation-section/navigation-section.d.ts.map +1 -1
- package/navigation/navigation-section.js +35 -36
- package/navigation/navigation.js +64 -65
- package/notification.js +1 -1
- package/option/option/option-base-element.d.ts +1 -1
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +125 -125
- package/overlay/overlay-base-element.d.ts +1 -0
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay.js +35 -35
- package/package.json +1 -1
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +6 -3
- package/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/radio-button/common.js +13 -14
- package/radio-button/radio-button-group/radio-button-group.d.ts +3 -3
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +20 -24
- package/select/select.d.ts +5 -2
- package/select/select.d.ts.map +1 -1
- package/select.js +96 -84
- package/selection-expansion-panel/selection-expansion-panel.d.ts +1 -1
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +17 -18
- package/slider/slider.d.ts +1 -2
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +23 -25
- package/standard-theme.css +48 -63
- package/stepper/step/step.d.ts +5 -5
- package/stepper/step/step.d.ts.map +1 -1
- package/stepper/step-label/step-label.d.ts +1 -1
- package/stepper/step-label/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +16 -18
- package/stepper/step.js +22 -24
- package/stepper/stepper/stepper.d.ts +9 -8
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +57 -58
- package/tabs/tab-group/tab-group.d.ts +1 -2
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +83 -88
- package/tag/tag/tag.d.ts +1 -1
- package/tag/tag/tag.d.ts.map +1 -1
- package/tag/tag-group/tag-group.d.ts +1 -1
- package/tag/tag-group/tag-group.d.ts.map +1 -1
- package/tag/tag.js +30 -30
- package/teaser-hero.js +19 -19
- package/time-input/time-input.d.ts +1 -1
- package/time-input/time-input.d.ts.map +1 -1
- package/time-input.js +7 -5
- package/toast/toast.d.ts +1 -1
- package/toast/toast.d.ts.map +1 -1
- package/toast.js +32 -33
- package/toggle/toggle/toggle.d.ts +1 -1
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts +1 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +31 -35
- package/toggle/toggle.js +31 -33
- package/train/train-formation/train-formation.d.ts +1 -2
- package/train/train-formation/train-formation.d.ts.map +1 -1
- package/train/train-formation.js +35 -39
|
@@ -93,7 +93,7 @@ let SbbButtonBaseElement = (() => {
|
|
|
93
93
|
get type() {
|
|
94
94
|
return this.getAttribute("type") ?? "button";
|
|
95
95
|
}
|
|
96
|
-
/** The
|
|
96
|
+
/** The `<form>` element to associate the button with. */
|
|
97
97
|
set form(value) {
|
|
98
98
|
this._formId = value;
|
|
99
99
|
}
|
|
@@ -395,4 +395,4 @@ export {
|
|
|
395
395
|
SbbLinkBaseElement,
|
|
396
396
|
SbbOpenCloseBaseElement
|
|
397
397
|
};
|
|
398
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgPGZvcm0+IGVsZW1lbnQgdG8gYXNzb2NpYXRlIHRoZSBidXR0b24gd2l0aC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmb3JtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9mb3JtSWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgLy8gVXNlIHF1ZXJ5U2VsZWN0b3Igd2l0aCBmb3JtIGFuZCBpZCBzZWxlY3RvciwgYXMgdGhlIGZvcm0gcHJvcGVydHkgbXVzdFxuICAgIC8vIHJlZmVyZW5jZSBhIHZhbGlkIDxmb3JtPiBlbGVtZW50XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1JZFxuICAgICAgPyAoKHRoaXMub3duZXJEb2N1bWVudD8ucXVlcnlTZWxlY3Rvcj8uKGBmb3JtIyR7dGhpcy5fZm9ybUlkfWApIGFzIEhUTUxGb3JtRWxlbWVudCkgPz8gbnVsbClcbiAgICAgIDogdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgfVxuICBwcml2YXRlIF9mb3JtSWQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSAnYnV0dG9uJztcblxuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuXG4gICAgICBjb25zdCBwYXNzaXZlT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9O1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZUJ1dHRvbkNsaWNrKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3ByZXZlbnRTY3JvbGxPblNwYWNlS2V5ZG93bik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwLCBwYXNzaXZlT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleXByZXNzJyxcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFzc2l2ZU9wdGlvbnMsXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9oYW5kbGVCdXR0b25DbGljayA9IGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdidXR0b24nIHx8IChhd2FpdCBpc0V2ZW50UHJldmVudGVkKGV2ZW50KSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtO1xuICAgIGlmICghZm9ybSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnc3VibWl0Jykge1xuICAgICAgLy8gYGZvcm0ucmVxdWVzdFN1Ym1pdChlbGVtZW50KTtgIHNlZW1zIG5vdCB0byB3b3JrIGZvciBDdXN0b21FbGVtZW50cywgc28gdGhlIGBlbGVtZW50YCBwYXJhbWV0ZXIgaGFzIGJlZW4gcmVtb3ZlZDtcbiAgICAgIC8vIFRPRE86IENoZWNrIGlmIHNvbHZlZCBpbiBhbnkgd2F5LCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvd2ViY29tcG9uZW50cy9pc3N1ZXMvODE0I2lzc3VlY29tbWVudC0xMjE4NDUyMTM3XG4gICAgICAvLyBXZSB1c2UgdGhlIHdvcmthcm91bmQgZGVzY3JpYmVkIGluIHRoZSBnaXRodWIgaXNzdWUgYnkgY2xvbmluZyB0aGUgc3VibWl0IGJ1dHRvbiBhbmQgcGFzcyB0aGlzIG9uZSBhcyBhbiBhcmd1bWVudC5cblxuICAgICAgY29uc3Qgc3VibWl0QnV0dG9uQ2xvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLmluZXJ0ID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLmhpZGRlbiA9IHRydWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUudmFsdWUgPSB0aGlzLnZhbHVlID8/ICcnO1xuXG4gICAgICBmb3JtLmFwcGVuZChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBmb3JtLnJlcXVlc3RTdWJtaXQoc3VibWl0QnV0dG9uQ2xvbmUpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUucmVtb3ZlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdyZXNldCcpIHtcbiAgICAgIGZvcm0ucmVzZXQoKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFByZXZlbnRzIHNjcm9sbGluZyBmcm9tIHByZXNzaW5nIFNwYWNlLCB3aGVuIHRoZSBldmVudCB0YXJnZXQgaXMgYW4gYWN0aW9uIGVsZW1lbnQuXG4gICAqIEFsc28gc2V0cyBkYXRhLWFjdGl2ZSBhdHRyaWJ1dGUuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9yZW1vdmVBY3RpdmVNYXJrZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGEgJ2NsaWNrJyBQb2ludGVyRXZlbnQgaWYgdGhlIG9yaWdpbmFsIGtleWJvYXJkIGV2ZW50IGlzIGEgJ1NwYWNlJyBwcmVzcy5cbiAgICogQXMgdmVyaWZpZWQgd2l0aCB0aGUgbmF0aXZlIGJ1dHRvbiwgd2hlbiAnU3BhY2UnIGlzIHByZXNzZWQsIGEgJ2NsaWNrJyBldmVudCBpcyBkaXNwYXRjaGVkXG4gICAqIGFmdGVyIHRoZSAna2V5dXAnIGV2ZW50LlxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIG9yaWdpbiBldmVudC5cbiAgICovXG4gIHByaXZhdGUgX2Rpc3BhdGNoQ2xpY2tFdmVudE9uU3BhY2VLZXl1cCA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlTWFya2VyKGV2ZW50KTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQ2xpY2tFdmVudCA9IChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHsgYWx0S2V5LCBjdHJsS2V5LCBtZXRhS2V5LCBzaGlmdEtleSB9ID0gZXZlbnQ7XG4gICAgKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IFBvaW50ZXJFdmVudCgnY2xpY2snLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICBwb2ludGVySWQ6IC0xLFxuICAgICAgICBwb2ludGVyVHlwZTogJycsXG4gICAgICAgIGFsdEtleSxcbiAgICAgICAgY3RybEtleSxcbiAgICAgICAgbWV0YUtleSxcbiAgICAgICAgc2hpZnRLZXksXG4gICAgICB9KSxcbiAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFbJ25hbWUnLCAndmFsdWUnXS5pbmNsdWRlcyhuYW1lKSB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbnMgYXJlIG5vdCB0YXJnZXRlZCBieSBmb3JtIHJlc2V0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge31cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzdG9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgX3N0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b24gZG9lcyBub3Qgd3JpdGUgaXRzIGRhdGEgaW4gZm9ybS5cbiAgICogVGhlIGRhdGEgaXMgb25seSBhcHBsaWVkIG9uIHN1Ym1pdCBidXR0b24gY2xpY2sgYXMgc3VibWl0dGVyIG9mIHJlcXVlc3RTdWJtaXQoKTtcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge31cbn1cbiIsImltcG9ydCB7IGh0bWwsIGlzU2VydmVyLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdyB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqIEVudW1lcmF0aW9uIGZvciAndGFyZ2V0JyBhdHRyaWJ1dGUgaW4gPGE+IEhUTUwgdGFnLiAqL1xuZXhwb3J0IHR5cGUgTGlua1RhcmdldFR5cGUgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG5cbi8qKiBMaW5rIGJhc2UgY2xhc3MuICovXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWxpbmsnOiAnJyxcbn0pXG5hYnN0cmFjdCBjbGFzcyBTYmJMaW5rQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJBY3Rpb25CYXNlRWxlbWVudCB7XG4gIC8qKiBUaGUgaHJlZiB2YWx1ZSB5b3Ugd2FudCB0byBsaW5rIHRvLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGhyZWY6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBXaGVyZSB0byBkaXNwbGF5IHRoZSBsaW5rZWQgVVJMLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRhcmdldDogTGlua1RhcmdldFR5cGUgfCBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHJlbGF0aW9uc2hpcCBvZiB0aGUgbGlua2VkIFVSTCBhcyBzcGFjZS1zZXBhcmF0ZWQgbGluayB0eXBlcy4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciByZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBicm93c2VyIHdpbGwgc2hvdyB0aGUgZG93bmxvYWQgZGlhbG9nIG9uIGNsaWNrLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZG93bmxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uYmx1cigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5jbGljaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbHVhdGVSZWxBdHRyaWJ1dGUgPSAoKTogc3RyaW5nIHwgdHlwZW9mIG5vdGhpbmcgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlbCA/IHRoaXMucmVsIDogdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gJ2V4dGVybmFsIG5vb3BlbmVyIG5vZm9sbG93JyA6IG5vdGhpbmc7XG4gIH07XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgbGluay1saWtlIGNvbXBvbmVudHMuIENhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBMaW5rUmVuZGVyVmFyaWFibGVzIGFyZSBub3QgbmVlZGVkLiAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJMaW5rKHRoaXMucmVuZGVyVGVtcGxhdGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGluayhyZW5kZXJDb250ZW50OiBUZW1wbGF0ZVJlc3VsdCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwic2JiLWFjdGlvbi1iYXNlICR7dGhpcy5sb2NhbE5hbWV9XCJcbiAgICAgICAgaHJlZj0ke3RoaXMuaHJlZiB8fCBub3RoaW5nfVxuICAgICAgICA/ZG93bmxvYWQ9JHt0aGlzLmRvd25sb2FkfVxuICAgICAgICB0YXJnZXQ9JHt0aGlzLnRhcmdldCB8fCBub3RoaW5nfVxuICAgICAgICByZWw9JHt0aGlzLl9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSgpfVxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlID8gJy0xJyA6IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke3JlbmRlckNvbnRlbnR9XG4gICAgICAgICR7ISF0aGlzLmhyZWYgJiYgdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICAgID4uICR7aTE4blRhcmdldE9wZW5zSW5OZXdXaW5kb3dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9hPlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICpcbiAqIEBldmVudCB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQgd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyBvcGVuLiAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCc7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICAgIHsgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgcHJvdGVjdGVkIGRpZE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZE9wZW4sIHtcbiAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICB9KTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICB3aWxsT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgd2lsbENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztJQW1CZSx3QkFBb0IsTUFBQTs7QUFIbEMsTUFBQSxtQkFBQSxDQUFBLGVBQWU7QUFBQSxJQUNkLGVBQWU7QUFBQSxFQUFBLENBQ2hCLENBQUM7Ozs7b0JBQzBDO0FBQVIsRUFBQSxtQkFBUSxZQUFVO0FBQUEsSUFDcEQsSUFBYyxnQkFBYTtBQUN6QixZQUFNLGdCQUFnQjtBQUNmLGFBQUEsY0FBYyxZQUFZLGNBQWM7QUFBQSxJQUFBO0FBQUEsSUFHakQsSUFBYywyQkFBd0I7QUFDcEMsYUFBUSxLQUF1QjtBQUFBLElBQUE7QUFBQSxJQUdqQixvQkFBaUI7O0FBQy9CLFlBQU0sa0JBQWlCO0FBRXZCLFdBRUcsS0FBSyxh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
|
|
398
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgYDxmb3JtPmAgZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGZvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5fZm9ybUlkXG4gICAgICA/ICgodGhpcy5vd25lckRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPy4oYGZvcm0jJHt0aGlzLl9mb3JtSWR9YCkgYXMgSFRNTEZvcm1FbGVtZW50KSA/PyBudWxsKVxuICAgICAgOiB0aGlzLmludGVybmFscy5mb3JtO1xuICB9XG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdidXR0b24nO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm07XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIC8vIFdlIHVzZSB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlIGdpdGh1YiBpc3N1ZSBieSBjbG9uaW5nIHRoZSBzdWJtaXQgYnV0dG9uIGFuZCBwYXNzIHRoaXMgb25lIGFzIGFuIGFyZ3VtZW50LlxuXG4gICAgICBjb25zdCBzdWJtaXRCdXR0b25DbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaW5lcnQgPSB0cnVlO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS52YWx1ZSA9IHRoaXMudmFsdWUgPz8gJyc7XG5cbiAgICAgIGZvcm0uYXBwZW5kKHN1Ym1pdEJ1dHRvbkNsb25lKTtcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzZXRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBfc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbiBkb2VzIG5vdCB3cml0ZSBpdHMgZGF0YSBpbiBmb3JtLlxuICAgKiBUaGUgZGF0YSBpcyBvbmx5IGFwcGxpZWQgb24gc3VibWl0IGJ1dHRvbiBjbGljayBhcyBzdWJtaXR0ZXIgb2YgcmVxdWVzdFN1Ym1pdCgpO1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7fVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtbGluayc6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaHJlZjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdGFyZ2V0OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLnNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5ibHVyKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSA9ICgpOiBzdHJpbmcgfCB0eXBlb2Ygbm90aGluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsID8gdGhpcy5yZWwgOiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaycgPyAnZXh0ZXJuYWwgbm9vcGVuZXIgbm9mb2xsb3cnIDogbm90aGluZztcbiAgfTtcblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBsaW5rLWxpa2UgY29tcG9uZW50cy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIExpbmtSZW5kZXJWYXJpYWJsZXMgYXJlIG5vdCBuZWVkZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlckxpbmsodGhpcy5yZW5kZXJUZW1wbGF0ZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJMaW5rKHJlbmRlckNvbnRlbnQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIlxuICAgICAgICBocmVmPSR7dGhpcy5ocmVmIHx8IG5vdGhpbmd9XG4gICAgICAgID9kb3dubG9hZD0ke3RoaXMuZG93bmxvYWR9XG4gICAgICAgIHRhcmdldD0ke3RoaXMudGFyZ2V0IHx8IG5vdGhpbmd9XG4gICAgICAgIHJlbD0ke3RoaXMuX2V2YWx1YXRlUmVsQXR0cmlidXRlKCl9XG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICB0YWJpbmRleD0ke3RoaXMubWF5YmVEaXNhYmxlZCAmJiAhdGhpcy5tYXliZURpc2FibGVkSW50ZXJhY3RpdmUgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7cmVuZGVyQ29udGVudH1cbiAgICAgICAgJHshIXRoaXMuaHJlZiAmJiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaydcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgPi4gJHtpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvd1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2E+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdmVybGF5IGNvbXBvbmVudHMuXG4gKlxuICogQGV2ZW50IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAqIEBldmVudCB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLiAqL1xuICBwcm90ZWN0ZWQgZGlkT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkT3Blbiwge1xuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBkaWRDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IG9wZW4oKTogdm9pZDtcbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIHdpbGxPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICB3aWxsQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0lBbUJlLHdCQUFvQixNQUFBOztBQUhsQyxNQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLElBQ2QsZUFBZTtBQUFBLEVBQUEsQ0FDaEIsQ0FBQzs7OztvQkFDMEM7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQSxJQUNwRCxJQUFjLGdCQUFhO0FBQ3pCLFlBQU0sZ0JBQWdCO0FBQ2YsYUFBQSxjQUFjLFlBQVksY0FBYztBQUFBLElBQUE7QUFBQSxJQUdqRCxJQUFjLDJCQUF3QjtBQUNwQyxhQUFRLEtBQXVCO0FBQUEsSUFBQTtBQUFBLElBR2pCLG9CQUFpQjs7QUFDL0IsWUFBTSxrQkFBaUI7QUFFdkIsV0FFRyxLQUFL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
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated No replacement should be necessary, as this was intended
|
|
4
|
+
* for event listeners, which should be applied in the constructor.
|
|
5
|
+
*/
|
|
2
6
|
export declare class SbbConnectedAbortController implements ReactiveController {
|
|
3
7
|
private _host;
|
|
4
8
|
private _abortController?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connected-abort-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/connected-abort-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE,qBAAa,2BAA4B,YAAW,kBAAkB;IAOjD,OAAO,CAAC,KAAK;IANhC,OAAO,CAAC,gBAAgB,CAAC,CAA0C;IAEnE,IAAW,MAAM,IAAI,WAAW,GAAG,SAAS,CAE3C;gBAE0B,KAAK,EAAE,sBAAsB;IAIjD,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;CAIhC"}
|
|
1
|
+
{"version":3,"file":"connected-abort-controller.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/controllers/connected-abort-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,kBAAkB;IAOjD,OAAO,CAAC,KAAK;IANhC,OAAO,CAAC,gBAAgB,CAAC,CAA0C;IAEnE,IAAW,MAAM,IAAI,WAAW,GAAG,SAAS,CAE3C;gBAE0B,KAAK,EAAE,sBAAsB;IAIjD,aAAa,IAAI,IAAI;IAMrB,gBAAgB,IAAI,IAAI;CAIhC"}
|
|
@@ -281,4 +281,4 @@ export {
|
|
|
281
281
|
SbbMediaQueryPointerCoarse,
|
|
282
282
|
SbbSlotStateController
|
|
283
283
|
};
|
|
284
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvc2xvdC1zdGF0ZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuZXhwb3J0IGNsYXNzIFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwdWJsaWMgZ2V0IHNpZ25hbCgpOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uc2lnbmFsO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Fib3J0Q29udHJvbGxlcikge1xuICAgICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXIgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQuanMnO1xuXG5jb25zdCBJR05PUkVEX0VMRU1FTlRTID0gWydzY3JpcHQnLCAnaGVhZCcsICd0ZW1wbGF0ZScsICdzdHlsZSddO1xuY29uc3QgaW5lcnRFbGVtZW50cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5jb25zdCBpbmVydE92ZXJsYXlzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuZXhwb3J0IGNsYXNzIFNiYkluZXJ0Q29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfaW5lcnRFbGVtZW50cyA9IGluZXJ0RWxlbWVudHMsXG4gICAgcHJpdmF0ZSBfaW5lcnRPdmVybGF5cyA9IGluZXJ0T3ZlcmxheXMsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcj8uKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2hvc3QuaXNPcGVuKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQXBwbGllcyBpbmVydCBzdGF0ZSB0byBldmVyeSBvdGhlciBlbGVtZW50IG9uIHRoZSBwYWdlIGV4Y2VwdCB0aGUgb3ZlcmxheS4gKi9cbiAgcHVibGljIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBpbmVydCBzdGF0ZSBmcm9tIHByZXZpb3VzIG9wZW5lZCBvdmVybGF5XG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5hZGQodGhpcy5faG9zdCk7XG4gICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICAvKiogUmVtb3ZlcyBpbmVydCBzdGF0ZS4gKi9cbiAgcHVibGljIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRPdmVybGF5KCkgIT09IHRoaXMuX2hvc3QpIHtcbiAgICAgIC8vIElmIGUuZy4gYSBjb21wb25lbnQgZ2V0cyBkaXNjb25uZWN0ZWQsIGl0IGNvdWxkIGJlIHRoYXQgaXQgaXMgbm90IHRoZSB0b3AgbW9zdC5cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgd2UgY2FuIGRpcmVjdGx5IHJlbW92ZSBpdCwgYXMgdGhlcmUgaXMgY3VycmVudGx5IG5vIGluZXJ0IHN0YXRlIGFwcGxpZWQuXG4gICAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5oYXModGhpcy5faG9zdCkpIHtcbiAgICAgICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG4gICAgICB9IGVsc2UgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdUcnlpbmcgdG8gcmVtb3ZlIGluZXJ0IHN0YXRlIG9mIGFuIG92ZXJsYXkgd2hpY2ggbmV2ZXIgaGFkIGFuIGFwcGxpZWQgaW5lcnQgc3RhdGUuJyxcbiAgICAgICAgICB0aGlzLl9ob3N0LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcmVtb3ZlSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5faW5lcnRPdmVybGF5cy5kZWxldGUodGhpcy5faG9zdCk7XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhcyBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheSwgc2V0IGl0cyBpbmVydCBzdGF0ZSBhZ2Fpbi5cbiAgICBpZiAodGhpcy5faW5lcnRPdmVybGF5cy5zaXplKSB7XG4gICAgICB0aGlzLl9hZGRJbmVydEF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50T3ZlcmxheSgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiBbLi4udGhpcy5faW5lcnRPdmVybGF5c10ucG9wKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0JykpIHtcbiAgICAgICAgZWxlbWVudC5pbmVydCA9IGZhbHNlO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItaW5lcnQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicpKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9pbmVydEVsZW1lbnRzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRJbmVydEF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgbGV0IGVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gdGhpcy5fY3VycmVudE92ZXJsYXkoKTtcblxuICAgIHdoaWxlIChlbGVtZW50ICE9PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZWxlbWVudCAhPT0gbnVsbCkge1xuICAgICAgQXJyYXkuZnJvbSgoZWxlbWVudD8ucGFyZW50RWxlbWVudCA/PyBlbGVtZW50Py5nZXRSb290Tm9kZSgpKT8uY2hpbGROb2RlcyA/PyBbXSlcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoY2hpbGQpOiBjaGlsZCBpcyBIVE1MRWxlbWVudCA9PlxuICAgICAgICAgICAgY2hpbGQgIT09IGVsZW1lbnQgJiZcbiAgICAgICAgICAgIGNoaWxkIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAhSUdOT1JFRF9FTEVNRU5UUy5pbmNsdWRlcyhjaGlsZC5sb2NhbE5hbWUpLFxuICAgICAgICApXG4gICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5faW5lcnRFbGVtZW50cy5hZGQoZWxlbWVudCk7XG5cbiAgICAgICAgICBpZiAoIWVsZW1lbnQuaW5lcnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaW5lcnQgPSB0cnVlO1xuICAgICAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0JywgdHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKSkge1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1hcmlhLWhpZGRlbicsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIFdlIG5lZWQgdG8gcGllcmNlIHRocm91Z2ggU2hhZG93IERPTSBib3VuZGFyeVxuICAgICAgZWxlbWVudCA9IGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQ/LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCk/Lmhvc3QgPz8gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5cbi8qKlxuICogVGhlIExhbmd1YWdlQ29udHJvbGxlciBpcyBhIHJlYWN0aXZlIGNvbnRyb2xsZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlXG4gKiBvZiB0aGUgPGh0bWw+IHRhZy5cbiAqIE9uIGNoYW5nZSBvZiB0aGUgXCJsYW5nXCIgYXR0cmlidXRlLCBpdCB3aWxsIHJlcXVlc3QgYW4gdXBkYXRlIG9mIGNvbm5lY3RlZFxuICogY29tcG9uZW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvbGFuZ1xuICovXG5leHBvcnQgY2xhc3MgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2RlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9zdXBwb3J0ZWRMb2NhbGVzID0gWydlbicsICdkZScsICdmcicsICdpdCddO1xuXG4gIC8qKiBBIHNldCBvZiBjb25uZWN0ZWQgY29tcG9uZW50cyB0aGF0IHNob3VsZCBiZSBub3RpZmllZCBvbiBsYW5ndWFnZSBjaGFuZ2UuICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9saXN0ZW5lcnMgPSBuZXcgU2V0PFNiYkxhbmd1YWdlQ29udHJvbGxlcj4oKTtcblxuICAvKiogTXV0YXRpb25PYnNlcnZlciB0aGF0IG9ic2VydmVzIHRoZSBcImxhbmdcIiBhdHRyaWJ1dGUgb2YgdGhlIDxodG1sPiBlbGVtZW50LiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfb2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKG11dGF0aW9uc1swXS5vbGRWYWx1ZSAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSB7XG4gICAgICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZm9yRWFjaCgobCkgPT4gbC5fY2FsbEhhbmRsZXJzKCkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIDogbnVsbDtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyQ29uZmlnID0ge1xuICAgIGF0dHJpYnV0ZUZpbHRlcjogWydsYW5nJ10sXG4gICAgYXR0cmlidXRlT2xkVmFsdWU6IHRydWUsXG4gIH07XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIHN0YXRpYyBnZXQgY3VycmVudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhbmd1YWdlID1cbiAgICAgIChyZWFkQ29uZmlnKCkubGFuZ3VhZ2UgPz9cbiAgICAgICAgKGlzU2VydmVyXG4gICAgICAgICAgPyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZVxuICAgICAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpKSkgfHxcbiAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuXG4gICAgLy8gU3VwcG9ydCBlLmcuIGNhc2VzIGxpa2UgYGRlLWNoYC5cbiAgICBjb25zdCBsYW5nQXR0cmlidXRlTm9ybWFsaXplZCA9IGxhbmd1YWdlLnNwbGl0KCctJylbMF07XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fc3VwcG9ydGVkTG9jYWxlcy5pbmNsdWRlcyhsYW5nQXR0cmlidXRlTm9ybWFsaXplZClcbiAgICAgID8gbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWRcbiAgICAgIDogU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlLiAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQ7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aW91c0xhbmd1YWdlPzogc3RyaW5nO1xuICBwcml2YXRlIF9oYW5kbGVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKiBBZGQgYSBsYW5ndWFnZSBjaGFuZ2UgaGFuZGxlci4gKi9cbiAgcHVibGljIHdpdGhIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQpOiB0aGlzIHtcbiAgICAvLyBXZSB1c2UgdW5zaGlmdCBoZXJlLCB0byBwcmVwZW5kIGFkZGl0aW9uYWwgaGFuZGxlcnMuXG4gICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgcmVxdWVzdFVwZGF0ZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIG90aGVyIGhhbmRsZXJzLlxuICAgIHRoaXMuX2hhbmRsZXJzLnVuc2hpZnQoaGFuZGxlcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5vYnNlcnZlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fb2JzZXJ2ZXJDb25maWcsXG4gICAgICApO1xuICAgIH1cblxuICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdGhpcy5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jYWxsSGFuZGxlcnModGhpcy5fcHJldmlvdXNMYW5ndWFnZSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcHJldmlvdXNMYW5ndWFnZSA9IHRoaXMuY3VycmVudDtcbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5kZWxldGUodGhpcyk7XG4gICAgaWYgKCFTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5zaXplKSB7XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsbEhhbmRsZXJzKHJlcXVlc3RVcGRhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaCgpKTtcbiAgICBpZiAocmVxdWVzdFVwZGF0ZSkge1xuICAgICAgdGhpcy5faG9zdC5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQge1xuICBTYmJCcmVha3BvaW50TWVkaXVtTWluLFxuICBTYmJCcmVha3BvaW50U21hbGxNYXgsXG4gIFNiYlR5cG9TY2FsZURlZmF1bHQsXG59IGZyb20gJ0BzYmItZXN0YS9seW5lLWRlc2lnbi10b2tlbnMnO1xuaW1wb3J0IHsgaXNTZXJ2ZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tICdsaXQnO1xuXG5jb25zdCBweFRvUmVtID0gKHB4OiBudW1iZXIpOiBudW1iZXIgPT4gcHggLyBTYmJUeXBvU2NhbGVEZWZhdWx0O1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5Rm9yY2VkQ29sb3JzID0gJyhmb3JjZWQtY29sb3JzOiBhY3RpdmUpJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5SG92ZXIgPSAnKGFueS1ob3ZlcjogaG92ZXIpJztcbmV4cG9ydCBjb25zdCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSA9ICcocG9pbnRlcjogY29hcnNlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRNZWRpdW1BbmRBYm92ZSA9IGAobWluLXdpZHRoOiAke3B4VG9SZW0oU2JiQnJlYWtwb2ludE1lZGl1bU1pbil9cmVtKWA7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93ID0gYChtYXgtd2lkdGg6ICR7cHhUb1JlbShTYmJCcmVha3BvaW50U21hbGxNYXgpfXJlbSlgO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuLyoqXG4gKiBBIGNhbGxiYWNrLCB3aGljaCBpcyBpbnZva2VkIHdoZW4gdGhlIGFzc29jaWF0ZWQgbWVkaWEgcXVlcnkgbWF0Y2hcbiAqIHN0YXR1cyBjaGFuZ2VzLlxuICovXG5leHBvcnQgdHlwZSBTYmJNZWRpYU1hdGNoZXJIYW5kbGVyID0gKG1hdGNoZXM6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbmludGVyZmFjZSBNZWRpYVF1ZXJ5RW50cnkge1xuICBtZWRpYVF1ZXJ5TGlzdDogTWVkaWFRdWVyeUxpc3Q7XG4gIGV2ZW50SGFuZGxlcjogKGV2ZW50OiBNZWRpYVF1ZXJ5TGlzdEV2ZW50KSA9PiB2b2lkO1xuICBoYW5kbGVyczogU2V0PFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+O1xufVxuXG4vKipcbiAqIFdlIHdhbnQgdG8gY2FjaGUgTWVkaWFRdWVyeUxpc3QgaW5zdGFuY2VzIGFuZCBjb3JyZXNwb25kaW5nXG4gKiBldmVudCBoYW5kbGVycywgYXMgYSBtdWx0aXR1ZGUgb2YgZXZlbnQgaGFuZGxlcnMgb24gZ2xvYmFsIG9iamVjdHNcbiAqIGNhbiBkZWdyYWRlIHBlcmZvcm1hbmNlIHdpdGggdGltZS5cbiAqL1xuY29uc3QgbWVkaWFRdWVyeVJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIE1lZGlhUXVlcnlFbnRyeT4oKTtcblxuLyoqXG4gKiBUaGlzIGNvbnRyb2xsZXIgYWxsb3dzIGxpc3RlbmluZyB0byBtZWRpYSBxdWVyeSBjaGFuZ2VzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gKiAgIFtTYmJGb3JjZWRDb2xvcnNRdWVyeV06IChtYXRjaGVzKSA9PiBkb1NvbWV0aGluZyhtYXRjaGVzKSxcbiAqIH0pXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyIGltcGxlbWVudHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gICAgcHJpdmF0ZSBfcXVlcmllczogUmVjb3JkPHN0cmluZywgU2JiTWVkaWFNYXRjaGVySGFuZGxlcj4sXG4gICkge1xuICAgIGhvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIHF1ZXJ5IG1hdGNoZXMuIFJldHVybnMgbnVsbCB3aXRoIFNTUi5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBjaGVjayBhZ2FpbnN0LlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBxdWVyeSBtYXRjaGVzIG9yIG51bGwgd2l0aCBTU1IuXG4gICAqL1xuICBwdWJsaWMgbWF0Y2hlcyhxdWVyeTogc3RyaW5nKTogYm9vbGVhbiB8IG51bGwge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgcmV0dXJuIG1lZGlhUXVlcnkubWVkaWFRdWVyeUxpc3QubWF0Y2hlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcXVlcnksIGhhbmRsZXJdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX3F1ZXJpZXMpKSB7XG4gICAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWVkaWFRdWVyeVJlZ2lzdHJ5LmdldChxdWVyeSk7XG4gICAgICBpZiAobWVkaWFRdWVyeSkge1xuICAgICAgICBtZWRpYVF1ZXJ5LmhhbmRsZXJzLmFkZChoYW5kbGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1lZGlhUXVlcnlMaXN0ID0gbWF0Y2hNZWRpYShxdWVyeSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXJzID0gbmV3IFNldChbaGFuZGxlcl0pO1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSAoZTogTWVkaWFRdWVyeUxpc3RFdmVudCk6IHZvaWQgPT5cbiAgICAgICAgICBoYW5kbGVycy5mb3JFYWNoKChoKSA9PiBoKGUubWF0Y2hlcykpO1xuICAgICAgICBtZWRpYVF1ZXJ5TGlzdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBldmVudEhhbmRsZXIpO1xuICAgICAgICBtZWRpYVF1ZXJ5UmVnaXN0cnkuc2V0KHF1ZXJ5LCB7IG1lZGlhUXVlcnlMaXN0LCBoYW5kbGVycywgZXZlbnRIYW5kbGVyIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5kZWxldGUoaGFuZGxlcik7XG4gICAgICAgIGlmICghbWVkaWFRdWVyeS5oYW5kbGVycy5zaXplKSB7XG4gICAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LmRlbGV0ZShxdWVyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBUaGlzIGNvbnRyb2xsZXIgY2hlY2tzIGZvciBzbG90dGVkIGNoaWxkcmVuLiBGcm9tIHRoZXNlIGl0IGdlbmVyYXRlc1xuICogYSBsaXN0IG9mIHVzZWQgc2xvdCBuYW1lcyAoYHVubmFtZWRgIGZvciBjaGlsZHJlbiB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUpXG4gKiBhbmQgYWRkcyB0aGlzIHRvIHRoZSBgZGF0YS1zbG90LW5hbWVzYCBhdHRyaWJ1dGUsIGFzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QuXG4gKlxuICogVGhpcyBhbGxvd3MgQ1NTIGF0dHJpYnV0ZSBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlIGEgc2VjdGlvblxuICogb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZCAoc2VlIFthdHRyfj12YWx1ZV0gc2VsZWN0b3Igc3BlY2lmaWNhbGx5KS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoW2RhdGEtc2xvdC1uYW1lc349XCJpY29uXCJdKSAmIHtcbiAqICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQXR0cmlidXRlX3NlbGVjdG9yc1xuICovXG5leHBvcnQgY2xhc3MgU2JiU2xvdFN0YXRlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyByZWFkb25seSBzbG90cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSBfb25DaGFuZ2VDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwsXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgcmVhbGx5IG5lZWRlZCB3aXRoIFNTUi5cbiAgICB0aGlzLl9zeW5jU2xvdHMoLi4udGhpcy5faG9zdC5xdWVyeVNlbGVjdG9yQWxsISgnc2xvdCcpKTtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0LnNoYWRvd1Jvb3Q/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcik7XG4gIH1cblxuICAvLyBXZSBhdm9pZCB1c2luZyBBYm9ydENvbnRyb2xsZXIgaGVyZSwgYXMgaXQgd291bGQgbWVhbiBjcmVhdGluZ1xuICAvLyBhIG5ldyBpbnN0YW5jZSBmb3IgZXZlcnkgU2JiU2xvdFN0YXRlQ29udHJvbGxlciBpbnN0YW5jZS5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5fc3luY1Nsb3RzKGV2ZW50LnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpO1xuICB9O1xuXG4gIHByaXZhdGUgX3N5bmNTbG90cyguLi5zbG90czogSFRNTFNsb3RFbGVtZW50W10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHNsb3Qgb2Ygc2xvdHMpIHtcbiAgICAgIGNvbnN0IHNsb3ROYW1lID0gc2xvdC5uYW1lIHx8ICd1bm5hbWVkJztcbiAgICAgIC8vIFdlIHdhbnQgdG8gY2hlY2ssIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBzbG90dGVkIG9yIGEgdGV4dCBub2RlIHdpdGggYWN0dWFsIGNvbnRlbnQuXG4gICAgICBpZiAoc2xvdC5hc3NpZ25lZE5vZGVzKCkuc29tZSgobikgPT4gJ3RhZ05hbWUnIGluIG4gfHwgbi50ZXh0Q29udGVudD8udHJpbSgpKSkge1xuICAgICAgICB0aGlzLnNsb3RzLmFkZChzbG90TmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNsb3RzLmRlbGV0ZShzbG90TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgY29uc3Qgam9pbmVkU2xvdE5hbWVzID0gWy4uLnRoaXMuc2xvdHNdLnNvcnQoKS5qb2luKCcgJyk7XG4gICAgaWYgKCFqb2luZWRTbG90TmFtZXMpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2hvc3QuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZXMnKSAhPT0gam9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnNldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJywgam9pbmVkU2xvdE5hbWVzKTtcbiAgICB9XG5cbiAgICBpZiAoam9pbmVkU2xvdE5hbWVzICE9PSBvbGRWYWx1ZSkge1xuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz8uKCk7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZWxlbWVudCIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7TUFFYSw0QkFBMkI7QUFBQSxFQUd0QyxJQUFXLFNBQU07O0FBQ2YsWUFBTyxVQUFLLHFCQUFMLG1CQUF1QjtBQUFBLEVBQUE7QUFBQSxFQUdoQyxZQUEyQixPQUE2QjtBQUE3QixTQUFLLFFBQUw7QUFObkIsU0FBQSxtQkFBcUMsSUFBSSxnQkFBZTtBQU96RCxTQUFBLE1BQU0sY0FBYyxJQUFJ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
|
|
284
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2Nvbm5lY3RlZC1hYm9ydC1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvaW5lcnQtY29udHJvbGxlci50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMvc2xvdC1zdGF0ZS1jb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVDb250cm9sbGVyLCBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBObyByZXBsYWNlbWVudCBzaG91bGQgYmUgbmVjZXNzYXJ5LCBhcyB0aGlzIHdhcyBpbnRlbmRlZFxuICogICBmb3IgZXZlbnQgbGlzdGVuZXJzLCB3aGljaCBzaG91bGQgYmUgYXBwbGllZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9hYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgcHVibGljIGdldCBzaWduYWwoKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LnNpZ25hbDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0KSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hYm9ydENvbnRyb2xsZXIpIHtcbiAgICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL29wZW4tY2xvc2UtYmFzZS1lbGVtZW50LmpzJztcblxuY29uc3QgSUdOT1JFRF9FTEVNRU5UUyA9IFsnc2NyaXB0JywgJ2hlYWQnLCAndGVtcGxhdGUnLCAnc3R5bGUnXTtcbmNvbnN0IGluZXJ0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuY29uc3QgaW5lcnRPdmVybGF5cyA9IG5ldyBTZXQ8SFRNTEVsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJJbmVydENvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICAgIHByaXZhdGUgX2luZXJ0RWxlbWVudHMgPSBpbmVydEVsZW1lbnRzLFxuICAgIHByaXZhdGUgX2luZXJ0T3ZlcmxheXMgPSBpbmVydE92ZXJsYXlzLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXI/Lih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9ob3N0LmlzT3Blbikge1xuICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0RGlzY29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLmhhcyh0aGlzLl9ob3N0KSkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGxpZXMgaW5lcnQgc3RhdGUgdG8gZXZlcnkgb3RoZXIgZWxlbWVudCBvbiB0aGUgcGFnZSBleGNlcHQgdGhlIG92ZXJsYXkuICovXG4gIHB1YmxpYyBhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgaW5lcnQgc3RhdGUgZnJvbSBwcmV2aW91cyBvcGVuZWQgb3ZlcmxheVxuICAgIGlmICh0aGlzLl9pbmVydE92ZXJsYXlzLnNpemUpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIH1cblxuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuYWRkKHRoaXMuX2hvc3QpO1xuICAgIHRoaXMuX2FkZEluZXJ0QXR0cmlidXRlcygpO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgaW5lcnQgc3RhdGUuICovXG4gIHB1YmxpYyBkZWFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jdXJyZW50T3ZlcmxheSgpICE9PSB0aGlzLl9ob3N0KSB7XG4gICAgICAvLyBJZiBlLmcuIGEgY29tcG9uZW50IGdldHMgZGlzY29ubmVjdGVkLCBpdCBjb3VsZCBiZSB0aGF0IGl0IGlzIG5vdCB0aGUgdG9wIG1vc3QuXG4gICAgICAvLyBJbiB0aGlzIGNhc2UsIHdlIGNhbiBkaXJlY3RseSByZW1vdmUgaXQsIGFzIHRoZXJlIGlzIGN1cnJlbnRseSBubyBpbmVydCBzdGF0ZSBhcHBsaWVkLlxuICAgICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuaGFzKHRoaXMuX2hvc3QpKSB7XG4gICAgICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnVHJ5aW5nIHRvIHJlbW92ZSBpbmVydCBzdGF0ZSBvZiBhbiBvdmVybGF5IHdoaWNoIG5ldmVyIGhhZCBhbiBhcHBsaWVkIGluZXJ0IHN0YXRlLicsXG4gICAgICAgICAgdGhpcy5faG9zdCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbW92ZUluZXJ0QXR0cmlidXRlcygpO1xuICAgIHRoaXMuX2luZXJ0T3ZlcmxheXMuZGVsZXRlKHRoaXMuX2hvc3QpO1xuXG4gICAgLy8gSWYgdGhlcmUgaXMgYXMgcHJldmlvdXMgb3BlbmVkIG92ZXJsYXksIHNldCBpdHMgaW5lcnQgc3RhdGUgYWdhaW4uXG4gICAgaWYgKHRoaXMuX2luZXJ0T3ZlcmxheXMuc2l6ZSkge1xuICAgICAgdGhpcy5fYWRkSW5lcnRBdHRyaWJ1dGVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY3VycmVudE92ZXJsYXkoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2luZXJ0T3ZlcmxheXNdLnBvcCgpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVJbmVydEF0dHJpYnV0ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcpKSB7XG4gICAgICAgIGVsZW1lbnQuaW5lcnQgPSBmYWxzZTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWluZXJ0Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nKSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLWFyaWEtaGlkZGVuJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5faW5lcnRFbGVtZW50cy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkSW5lcnRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIGxldCBlbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IHRoaXMuX2N1cnJlbnRPdmVybGF5KCk7XG5cbiAgICB3aGlsZSAoZWxlbWVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIEFycmF5LmZyb20oKGVsZW1lbnQ/LnBhcmVudEVsZW1lbnQgPz8gZWxlbWVudD8uZ2V0Um9vdE5vZGUoKSk/LmNoaWxkTm9kZXMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGNoaWxkKTogY2hpbGQgaXMgSFRNTEVsZW1lbnQgPT5cbiAgICAgICAgICAgIGNoaWxkICE9PSBlbGVtZW50ICYmXG4gICAgICAgICAgICBjaGlsZCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCAmJlxuICAgICAgICAgICAgIUlHTk9SRURfRUxFTUVOVFMuaW5jbHVkZXMoY2hpbGQubG9jYWxOYW1lKSxcbiAgICAgICAgKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luZXJ0RWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgaWYgKCFlbGVtZW50LmluZXJ0KSB7XG4gICAgICAgICAgICBlbGVtZW50LmluZXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKCdkYXRhLXNiYi1pbmVydCcsIHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItYXJpYS1oaWRkZW4nLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBpZXJjZSB0aHJvdWdoIFNoYWRvdyBET00gYm91bmRhcnlcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Py5wYXJlbnRFbGVtZW50ID8/IChlbGVtZW50Py5nZXRSb290Tm9kZSgpIGFzIFNoYWRvd1Jvb3QpPy5ob3N0ID8/IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG4vKipcbiAqIFRoZSBMYW5ndWFnZUNvbnRyb2xsZXIgaXMgYSByZWFjdGl2ZSBjb250cm9sbGVyIHRoYXQgb2JzZXJ2ZXMgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZVxuICogb2YgdGhlIDxodG1sPiB0YWcuXG4gKiBPbiBjaGFuZ2Ugb2YgdGhlIFwibGFuZ1wiIGF0dHJpYnV0ZSwgaXQgd2lsbCByZXF1ZXN0IGFuIHVwZGF0ZSBvZiBjb25uZWN0ZWRcbiAqIGNvbXBvbmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL2xhbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkxhbmd1YWdlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9kZWZhdWx0TGFuZ3VhZ2UgPSAnZW4nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfc3VwcG9ydGVkTG9jYWxlcyA9IFsnZW4nLCAnZGUnLCAnZnInLCAnaXQnXTtcblxuICAvKiogQSBzZXQgb2YgY29ubmVjdGVkIGNvbXBvbmVudHMgdGhhdCBzaG91bGQgYmUgbm90aWZpZWQgb24gbGFuZ3VhZ2UgY2hhbmdlLiAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfbGlzdGVuZXJzID0gbmV3IFNldDxTYmJMYW5ndWFnZUNvbnRyb2xsZXI+KCk7XG5cbiAgLyoqIE11dGF0aW9uT2JzZXJ2ZXIgdGhhdCBvYnNlcnZlcyB0aGUgXCJsYW5nXCIgYXR0cmlidXRlIG9mIHRoZSA8aHRtbD4gZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX29ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbnNbMF0ub2xkVmFsdWUgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkge1xuICAgICAgICAgIFNiYkxhbmd1YWdlQ29udHJvbGxlci5fbGlzdGVuZXJzLmZvckVhY2goKGwpID0+IGwuX2NhbGxIYW5kbGVycygpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICA6IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9vYnNlcnZlckNvbmZpZyA9IHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnbGFuZyddLFxuICAgIGF0dHJpYnV0ZU9sZFZhbHVlOiB0cnVlLFxuICB9O1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9XG4gICAgICAocmVhZENvbmZpZygpLmxhbmd1YWdlID8/XG4gICAgICAgIChpc1NlcnZlclxuICAgICAgICAgID8gU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9kZWZhdWx0TGFuZ3VhZ2VcbiAgICAgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKSkpIHx8XG4gICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2RlZmF1bHRMYW5ndWFnZTtcblxuICAgIC8vIFN1cHBvcnQgZS5nLiBjYXNlcyBsaWtlIGBkZS1jaGAuXG4gICAgY29uc3QgbGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQgPSBsYW5ndWFnZS5zcGxpdCgnLScpWzBdO1xuICAgIHJldHVybiBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX3N1cHBvcnRlZExvY2FsZXMuaW5jbHVkZXMobGFuZ0F0dHJpYnV0ZU5vcm1hbGl6ZWQpXG4gICAgICA/IGxhbmdBdHRyaWJ1dGVOb3JtYWxpemVkXG4gICAgICA6IFNiYkxhbmd1YWdlQ29udHJvbGxlci5fZGVmYXVsdExhbmd1YWdlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgY3VycmVudCBsYW5ndWFnZS4gKi9cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNMYW5ndWFnZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3QpIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKiogQWRkIGEgbGFuZ3VhZ2UgY2hhbmdlIGhhbmRsZXIuICovXG4gIHB1YmxpYyB3aXRoSGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKTogdGhpcyB7XG4gICAgLy8gV2UgdXNlIHVuc2hpZnQgaGVyZSwgdG8gcHJlcGVuZCBhZGRpdGlvbmFsIGhhbmRsZXJzLlxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IHJlcXVlc3RVcGRhdGUgaXMgY2FsbGVkIGFmdGVyIHRoZSBvdGhlciBoYW5kbGVycy5cbiAgICB0aGlzLl9oYW5kbGVycy51bnNoaWZ0KGhhbmRsZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEub2JzZXJ2ZShcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICAgICAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX29ic2VydmVyQ29uZmlnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIuX2xpc3RlbmVycy5hZGQodGhpcyk7XG4gICAgaWYgKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHRoaXMuY3VycmVudCkge1xuICAgICAgdGhpcy5fY2FsbEhhbmRsZXJzKHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgIT09IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3ByZXZpb3VzTGFuZ3VhZ2UgPSB0aGlzLmN1cnJlbnQ7XG4gICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuZGVsZXRlKHRoaXMpO1xuICAgIGlmICghU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9saXN0ZW5lcnMuc2l6ZSkge1xuICAgICAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLl9vYnNlcnZlciEuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NhbGxIYW5kbGVycyhyZXF1ZXN0VXBkYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2hhbmRsZXJzLmZvckVhY2goKGgpID0+IGgoKSk7XG4gICAgaWYgKHJlcXVlc3RVcGRhdGUpIHtcbiAgICAgIHRoaXMuX2hvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgU2JiQnJlYWtwb2ludE1lZGl1bU1pbixcbiAgU2JiQnJlYWtwb2ludFNtYWxsTWF4LFxuICBTYmJUeXBvU2NhbGVEZWZhdWx0LFxufSBmcm9tICdAc2JiLWVzdGEvbHluZS1kZXNpZ24tdG9rZW5zJztcbmltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0IH0gZnJvbSAnbGl0JztcblxuY29uc3QgcHhUb1JlbSA9IChweDogbnVtYmVyKTogbnVtYmVyID0+IHB4IC8gU2JiVHlwb1NjYWxlRGVmYXVsdDtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUZvcmNlZENvbG9ycyA9ICcoZm9yY2VkLWNvbG9yczogYWN0aXZlKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeUhvdmVyID0gJyhhbnktaG92ZXI6IGhvdmVyKSc7XG5leHBvcnQgY29uc3QgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgPSAnKHBvaW50ZXI6IGNvYXJzZSknO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TWVkaXVtQW5kQWJvdmUgPSBgKG1pbi13aWR0aDogJHtweFRvUmVtKFNiYkJyZWFrcG9pbnRNZWRpdW1NaW4pfXJlbSlgO1xuZXhwb3J0IGNvbnN0IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdyA9IGAobWF4LXdpZHRoOiAke3B4VG9SZW0oU2JiQnJlYWtwb2ludFNtYWxsTWF4KX1yZW0pYDtcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbi8qKlxuICogQSBjYWxsYmFjaywgd2hpY2ggaXMgaW52b2tlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIG1lZGlhIHF1ZXJ5IG1hdGNoXG4gKiBzdGF0dXMgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU2JiTWVkaWFNYXRjaGVySGFuZGxlciA9IChtYXRjaGVzOiBib29sZWFuKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgTWVkaWFRdWVyeUVudHJ5IHtcbiAgbWVkaWFRdWVyeUxpc3Q6IE1lZGlhUXVlcnlMaXN0O1xuICBldmVudEhhbmRsZXI6IChldmVudDogTWVkaWFRdWVyeUxpc3RFdmVudCkgPT4gdm9pZDtcbiAgaGFuZGxlcnM6IFNldDxTYmJNZWRpYU1hdGNoZXJIYW5kbGVyPjtcbn1cblxuLyoqXG4gKiBXZSB3YW50IHRvIGNhY2hlIE1lZGlhUXVlcnlMaXN0IGluc3RhbmNlcyBhbmQgY29ycmVzcG9uZGluZ1xuICogZXZlbnQgaGFuZGxlcnMsIGFzIGEgbXVsdGl0dWRlIG9mIGV2ZW50IGhhbmRsZXJzIG9uIGdsb2JhbCBvYmplY3RzXG4gKiBjYW4gZGVncmFkZSBwZXJmb3JtYW5jZSB3aXRoIHRpbWUuXG4gKi9cbmNvbnN0IG1lZGlhUXVlcnlSZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBNZWRpYVF1ZXJ5RW50cnk+KCk7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGFsbG93cyBsaXN0ZW5pbmcgdG8gbWVkaWEgcXVlcnkgY2hhbmdlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICogICBbU2JiRm9yY2VkQ29sb3JzUXVlcnldOiAobWF0Y2hlcykgPT4gZG9Tb21ldGhpbmcobWF0Y2hlcyksXG4gKiB9KVxuICovXG5leHBvcnQgY2xhc3MgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0LFxuICAgIHByaXZhdGUgX3F1ZXJpZXM6IFJlY29yZDxzdHJpbmcsIFNiYk1lZGlhTWF0Y2hlckhhbmRsZXI+LFxuICApIHtcbiAgICBob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBxdWVyeSBtYXRjaGVzLiBSZXR1cm5zIG51bGwgd2l0aCBTU1IuXG4gICAqIEBwYXJhbSBxdWVyeSBUaGUgcXVlcnkgdG8gY2hlY2sgYWdhaW5zdC5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgcXVlcnkgbWF0Y2hlcyBvciBudWxsIHdpdGggU1NSLlxuICAgKi9cbiAgcHVibGljIG1hdGNoZXMocXVlcnk6IHN0cmluZyk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBtZWRpYVF1ZXJ5ID0gbWVkaWFRdWVyeVJlZ2lzdHJ5LmdldChxdWVyeSk7XG4gICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgIHJldHVybiBtZWRpYVF1ZXJ5Lm1lZGlhUXVlcnlMaXN0Lm1hdGNoZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3F1ZXJ5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9xdWVyaWVzKSkge1xuICAgICAgY29uc3QgbWVkaWFRdWVyeSA9IG1lZGlhUXVlcnlSZWdpc3RyeS5nZXQocXVlcnkpO1xuICAgICAgaWYgKG1lZGlhUXVlcnkpIHtcbiAgICAgICAgbWVkaWFRdWVyeS5oYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZWRpYVF1ZXJ5TGlzdCA9IG1hdGNoTWVkaWEocXVlcnkpO1xuICAgICAgICBjb25zdCBoYW5kbGVycyA9IG5ldyBTZXQoW2hhbmRsZXJdKTtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQpOiB2b2lkID0+XG4gICAgICAgICAgaGFuZGxlcnMuZm9yRWFjaCgoaCkgPT4gaChlLm1hdGNoZXMpKTtcbiAgICAgICAgbWVkaWFRdWVyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZXZlbnRIYW5kbGVyKTtcbiAgICAgICAgbWVkaWFRdWVyeVJlZ2lzdHJ5LnNldChxdWVyeSwgeyBtZWRpYVF1ZXJ5TGlzdCwgaGFuZGxlcnMsIGV2ZW50SGFuZGxlciB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaG9zdERpc2Nvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtxdWVyeSwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fcXVlcmllcykpIHtcbiAgICAgIGNvbnN0IG1lZGlhUXVlcnkgPSBtZWRpYVF1ZXJ5UmVnaXN0cnkuZ2V0KHF1ZXJ5KTtcbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIG1lZGlhUXVlcnkuaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICBpZiAoIW1lZGlhUXVlcnkuaGFuZGxlcnMuc2l6ZSkge1xuICAgICAgICAgIG1lZGlhUXVlcnlSZWdpc3RyeS5kZWxldGUocXVlcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IFJlYWN0aXZlQ29udHJvbGxlciwgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCBnZW5lcmF0ZXNcbiAqIGEgbGlzdCBvZiB1c2VkIHNsb3QgbmFtZXMgKGB1bm5hbWVkYCBmb3IgY2hpbGRyZW4gd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlKVxuICogYW5kIGFkZHMgdGhpcyB0byB0aGUgYGRhdGEtc2xvdC1uYW1lc2AgYXR0cmlidXRlLCBhcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0LlxuICpcbiAqIFRoaXMgYWxsb3dzIENTUyBhdHRyaWJ1dGUgc2VsZWN0b3IgdG8gZGlzcGxheS9oaWRlL2NvbmZpZ3VyZSBhIHNlY3Rpb25cbiAqIG9mIHRoZSBjb21wb25lbnQgYXMgcmVxdWlyZWQgKHNlZSBbYXR0cn49dmFsdWVdIHNlbGVjdG9yIHNwZWNpZmljYWxseSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC5leGFtcGxlIHtcbiAqICAgZGlzcGxheTogbm9uZTtcbiAqXG4gKiAgIDpob3N0KFtkYXRhLXNsb3QtbmFtZXN+PVwiaWNvblwiXSkgJiB7XG4gKiAgICAgZGlzcGxheTogaW5saW5lO1xuICogICB9XG4gKiB9XG4gKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0F0dHJpYnV0ZV9zZWxlY3RvcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgc2xvdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX29uQ2hhbmdlQ2FsbGJhY2s6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsLFxuICApIHtcbiAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIHJlYWxseSBuZWVkZWQgd2l0aCBTU1IuXG4gICAgdGhpcy5fc3luY1Nsb3RzKC4uLnRoaXMuX2hvc3QucXVlcnlTZWxlY3RvckFsbCEoJ3Nsb3QnKSk7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5faG9zdC5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIpO1xuICB9XG5cbiAgLy8gV2UgYXZvaWQgdXNpbmcgQWJvcnRDb250cm9sbGVyIGhlcmUsIGFzIGl0IHdvdWxkIG1lYW4gY3JlYXRpbmdcbiAgLy8gYSBuZXcgaW5zdGFuY2UgZm9yIGV2ZXJ5IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW5zdGFuY2UuXG4gIHByaXZhdGUgX3Nsb3RjaGFuZ2VIYW5kbGVyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX3N5bmNTbG90cyhldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KTtcbiAgfTtcblxuICBwcml2YXRlIF9zeW5jU2xvdHMoLi4uc2xvdHM6IEhUTUxTbG90RWxlbWVudFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzbG90IG9mIHNsb3RzKSB7XG4gICAgICBjb25zdCBzbG90TmFtZSA9IHNsb3QubmFtZSB8fCAndW5uYW1lZCc7XG4gICAgICAvLyBXZSB3YW50IHRvIGNoZWNrLCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc2xvdHRlZCBvciBhIHRleHQgbm9kZSB3aXRoIGFjdHVhbCBjb250ZW50LlxuICAgICAgaWYgKHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG4pID0+ICd0YWdOYW1lJyBpbiBuIHx8IG4udGV4dENvbnRlbnQ/LnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5zbG90cy5hZGQoc2xvdE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbG90cy5kZWxldGUoc2xvdE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5faG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycpO1xuICAgIGNvbnN0IGpvaW5lZFNsb3ROYW1lcyA9IFsuLi50aGlzLnNsb3RzXS5zb3J0KCkuam9pbignICcpO1xuICAgIGlmICgham9pbmVkU2xvdE5hbWVzKSB7XG4gICAgICB0aGlzLl9ob3N0LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9ob3N0LmdldEF0dHJpYnV0ZSgnZGF0YS1zbG90LW5hbWVzJykgIT09IGpvaW5lZFNsb3ROYW1lcykge1xuICAgICAgdGhpcy5faG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1uYW1lcycsIGpvaW5lZFNsb3ROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKGpvaW5lZFNsb3ROYW1lcyAhPT0gb2xkVmFsdWUpIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2s/LigpO1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImVsZW1lbnQiLCJfYSJdLCJtYXBwaW5ncyI6Ijs7O01BTWEsNEJBQTJC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
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forwards an event to the element provided.
|
|
3
|
+
* This way, an event triggered in the Shadow DOM can cross its boundary and can be listened on e.g. the host component.
|
|
4
|
+
*/
|
|
5
|
+
export declare function forwardEvent(event: Event, element: HTMLElement | Document): void;
|
|
1
6
|
/**
|
|
2
7
|
* Forwards an event to the host element provided.
|
|
3
8
|
* This way, an event triggered in the ShadowDOM can cross its boundary and can be listened on the host component.
|
|
9
|
+
* @deprecated will be removed with next major version, use forwardEvent as alternative
|
|
4
10
|
*/
|
|
5
|
-
export declare
|
|
11
|
+
export declare const forwardEventToHost: typeof forwardEvent;
|
|
6
12
|
//# sourceMappingURL=forward-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forward-event.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/eventing/forward-event.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"forward-event.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/eventing/forward-event.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,CAIhF;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,qBAAe,CAAC"}
|
|
@@ -36,11 +36,12 @@ function preventScrollOnSpacebarPress(event) {
|
|
|
36
36
|
event.preventDefault();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function forwardEvent(event, element) {
|
|
40
40
|
const eventConstructor = Object.getPrototypeOf(event).constructor;
|
|
41
41
|
const copiedEvent = new eventConstructor(event.type, event);
|
|
42
|
-
|
|
42
|
+
element.dispatchEvent(copiedEvent);
|
|
43
43
|
}
|
|
44
|
+
const forwardEventToHost = forwardEvent;
|
|
44
45
|
async function isEventPrevented(event) {
|
|
45
46
|
await new Promise((r) => setTimeout(r));
|
|
46
47
|
return event.defaultPrevented;
|
|
@@ -62,10 +63,11 @@ const throttle = (func, delay) => {
|
|
|
62
63
|
export {
|
|
63
64
|
EventEmitter,
|
|
64
65
|
composedPathHasAttribute,
|
|
66
|
+
forwardEvent,
|
|
65
67
|
forwardEventToHost,
|
|
66
68
|
getEventTarget,
|
|
67
69
|
isEventPrevented,
|
|
68
70
|
preventScrollOnSpacebarPress,
|
|
69
71
|
throttle
|
|
70
72
|
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRpbmcuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL2NvbXBvc2VkLXBhdGgtaGFzLWF0dHJpYnV0ZS50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL2V2ZW50LWVtaXR0ZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9ldmVudC10YXJnZXQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9mb3JtLWVsZW1lbnQtaGFuZGxlcnMudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9mb3J3YXJkLWV2ZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZXZlbnRpbmcvaXMtZXZlbnQtcHJldmVudGVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZXZlbnRpbmcvdGhyb3R0bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiB0aGVyZSBpcyBhbiBlbGVtZW50IGluIHRoZSBjb21wb3NlZCBwYXRoIHRoYXQgaGFzICdhdHRyaWJ1dGUnXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBvYmplY3RcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSB0byBsb29rIGZvci5cbiAqIEBwYXJhbSBlbmRFbGVtZW50IFRoZSBib3VuZGFyeSB3aGVyZSB0aGUgcGF0aCB3aWxsIGJlIGN1dCwgZW5kRWxlbWVudCBleGNsdWRlZC4gSWYgbnVsbCBvciBub3QgcHJlc2VudCwgdGhlIHdob2xlIHBhdGggd2lsbCBiZSB1c2VkLlxuICogQHJldHVybnMgVGhlIGVsZW1lbnQgdGhhdCBoYXMgJ2F0dHJpYnV0ZScsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoXG4gIGV2ZW50OiBFdmVudCxcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIGVuZEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbCxcbik6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgY29tcG9zZWRQYXRoID0gZXZlbnQuY29tcG9zZWRQYXRoKCk7XG4gIGxldCBlbmRFbGVtZW50SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNvbXBvc2VkUGF0aC5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGVuZEVsZW1lbnQpO1xuXG4gIGlmIChlbmRFbGVtZW50SW5kZXggPT09IC0xKSB7XG4gICAgZW5kRWxlbWVudEluZGV4ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGNvbXBvc2VkUGF0aFxuICAgIC5zbGljZSgwLCBlbmRFbGVtZW50SW5kZXgpXG4gICAgLmZpbmQoKGUpID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiYgZS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkgYXMgSFRNTEVsZW1lbnQ7XG59XG4iLCJjb25zdCBkZWZhdWx0T3B0aW9uczogRXZlbnRJbml0ID0ge1xuICBidWJibGVzOiB0cnVlLFxuICBjYW5jZWxhYmxlOiB0cnVlLFxuICBjb21wb3NlZDogdHJ1ZSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBldmVudCBlbWl0dGVyLCB0aGF0IGNhbiBkaXNwYXRjaCBDdXN0b21FdmVudCBpbnN0YW5jZXMgZm9yIHRoZSBnaXZlblxuICogZWxlbWVudCB3aXRoIHRoZSBzcGVjaWZpZWQgZXZlbnQgbmFtZS5cbiAqIEV2ZW50IG9wdGlvbnMgZGVmYXVsdCB0byBidWJibGVzLCBjYW5jZWxhYmxlIGFuZCBjb21wb3NlZCBzZXQgdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50RW1pdHRlcjxUID0gYW55PiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9ldmVudE5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIF9vcHRpb25zOiB7XG4gICAgICBidWJibGVzPzogYm9vbGVhbjtcbiAgICAgIGNhbmNlbGFibGU/OiBib29sZWFuO1xuICAgICAgY29tcG9zZWQ/OiBib29sZWFuO1xuICAgIH0gPSBkZWZhdWx0T3B0aW9ucyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGV2ZW50LlxuICAgKiBAcGFyYW0gZGV0YWlsIFRoZSBkZXRhaWwgdG8gZGlzcGF0Y2ggd2l0aCB0aGUgZXZlbnQuXG4gICAqIEByZXR1cm5zIHRydWUgd2hlbiB0aGUgZXZlbnQgd2FzIHN1Y2Nlc3NmdWxseSBlbWl0dGVkIG9yIGZhbHNlLFxuICAgKiAgaWYgcHJldmVudERlZmF1bHQoKSB3YXMgY2FsbGVkLiBBbHdheXMgcmV0dXJucyB0cnVlIGluIFNTUi5cbiAgICovXG4gIHB1YmxpYyBlbWl0KGRldGFpbD86IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZWxlbWVudC5kaXNwYXRjaEV2ZW50Py4oXG4gICAgICAgIG5ldyBDdXN0b21FdmVudCh0aGlzLl9ldmVudE5hbWUsIHsgLi4udGhpcy5fb3B0aW9ucywgZGV0YWlsIH0pLFxuICAgICAgKSA/
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRpbmcuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL2NvbXBvc2VkLXBhdGgtaGFzLWF0dHJpYnV0ZS50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL2V2ZW50LWVtaXR0ZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9ldmVudC10YXJnZXQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9mb3JtLWVsZW1lbnQtaGFuZGxlcnMudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9ldmVudGluZy9mb3J3YXJkLWV2ZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZXZlbnRpbmcvaXMtZXZlbnQtcHJldmVudGVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZXZlbnRpbmcvdGhyb3R0bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiB0aGVyZSBpcyBhbiBlbGVtZW50IGluIHRoZSBjb21wb3NlZCBwYXRoIHRoYXQgaGFzICdhdHRyaWJ1dGUnXG4gKlxuICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCBvYmplY3RcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSB0byBsb29rIGZvci5cbiAqIEBwYXJhbSBlbmRFbGVtZW50IFRoZSBib3VuZGFyeSB3aGVyZSB0aGUgcGF0aCB3aWxsIGJlIGN1dCwgZW5kRWxlbWVudCBleGNsdWRlZC4gSWYgbnVsbCBvciBub3QgcHJlc2VudCwgdGhlIHdob2xlIHBhdGggd2lsbCBiZSB1c2VkLlxuICogQHJldHVybnMgVGhlIGVsZW1lbnQgdGhhdCBoYXMgJ2F0dHJpYnV0ZScsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoXG4gIGV2ZW50OiBFdmVudCxcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIGVuZEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbCxcbik6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgY29tcG9zZWRQYXRoID0gZXZlbnQuY29tcG9zZWRQYXRoKCk7XG4gIGxldCBlbmRFbGVtZW50SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNvbXBvc2VkUGF0aC5maW5kSW5kZXgoKGVsZW0pID0+IGVsZW0gPT09IGVuZEVsZW1lbnQpO1xuXG4gIGlmIChlbmRFbGVtZW50SW5kZXggPT09IC0xKSB7XG4gICAgZW5kRWxlbWVudEluZGV4ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGNvbXBvc2VkUGF0aFxuICAgIC5zbGljZSgwLCBlbmRFbGVtZW50SW5kZXgpXG4gICAgLmZpbmQoKGUpID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQgJiYgZS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkgYXMgSFRNTEVsZW1lbnQ7XG59XG4iLCJjb25zdCBkZWZhdWx0T3B0aW9uczogRXZlbnRJbml0ID0ge1xuICBidWJibGVzOiB0cnVlLFxuICBjYW5jZWxhYmxlOiB0cnVlLFxuICBjb21wb3NlZDogdHJ1ZSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBldmVudCBlbWl0dGVyLCB0aGF0IGNhbiBkaXNwYXRjaCBDdXN0b21FdmVudCBpbnN0YW5jZXMgZm9yIHRoZSBnaXZlblxuICogZWxlbWVudCB3aXRoIHRoZSBzcGVjaWZpZWQgZXZlbnQgbmFtZS5cbiAqIEV2ZW50IG9wdGlvbnMgZGVmYXVsdCB0byBidWJibGVzLCBjYW5jZWxhYmxlIGFuZCBjb21wb3NlZCBzZXQgdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50RW1pdHRlcjxUID0gYW55PiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIF9ldmVudE5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIF9vcHRpb25zOiB7XG4gICAgICBidWJibGVzPzogYm9vbGVhbjtcbiAgICAgIGNhbmNlbGFibGU/OiBib29sZWFuO1xuICAgICAgY29tcG9zZWQ/OiBib29sZWFuO1xuICAgIH0gPSBkZWZhdWx0T3B0aW9ucyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGV2ZW50LlxuICAgKiBAcGFyYW0gZGV0YWlsIFRoZSBkZXRhaWwgdG8gZGlzcGF0Y2ggd2l0aCB0aGUgZXZlbnQuXG4gICAqIEByZXR1cm5zIHRydWUgd2hlbiB0aGUgZXZlbnQgd2FzIHN1Y2Nlc3NmdWxseSBlbWl0dGVkIG9yIGZhbHNlLFxuICAgKiAgaWYgcHJldmVudERlZmF1bHQoKSB3YXMgY2FsbGVkLiBBbHdheXMgcmV0dXJucyB0cnVlIGluIFNTUi5cbiAgICovXG4gIHB1YmxpYyBlbWl0KGRldGFpbD86IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZWxlbWVudC5kaXNwYXRjaEV2ZW50Py4oXG4gICAgICAgIG5ldyBDdXN0b21FdmVudCh0aGlzLl9ldmVudE5hbWUsIHsgLi4udGhpcy5fb3B0aW9ucywgZGV0YWlsIH0pLFxuICAgICAgKSA/PyB0cnVlXG4gICAgKTtcbiAgfVxufVxuIiwiLyoqIEdldHMgdGhlIHRhcmdldCBvZiBhbiBldmVudCB3aGlsZSBhY2NvdW50aW5nIGZvciBTaGFkb3cgRE9NLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50VGFyZ2V0PFQgZXh0ZW5kcyBFdmVudFRhcmdldD4oZXZlbnQ6IEV2ZW50KTogVCB8IG51bGwge1xuICAvLyBJZiBhbiBldmVudCBpcyBib3VuZCBvdXRzaWRlIHRoZSBTaGFkb3cgRE9NLCB0aGUgYGV2ZW50LnRhcmdldGAgd2lsbFxuICAvLyBwb2ludCB0byB0aGUgc2hhZG93IHJvb3QsIHNvIHdlIGhhdmUgdG8gdXNlIGBjb21wb3NlZFBhdGhgIGluc3RlYWQuXG4gIHJldHVybiAoZXZlbnQuY29tcG9zZWRQYXRoID8gZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gOiBldmVudC50YXJnZXQpIGFzIFQgfCBudWxsO1xufVxuIiwiLyoqXG4gKiBQcmV2ZW50cyBzY3JvbGxpbmcgZnJvbSBwcmVzc2luZyBTcGFjZVxuICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2ZW50U2Nyb2xsT25TcGFjZWJhclByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIi8qKlxuICogRm9yd2FyZHMgYW4gZXZlbnQgdG8gdGhlIGVsZW1lbnQgcHJvdmlkZWQuXG4gKiBUaGlzIHdheSwgYW4gZXZlbnQgdHJpZ2dlcmVkIGluIHRoZSBTaGFkb3cgRE9NIGNhbiBjcm9zcyBpdHMgYm91bmRhcnkgYW5kIGNhbiBiZSBsaXN0ZW5lZCBvbiBlLmcuIHRoZSBob3N0IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRFdmVudChldmVudDogRXZlbnQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQpOiB2b2lkIHtcbiAgY29uc3QgZXZlbnRDb25zdHJ1Y3RvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihldmVudCkuY29uc3RydWN0b3I7XG4gIGNvbnN0IGNvcGllZEV2ZW50OiBFdmVudCA9IG5ldyBldmVudENvbnN0cnVjdG9yKGV2ZW50LnR5cGUsIGV2ZW50KTtcbiAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGNvcGllZEV2ZW50KTtcbn1cblxuLyoqXG4gKiBGb3J3YXJkcyBhbiBldmVudCB0byB0aGUgaG9zdCBlbGVtZW50IHByb3ZpZGVkLlxuICogVGhpcyB3YXksIGFuIGV2ZW50IHRyaWdnZXJlZCBpbiB0aGUgU2hhZG93RE9NIGNhbiBjcm9zcyBpdHMgYm91bmRhcnkgYW5kIGNhbiBiZSBsaXN0ZW5lZCBvbiB0aGUgaG9zdCBjb21wb25lbnQuXG4gKiBAZGVwcmVjYXRlZCB3aWxsIGJlIHJlbW92ZWQgd2l0aCBuZXh0IG1ham9yIHZlcnNpb24sIHVzZSBmb3J3YXJkRXZlbnQgYXMgYWx0ZXJuYXRpdmVcbiAqL1xuZXhwb3J0IGNvbnN0IGZvcndhcmRFdmVudFRvSG9zdCA9IGZvcndhcmRFdmVudDtcbiIsIi8qKiBXYWl0cyBmb3IgdGhlIGV2ZW50IHRvIGZpbmlzaCBidWJibGluZyBhbmQgcmV0dXJucyB3aGV0aGVyIGl0IGhhcyBiZWVuIHByZXZlbnRlZC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc0V2ZW50UHJldmVudGVkKGV2ZW50OiBFdmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyBUaGUgZXZlbnQgaXMgZmluaXNoZWQgYWZ0ZXIgYSBtYWNybyB0YXNrLCBmb3Igd2hpY2ggd2UgdXNlIHNldFRpbWVvdXQuXG4gIGF3YWl0IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIpKTtcbiAgcmV0dXJuIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQ7XG59XG4iLCJleHBvcnQgY29uc3QgdGhyb3R0bGUgPSA8RiBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgZnVuYzogRixcbiAgZGVsYXk6IG51bWJlcixcbik6ICgoLi4uYXJnczogUGFyYW1ldGVyczxGPikgPT4gUHJvbWlzZTxSZXR1cm5UeXBlPEY+PikgPT4ge1xuICBsZXQgc2hvdWxkV2FpdCA9IGZhbHNlO1xuXG4gIGNvbnN0IHRocm90dGxlZCA9ICguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogYW55ID0+IHtcbiAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmdW5jKC4uLmFyZ3MpO1xuICAgIHNob3VsZFdhaXQgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2hvdWxkV2FpdCA9IGZhbHNlO1xuICAgIH0sIGRlbGF5KTtcbiAgfTtcblxuICByZXR1cm4gdGhyb3R0bGVkIGFzICguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KSA9PiBSZXR1cm5UeXBlPEY+O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRTSxTQUFVLHlCQUNkLE9BQ0EsV0FDQSxhQUE2QixNQUFJO0FBRTNCLFFBQUEsZUFBZSxNQUFNO0FBQzNCLE1BQUksa0JBQXNDLGFBQWEsVUFBVSxDQUFDLFNBQVMsU0FBUyxVQUFVO0FBRTlGLE1BQUksb0JBQW9CLElBQUk7QUFDUixzQkFBQTtBQUFBLEVBQUE7QUFHcEIsU0FBTyxhQUNKLE1BQU0sR0FBRyxlQUFlLEVBQ3hCLEtBQUssQ0FBQyxNQUFNLGFBQWEsT0FBTyxlQUFlLEVBQUUsYUFBYSxTQUFTLENBQUM7QUFDN0U7QUN2QkEsTUFBTSxpQkFBNEI7QUFBQSxFQUNoQyxTQUFTO0FBQUEsRUFDVCxZQUFZO0FBQUEsRUFDWixVQUFVOztNQVFDLGFBQVk7QUFBQSxFQUN2QixZQUNVLFVBQ0EsWUFDQSxXQUlKLGdCQUFjO0FBTlYsU0FBUSxXQUFSO0FBQ0EsU0FBVSxhQUFWO0FBQ0EsU0FBUSxXQUFSO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBYUgsS0FBSyxRQUFVO0FEcEJsQjtBQ3FCRixhQUNFLGdCQUFLLFVBQVMsa0JBQWQsNEJBQ0UsSUFBSSxZQUFZLEtBQUssWUFBWSxFQUFFLEdBQUcsS0FBSyxVQUFVLE9BQVEsQ0FBQSxPQUMxRDtBQUFBLEVBQUE7QUFHVjtBQ2xDSyxTQUFVLGVBQXNDLE9BQVk7QUFHaEUsU0FBUSxNQUFNLGVBQWUsTUFBTSxlQUFlLENBQUMsSUFBSSxNQUFNO0FBQy9EO0FDRE0sU0FBVSw2QkFBNkIsT0FBb0I7QUFDM0QsTUFBQSxNQUFNLFFBQVEsS0FBSztBQUNyQixVQUFNLGVBQWM7QUFBQSxFQUFBO0FBRXhCO0FDSmdCLFNBQUEsYUFBYSxPQUFjLFNBQStCO0FBQ3hFLFFBQU0sbUJBQW1CLE9BQU8sZUFBZSxLQUFLLEVBQUU7QUFDdEQsUUFBTSxjQUFxQixJQUFJLGlCQUFpQixNQUFNLE1BQU0sS0FBSztBQUNqRSxVQUFRLGNBQWMsV0FBVztBQUNuQztBQU9PLE1BQU0scUJBQXFCO0FDZGxDLGVBQXNCLGlCQUFpQixPQUFZO0FBRWpELFFBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxXQUFXLENBQUMsQ0FBQztBQUN0QyxTQUFPLE1BQU07QUFDZjtBQ0xhLE1BQUEsV0FBVyxDQUN0QixNQUNBLFVBQ3dEO0FBQ3hELE1BQUksYUFBYTtBQUVYLFFBQUEsWUFBWSxJQUFJLFNBQTRCO0FBQ2hELFFBQUksWUFBWTtBQUNkO0FBQUEsSUFBQTtBQUVGLFNBQUssR0FBRyxJQUFJO0FBQ0MsaUJBQUE7QUFDYixlQUFXLE1BQUs7QUFDRCxtQkFBQTtBQUFBLE9BQ1osS0FBSztBQUFBLEVBQ1Y7QUFFTyxTQUFBO0FBQ1Q7In0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-associated-checkbox-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-checkbox-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIlF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,kCAC5B,SAAQ,0BACR,YAAW,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAEvE,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE;IAEnC,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAExB,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,mBAAmB,CAAC,IAAI,IAAI;IACtC,SAAS,CAAC,eAAe,IAAI,IAAI;CAClC;AAED;;;;GAIG;AAEH,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cAClE,CAAC,KACZ,WAAW,CAAC,kCAAkC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"form-associated-checkbox-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-checkbox-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIlF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,kCAC5B,SAAQ,0BACR,YAAW,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAEvE,IAAW,OAAO,IAAI,OAAO,CAAC;IAC9B,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE;IAEnC,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAE/B,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;IACpC,IAAW,QAAQ,IAAI,OAAO,CAAC;IAExB,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,mBAAmB,CAAC,IAAI,IAAI;IACtC,SAAS,CAAC,eAAe,IAAI,IAAI;CAClC;AAED;;;;GAIG;AAEH,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cAClE,CAAC,KACZ,WAAW,CAAC,kCAAkC,CAAC,GAAG,CAwIpD,CAAC"}
|
|
@@ -17,6 +17,7 @@ export declare class SbbFormAssociatedRadioButtonMixinType extends SbbFormAssoci
|
|
|
17
17
|
disabled: boolean;
|
|
18
18
|
required: boolean;
|
|
19
19
|
protected associatedRadioButtons?: Set<SbbFormAssociatedRadioButtonMixinType>;
|
|
20
|
+
/** @deprecated No longer used internally. */
|
|
20
21
|
protected abort: SbbConnectedAbortController;
|
|
21
22
|
formResetCallback(): void;
|
|
22
23
|
formStateRestoreCallback(state: FormRestoreState | null, reason: FormRestoreReason): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-associated-radio-button-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-radio-button-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAItD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,wEAG7B,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,qCACnB,SAAQ,0BACR,YAAW,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAEhE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAEzB,SAAS,CAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC9E,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC;IAEtC,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,mBAAmB,CAAC,IAAI,IAAI;IACtC,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IACvC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1F;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cACrE,CAAC,KACZ,WAAW,CAAC,qCAAqC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"form-associated-radio-button-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-radio-button-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAItD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAErB,KAAK,0BAA0B,EAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,wEAG7B,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,qCACnB,SAAQ,0BACR,YAAW,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAEhE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAEzB,SAAS,CAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC9E,6CAA6C;IAC7C,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC;IAEtC,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,oBAAoB,IAAI,OAAO;IACzC,SAAS,CAAC,mBAAmB,CAAC,IAAI,IAAI;IACtC,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IACvC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1F;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,cACrE,CAAC,KACZ,WAAW,CAAC,qCAAqC,CAAC,GAAG,CAuQvD,CAAC"}
|