@sbb-esta/lyne-elements 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +5 -5
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +17 -17
- package/action-group/action-group.d.ts +1 -1
- package/action-group/action-group.d.ts.map +1 -1
- package/action-group.js +3 -3
- package/alert/alert/alert.d.ts +1 -1
- package/alert/alert/alert.d.ts.map +1 -1
- package/alert/alert.js +3 -3
- package/autocomplete/autocomplete-base-element.d.ts +1 -1
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +1 -1
- package/autocomplete-grid/autocomplete-grid.js +18 -18
- package/autocomplete.js +9 -9
- package/button/button.js +9 -9
- package/button/common.js +5 -5
- package/button/mini-button/mini-button.d.ts.map +1 -1
- package/button/mini-button.js +17 -15
- package/button/secondary-button.js +6 -6
- package/button/tertiary-button.js +13 -13
- package/button/transparent-button.js +8 -8
- package/calendar/calendar.d.ts +2 -2
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +5 -4
- package/clock/clock.d.ts +2 -2
- package/clock/clock.d.ts.map +1 -1
- package/clock.js +5 -5
- package/container/container.js +14 -14
- package/core/a11y/focus-visible-within-controller.d.ts +1 -1
- package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/core/a11y/input-modality-detector.d.ts +2 -2
- package/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/core/a11y.js +3 -3
- package/core/base-elements/action-base-element.d.ts +1 -0
- package/core/base-elements/action-base-element.d.ts.map +1 -1
- 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/link-base-element.d.ts.map +1 -1
- package/core/base-elements.js +47 -45
- package/core/controllers/slot-state-controller.d.ts +1 -1
- package/core/controllers/slot-state-controller.d.ts.map +1 -1
- package/core/dom/platform.d.ts +2 -3
- package/core/dom/platform.d.ts.map +1 -1
- package/core/dom.js +38 -40
- package/core/mixins/disabled-mixin.d.ts +8 -0
- package/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/core/mixins.js +97 -89
- package/core/styles/core.scss +6 -0
- package/core/styles/mixins/lists.scss +11 -1
- package/core/styles/mixins/panel.scss +0 -2
- package/core/styles/mixins/table.scss +11 -0
- package/core/styles/mixins/typo.scss +0 -30
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
- package/core/styles/table.scss +6 -1
- package/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/core/testing.js +61 -54
- package/core.css +7 -14
- package/custom-elements.json +493 -299
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +57 -47
- package/datepicker/datepicker.js +1 -0
- package/development/accordion/accordion.d.ts +5 -5
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +25 -38
- package/development/action-group/action-group.d.ts +1 -1
- package/development/action-group/action-group.d.ts.map +1 -1
- package/development/action-group.js +8 -21
- package/development/alert/alert/alert.d.ts +1 -1
- package/development/alert/alert/alert.d.ts.map +1 -1
- package/development/alert/alert-group.js +2 -15
- package/development/alert/alert.js +6 -19
- package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid-option.js +4 -17
- package/development/autocomplete-grid/autocomplete-grid-row.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid.js +6 -6
- package/development/autocomplete.js +7 -20
- package/development/breadcrumb/breadcrumb-group.js +2 -15
- package/development/breadcrumb/breadcrumb.js +2 -15
- package/development/button/button.js +3 -3
- package/development/button/common.js +2 -17
- package/development/button/mini-button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button-group.js +2 -15
- package/development/button/mini-button.js +6 -17
- package/development/button/secondary-button.js +3 -3
- package/development/button/tertiary-button.js +3 -3
- package/development/button/transparent-button.js +3 -3
- package/development/calendar/calendar.d.ts +2 -2
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +7 -19
- package/development/card/card-badge.js +2 -15
- package/development/card/card.js +2 -15
- package/development/card/common.js +2 -15
- package/development/checkbox/checkbox-group.js +2 -15
- package/development/checkbox/checkbox.js +2 -15
- package/development/checkbox/common.js +1 -14
- package/development/chip.js +2 -15
- package/development/clock/clock.d.ts +2 -2
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.js +3 -16
- package/development/container/container.js +2 -15
- package/development/container/sticky-bar.js +2 -15
- package/development/core/a11y/focus-visible-within-controller.d.ts +1 -1
- package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/development/core/a11y/input-modality-detector.d.ts +2 -2
- package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/development/core/a11y.js +6 -6
- package/development/core/base-elements/action-base-element.d.ts +1 -0
- package/development/core/base-elements/action-base-element.d.ts.map +1 -1
- 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/link-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +11 -2
- package/development/core/controllers/slot-state-controller.d.ts +1 -1
- package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
- package/development/core/controllers.js +1 -1
- package/development/core/dom/platform.d.ts +2 -3
- package/development/core/dom/platform.d.ts.map +1 -1
- package/development/core/dom.js +4 -5
- package/development/core/mixins/disabled-mixin.d.ts +8 -0
- package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +24 -15
- package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/development/core/testing.js +16 -2
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +2 -15
- package/development/datepicker/datepicker-previous-day.js +2 -15
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +22 -24
- package/development/datepicker/datepicker.js +3 -15
- package/development/dialog/dialog-actions.js +2 -15
- package/development/dialog/dialog-content.js +2 -15
- package/development/dialog/dialog-title.js +2 -15
- package/development/dialog/dialog.js +3 -16
- package/development/divider.js +2 -15
- package/development/expansion-panel/expansion-panel-content.js +2 -15
- package/development/expansion-panel/expansion-panel-header.js +5 -17
- package/development/expansion-panel/expansion-panel.js +2 -15
- package/development/file-selector/file-selector.d.ts +4 -4
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +2 -17
- package/development/flip-card/flip-card-details.js +2 -15
- package/development/flip-card/flip-card-summary.js +2 -15
- package/development/flip-card/flip-card.js +2 -15
- package/development/footer.js +2 -15
- package/development/form-error.js +2 -15
- package/development/form-field/form-field-clear.js +2 -15
- package/development/form-field/form-field.js +1 -14
- package/development/header/common.js +2 -15
- package/development/header/header.js +2 -15
- package/development/icon/icon.d.ts +6 -0
- package/development/icon/icon.d.ts.map +1 -1
- package/development/icon.js +10 -15
- package/development/image.js +4 -17
- package/development/journey-header.js +2 -15
- package/development/lead-container.js +2 -15
- package/development/link/block-link-button.js +3 -3
- package/development/link/common.js +4 -43
- package/development/link/link-button.js +3 -3
- package/development/link-list/common.js +2 -15
- package/development/link-list/link-list-anchor.js +2 -15
- package/development/link-list/link-list.js +2 -15
- package/development/loading-indicator.js +2 -15
- package/development/logo.js +2 -15
- package/development/map-container.js +2 -15
- package/development/menu/common.js +2 -15
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu-button.js +3 -3
- package/development/menu/menu.js +3 -18
- package/development/message.js +2 -15
- package/development/navigation/common.js +2 -17
- package/development/navigation/navigation-list.js +2 -15
- package/development/navigation/navigation-marker.js +2 -17
- package/development/navigation/navigation-section.js +2 -19
- package/development/navigation/navigation.js +2 -15
- package/development/notification.js +2 -15
- package/development/option/optgroup/optgroup-base-element.d.ts +2 -2
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup.js +2 -15
- package/development/option/option/option-base-element.d.ts +14 -4
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +15 -21
- package/development/overlay/overlay-base-element.d.ts +1 -1
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay.js +3 -23
- package/development/popover/popover-trigger.js +4 -17
- package/development/popover/popover.js +2 -15
- package/development/radio-button/common.js +2 -15
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +9 -22
- package/development/radio-button/radio-button.js +2 -15
- package/development/screen-reader-only.js +2 -15
- package/development/select/select.d.ts +3 -1
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +49 -48
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +38 -18
- package/development/signet.js +2 -15
- package/development/skiplink-list.js +2 -15
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +10 -16
- package/development/status.js +2 -15
- package/development/stepper/step-label/step-label.d.ts +6 -6
- package/development/stepper/step-label/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +50 -45
- package/development/stepper/step.js +2 -15
- package/development/stepper/stepper/stepper.d.ts +6 -3
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +17 -15
- package/development/table/table-wrapper.js +2 -15
- package/development/tabs/tab-group/tab-group.d.ts +4 -4
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +22 -35
- package/development/tabs/tab-label.js +2 -19
- package/development/tabs/tab.js +1 -14
- package/development/tag/tag-group.js +2 -15
- package/development/tag/tag.js +4 -17
- package/development/teaser-hero.js +3 -23
- package/development/teaser-product/common.js +2 -15
- package/development/teaser-product/teaser-product.js +3 -16
- package/development/teaser.js +2 -15
- package/development/time-input.js +2 -15
- package/development/timetable-occupancy-icon.js +2 -15
- package/development/timetable-occupancy.js +2 -15
- package/development/title.js +3 -41
- package/development/toast.js +2 -17
- package/development/toggle/toggle/toggle.d.ts +2 -2
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +3 -15
- package/development/toggle/toggle.js +23 -36
- package/development/toggle-check.js +1 -14
- package/development/train/train-blocked-passage.js +2 -15
- package/development/train/train-formation.js +2 -15
- package/development/train/train-wagon.js +2 -17
- package/development/train/train.js +2 -15
- package/development/visual-checkbox.js +2 -15
- package/dialog/dialog.js +1 -1
- package/expansion-panel/expansion-panel-header.js +5 -5
- package/file-selector/file-selector.d.ts +4 -4
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector.js +1 -1
- package/icon/icon.d.ts +6 -0
- package/icon/icon.d.ts.map +1 -1
- package/icon.js +27 -19
- package/image.js +2 -2
- package/link/block-link-button.js +10 -10
- package/link/link-button.js +4 -4
- package/lists.css +9 -14
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button.js +13 -13
- package/menu/menu.js +7 -9
- package/navigation/common.js +1 -1
- package/navigation/navigation-marker.js +1 -1
- package/navigation/navigation-section.js +1 -1
- package/option/optgroup/optgroup-base-element.d.ts +2 -2
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/option/option-base-element.d.ts +14 -4
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +32 -25
- package/overlay/overlay-base-element.d.ts +1 -1
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay.js +1 -1
- package/package.json +1 -1
- package/popover/popover-trigger.js +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +5 -5
- package/select/select.d.ts +3 -1
- package/select/select.d.ts.map +1 -1
- package/select.js +83 -72
- package/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +70 -49
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +2 -2
- package/standard-theme.css +49 -24
- package/stepper/step-label/step-label.d.ts +6 -6
- package/stepper/step-label/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +30 -30
- package/stepper/stepper/stepper.d.ts +6 -3
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +34 -25
- package/tabs/tab-group/tab-group.d.ts +4 -4
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +15 -15
- package/tabs/tab-label.js +12 -12
- package/tag/tag.js +19 -19
- package/teaser-hero.js +13 -13
- package/teaser-product/teaser-product.js +5 -5
- package/teaser.js +15 -15
- package/title.js +23 -23
- package/toast.js +4 -4
- package/toggle/toggle/toggle.d.ts +2 -2
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +1 -0
- package/toggle/toggle.js +10 -10
- package/train/train-wagon.js +7 -7
- package/typography.css +0 -13
|
@@ -10,12 +10,12 @@ export declare abstract class SbbOptgroupBaseElement extends SbbOptgroupBaseElem
|
|
|
10
10
|
private _inertAriaGroups;
|
|
11
11
|
private _negativeObserver;
|
|
12
12
|
protected abstract get options(): SbbOptionBaseElement[];
|
|
13
|
-
protected abstract setAttributeFromParent(): void;
|
|
14
|
-
protected abstract getAutocompleteParent(): SbbAutocompleteBaseElement | null;
|
|
15
13
|
constructor();
|
|
16
14
|
connectedCallback(): void;
|
|
17
15
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
18
16
|
disconnectedCallback(): void;
|
|
17
|
+
protected abstract setAttributeFromParent(): void;
|
|
18
|
+
protected abstract getAutocompleteParent(): SbbAutocompleteBaseElement | null;
|
|
19
19
|
private _handleSlotchange;
|
|
20
20
|
private _proxyGroupLabelToOptions;
|
|
21
21
|
protected proxyDisabledToOptions(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optgroup-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/optgroup/optgroup-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAKxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,kBAAkB,CAAC;;AAS1B,8BACsB,sBAAuB,SAAQ,2BAEpD;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,0BAA0B;IACP,KAAK,EAAG,MAAM,CAAC;IAEzB,SAAS,CAAC,QAAQ,UAAS;IAE3B,OAAO,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,iBAAiB,CAAgE;IAEzF,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"optgroup-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/optgroup/optgroup-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAKxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,kBAAkB,CAAC;;AAS1B,8BACsB,sBAAuB,SAAQ,2BAEpD;IACC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,0BAA0B;IACP,KAAK,EAAG,MAAM,CAAC;IAEzB,SAAS,CAAC,QAAQ,UAAS;IAE3B,OAAO,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,iBAAiB,CAAgE;IAEzF,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,EAAE,CAAC;;IAczC,iBAAiB,IAAI,IAAI;cAYtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe5D,oBAAoB,IAAI,IAAI;IAK5C,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IACjD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,0BAA0B,GAAG,IAAI;IAE7E,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,yBAAyB;IAkBjC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAMxC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;cAIN,MAAM,IAAI,cAAc;CAY5C"}
|
|
@@ -5,20 +5,7 @@ import { setOrRemoveAttribute, isSafari } from "../core/dom.js";
|
|
|
5
5
|
import { SbbDisabledMixin, SbbHydrationMixin } from "../core/mixins.js";
|
|
6
6
|
import { AgnosticMutationObserver } from "../core/observers.js";
|
|
7
7
|
import "../divider.js";
|
|
8
|
-
const style = css`/**
|
|
9
|
-
* Better font rendering (on OS X)
|
|
10
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
*
|
|
14
|
-
* .var_dark_on_light {
|
|
15
|
-
* @include font-smoothing;
|
|
16
|
-
* }
|
|
17
|
-
* .var_light_on_dark {
|
|
18
|
-
* @include font-smoothing-reset;
|
|
19
|
-
* }
|
|
20
|
-
*/
|
|
21
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
8
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
22
9
|
/*
|
|
23
10
|
* SBB table mixin
|
|
24
11
|
* Notes:
|
|
@@ -268,4 +255,4 @@ export {
|
|
|
268
255
|
SbbOptGroupElement,
|
|
269
256
|
SbbOptgroupBaseElement
|
|
270
257
|
};
|
|
271
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0Z3JvdXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9vcHRpb24vb3B0Z3JvdXAvb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRncm91cC9vcHRncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL29wdGdyb3VwLWJhc2UtZWxlbWVudC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGdyb3VwcyBsYWJlbHMgYXJlIG5vdCByZWFkIGJ5IFZvaWNlT3Zlci5cbiAqIFRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSByZW1vdmUgdGhlIHJvbGU9XCJncm91cFwiIGFuZCBhZGQgYSBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuQGhvc3RBdHRyaWJ1dGVzKHsgcm9sZTogIWluZXJ0QXJpYUdyb3VwcyA/ICdncm91cCcgOiBudWxsIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBPcHRpb24gZ3JvdXAgbGFiZWwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBsYWJlbCE6IHN0cmluZztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgbmVnYXRpdmUgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9uZWdhdGl2ZU9ic2VydmVyID0gbmV3IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLl9vbk5lZ2F0aXZlQ2hhbmdlKCkpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudFtdO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk6IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmIChpbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fbmVnYXRpdmVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpO1xuICAgIHRoaXMuX25lZ2F0aXZlT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2RhdGEtbmVnYXRpdmUnXSxcbiAgICB9KTtcblxuICAgIHRoaXMuX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBpZiAoIXRoaXMuX2luZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQudG9TdHJpbmcoKSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYWJlbCcpKSB7XG4gICAgICB0aGlzLl9wcm94eUdyb3VwTGFiZWxUb09wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9uZWdhdGl2ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMucHJveHlEaXNhYmxlZFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpO1xuICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2luZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ2FyaWEtbGFiZWwnLCB0aGlzLmxhYmVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcsIHRoaXMubGFiZWwpO1xuICAgICAgICBvcHRpb24ucmVxdWVzdFVwZGF0ZT8uKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgICBvcHRpb24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyk7XG4gICAgICAgIG9wdGlvbi5yZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJveHlEaXNhYmxlZFRvT3B0aW9ucygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbi50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRPcHRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IHRoaXMuZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk7XG4gICAgaWYgKCFhdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBhdXRvY29tcGxldGUudHJpZ2dlckVsZW1lbnQ/LnZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdCkgPT4gb3B0LmhpZ2hsaWdodCh2YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25OZWdhdGl2ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9fZGl2aWRlclwiPlxuICAgICAgICA8c2JiLWRpdmlkZXIgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0+PC9zYmItZGl2aWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9fbGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRncm91cF9faWNvbi1zcGFjZVwiPjwvZGl2PlxuICAgICAgICA8c3Bhbj4ke3RoaXMubGFiZWx9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vb3B0aW9uLmpzJztcblxuaW1wb3J0IHsgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCB9IGZyb20gJy4vb3B0Z3JvdXAtYmFzZS1lbGVtZW50LmpzJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1vcHRpb25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItb3B0aW9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1vcHRncm91cGAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItb3B0Z3JvdXAnKVxuZXhwb3J0IGNsYXNzIFNiYk9wdEdyb3VwRWxlbWVudCBleHRlbmRzIFNiYk9wdGdyb3VwQmFzZUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgZ2V0IG9wdGlvbnMoKTogU2JiT3B0aW9uRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLW9wdGlvbicpID8/IFtdKSBhcyBTYmJPcHRpb25FbGVtZW50W107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QXV0b2NvbXBsZXRlUGFyZW50KCk6IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUnKSB8fCBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5uZWdhdGl2ZSA9ICEhdGhpcy5jbG9zZXN0Py4oYDppcyhzYmItYXV0b2NvbXBsZXRlLCBzYmItc2VsZWN0LCBzYmItZm9ybS1maWVsZClbbmVnYXRpdmVdYCk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnLCB0aGlzLm5lZ2F0aXZlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW11bHRpcGxlJywgISF0aGlzLmNsb3Nlc3QoJ3NiYi1zZWxlY3RbbXVsdGlwbGVdJykpO1xuICAgIHRoaXMuX3NldFZhcmlhbnRCeUNvbnRleHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFZhcmlhbnRCeUNvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItYXV0b2NvbXBsZXRlJykpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXZhcmlhbnQnLCAnYXV0b2NvbXBsZXRlJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNsb3Nlc3Q/Lignc2JiLXNlbGVjdCcpKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS12YXJpYW50JywgJ3NlbGVjdCcpO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW9wdGdyb3VwJzogU2JiT3B0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsTUFBTSxrQkFBa0I7QUFHakIsSUFBZSx5QkFBZixjQUE4QztBQUFBLEVBQ25ELGtCQUFrQixVQUFVO0FBQzlCLEVBQUU7QUFBQSxFQWdCTyxjQUFjO0FBQ2I7QUFYQyxTQUFVLFdBQVc7QUFFckIsU0FBUSxtQkFBbUI7QUFFcEMsU0FBUSxvQkFBb0IsSUFBSSx5QkFBeUIsTUFBTSxLQUFLLG1CQUFtQjtBQVNyRixRQUFJLGlCQUFpQjtBQUNuQixVQUFJLEtBQUssbUJBQW1CO0FBQzFCLGFBQUssa0JBQWtCLEtBQUssTUFBTyxLQUFLLG1CQUFtQixlQUFnQjtBQUFBLE1BQUEsT0FDdEU7QUFDTCxhQUFLLG1CQUFtQjtBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUVnQixvQkFBMEI7O0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ3hCLGVBQUssc0JBQUwsbUJBQXdCO0FBQ3hCLFNBQUssdUJBQXVCO0FBQ3ZCLFNBQUEsa0JBQWtCLFFBQVEsTUFBTTtBQUFBLE1BQ25DLFlBQVk7QUFBQSxNQUNaLGlCQUFpQixDQUFDLGVBQWU7QUFBQSxJQUFBLENBQ2xDO0FBRUQsU0FBSywwQkFBMEI7QUFBQSxFQUNqQztBQUFBLEVBRW1CLFdBQVcsbUJBQStDO0FBQzNFLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDakMsVUFBQSxDQUFDLEtBQUssa0JBQWtCO0FBQzFCLGFBQUss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
|
|
258
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0Z3JvdXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9vcHRpb24vb3B0Z3JvdXAvb3B0Z3JvdXAtYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRncm91cC9vcHRncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vYXV0b2NvbXBsZXRlLmpzJztcbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyIH0gZnJvbSAnLi4vLi4vY29yZS9vYnNlcnZlcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uL29wdGlvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL29wdGdyb3VwLWJhc2UtZWxlbWVudC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGdyb3VwcyBsYWJlbHMgYXJlIG5vdCByZWFkIGJ5IFZvaWNlT3Zlci5cbiAqIFRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSByZW1vdmUgdGhlIHJvbGU9XCJncm91cFwiIGFuZCBhZGQgYSBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuQGhvc3RBdHRyaWJ1dGVzKHsgcm9sZTogIWluZXJ0QXJpYUdyb3VwcyA/ICdncm91cCcgOiBudWxsIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBPcHRpb24gZ3JvdXAgbGFiZWwuICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBsYWJlbCE6IHN0cmluZztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgbmVnYXRpdmUgPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9uZWdhdGl2ZU9ic2VydmVyID0gbmV3IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLl9vbk5lZ2F0aXZlQ2hhbmdlKCkpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudFtdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9uZWdhdGl2ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk7XG4gICAgdGhpcy5fbmVnYXRpdmVPYnNlcnZlci5vYnNlcnZlKHRoaXMsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGF0YS1uZWdhdGl2ZSddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fcHJveHlHcm91cExhYmVsVG9PcHRpb25zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGlmICghdGhpcy5faW5lcnRBcmlhR3JvdXBzKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJywgdGhpcy5kaXNhYmxlZC50b1N0cmluZygpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcm94eURpc2FibGVkVG9PcHRpb25zKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsJykpIHtcbiAgICAgIHRoaXMuX3Byb3h5R3JvdXBMYWJlbFRvT3B0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX25lZ2F0aXZlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRBdXRvY29tcGxldGVQYXJlbnQoKTogU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQgfCBudWxsO1xuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5wcm94eURpc2FibGVkVG9PcHRpb25zKCk7XG4gICAgdGhpcy5fcHJveHlHcm91cExhYmVsVG9PcHRpb25zKCk7XG4gICAgdGhpcy5faGlnaGxpZ2h0T3B0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJveHlHcm91cExhYmVsVG9PcHRpb25zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5lcnRBcmlhR3JvdXBzKSB7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAnYXJpYS1sYWJlbCcsIHRoaXMubGFiZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbCkge1xuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKTtcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJywgdGhpcy5sYWJlbCk7XG4gICAgICAgIG9wdGlvbi5yZXF1ZXN0VXBkYXRlPy4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbi5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtZ3JvdXAtbGFiZWwnKTtcbiAgICAgICAgb3B0aW9uLnJlcXVlc3RVcGRhdGU/LigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcm94eURpc2FibGVkVG9PcHRpb25zKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgb3B0aW9uLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1ncm91cC1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgYXV0b2NvbXBsZXRlID0gdGhpcy5nZXRBdXRvY29tcGxldGVQYXJlbnQoKTtcbiAgICBpZiAoIWF1dG9jb21wbGV0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGF1dG9jb21wbGV0ZS50cmlnZ2VyRWxlbWVudD8udmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiBvcHQuaGlnaGxpZ2h0KHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIF9vbk5lZ2F0aXZlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMubmVnYXRpdmUgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19kaXZpZGVyXCI+XG4gICAgICAgIDxzYmItZGl2aWRlciA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfT48L3NiYi1kaXZpZGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19sYWJlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGdyb3VwX19pY29uLXNwYWNlXCI+PC9kaXY+XG4gICAgICAgIDxzcGFuPiR7dGhpcy5sYWJlbH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5faGFuZGxlU2xvdGNoYW5nZX0+PC9zbG90PlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQXV0b2NvbXBsZXRlRWxlbWVudCB9IGZyb20gJy4uLy4uL2F1dG9jb21wbGV0ZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkVsZW1lbnQgfSBmcm9tICcuLi9vcHRpb24uanMnO1xuXG5pbXBvcnQgeyBTYmJPcHRncm91cEJhc2VFbGVtZW50IH0gZnJvbSAnLi9vcHRncm91cC1iYXNlLWVsZW1lbnQuanMnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLW9wdGlvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1vcHRpb25gIGVsZW1lbnRzIHRvIHRoZSBgc2JiLW9wdGdyb3VwYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1vcHRncm91cCcpXG5leHBvcnQgY2xhc3MgU2JiT3B0R3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiT3B0Z3JvdXBCYXNlRWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25FbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItb3B0aW9uJykgPz8gW10pIGFzIFNiYk9wdGlvbkVsZW1lbnRbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBdXRvY29tcGxldGVQYXJlbnQoKTogU2JiQXV0b2NvbXBsZXRlRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZScpIHx8IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLm5lZ2F0aXZlID0gISF0aGlzLmNsb3Nlc3Q/LihgOmlzKHNiYi1hdXRvY29tcGxldGUsIHNiYi1zZWxlY3QsIHNiYi1mb3JtLWZpZWxkKVtuZWdhdGl2ZV1gKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnLCAhIXRoaXMuY2xvc2VzdCgnc2JiLXNlbGVjdFttdWx0aXBsZV0nKSk7XG4gICAgdGhpcy5fc2V0VmFyaWFudEJ5Q29udGV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFudEJ5Q29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUnKSkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtdmFyaWFudCcsICdhdXRvY29tcGxldGUnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItc2VsZWN0JykpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXZhcmlhbnQnLCAnc2VsZWN0Jyk7XG4gICAgfVxuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItb3B0Z3JvdXAnOiBTYmJPcHRHcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLE1BQU0sa0JBQWtCO0FBR2pCLElBQWUseUJBQWYsY0FBOEM7QUFBQSxFQUNuRCxrQkFBa0IsVUFBVTtBQUM5QixFQUFFO0FBQUEsRUFjTyxjQUFjO0FBQ2I7QUFUQyxTQUFVLFdBQVc7QUFFckIsU0FBUSxtQkFBbUI7QUFFcEMsU0FBUSxvQkFBb0IsSUFBSSx5QkFBeUIsTUFBTSxLQUFLLG1CQUFtQjtBQU9yRixRQUFJLGlCQUFpQjtBQUNuQixVQUFJLEtBQUssbUJBQW1CO0FBQzFCLGFBQUssa0JBQWtCLEtBQUssTUFBTyxLQUFLLG1CQUFtQixlQUFnQjtBQUFBLE1BQUEsT0FDdEU7QUFDTCxhQUFLLG1CQUFtQjtBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUVnQixvQkFBMEI7O0FBQ3hDLFVBQU0sa0JBQWtCO0FBQ3hCLGVBQUssc0JBQUwsbUJBQXdCO0FBQ3hCLFNBQUssdUJBQXVCO0FBQ3ZCLFNBQUEsa0JBQWtCLFFBQVEsTUFBTTtBQUFBLE1BQ25DLFlBQVk7QUFBQSxNQUNaLGlCQUFpQixDQUFDLGVBQWU7QUFBQSxJQUFBLENBQ2xDO0FBRUQsU0FBSywwQkFBMEI7QUFBQSxFQUNqQztBQUFBLEVBRW1CLFdBQVcsbUJBQStDO0FBQzNFLFVBQU0sV0FBVyxpQkFBaUI7QUFFOUIsUUFBQSxrQkFBa0IsSUFBSSxVQUFVLEdBQUc7QUFDakMsVUFBQSxDQUFDLEtBQUssa0JBQWtCO0FBQzFCLGFBQUssYUFBYSxpQkFBaUIs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
|
|
@@ -11,7 +11,12 @@ export declare abstract class SbbOptionBaseElement extends SbbOptionBaseElement_
|
|
|
11
11
|
*/
|
|
12
12
|
set value(value: string);
|
|
13
13
|
get value(): string;
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Whether the option is currently active.
|
|
16
|
+
* TODO: remove with next major version.
|
|
17
|
+
* @deprecated
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
15
20
|
active?: boolean;
|
|
16
21
|
/** Whether the option is selected. */
|
|
17
22
|
set selected(value: boolean);
|
|
@@ -31,9 +36,6 @@ export declare abstract class SbbOptionBaseElement extends SbbOptionBaseElement_
|
|
|
31
36
|
private _highlightString;
|
|
32
37
|
private _inertAriaGroups;
|
|
33
38
|
private _abort;
|
|
34
|
-
protected abstract selectByClick(event: MouseEvent): void;
|
|
35
|
-
protected abstract setAttributeFromParent(): void;
|
|
36
|
-
protected updateDisableHighlight(disabled: boolean): void;
|
|
37
39
|
/** MutationObserver on data attributes. */
|
|
38
40
|
private _optionAttributeObserver;
|
|
39
41
|
constructor();
|
|
@@ -52,6 +54,14 @@ export declare abstract class SbbOptionBaseElement extends SbbOptionBaseElement_
|
|
|
52
54
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
53
55
|
protected firstUpdated(changedProperties: PropertyValues<this>): void;
|
|
54
56
|
disconnectedCallback(): void;
|
|
57
|
+
protected abstract selectByClick(event: MouseEvent): void;
|
|
58
|
+
protected abstract setAttributeFromParent(): void;
|
|
59
|
+
protected updateDisableHighlight(disabled: boolean): void;
|
|
60
|
+
/**
|
|
61
|
+
* Whether the option is currently active.
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
setActive(value: boolean): void;
|
|
55
65
|
protected init(): void;
|
|
56
66
|
protected updateAriaDisabled(): void;
|
|
57
67
|
private _updateAriaSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,6BAA6B,CAAC;;AAgBrC,8BACsB,oBAAqB,SAAQ,yBAElD;IACC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED
|
|
1
|
+
{"version":3,"file":"option-base-element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/option/option/option-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,6BAA6B,CAAC;;AAgBrC,8BACsB,oBAAqB,SAAQ,yBAElD;IACC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;;;OAKG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACgD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEpE,sCAAsC;IACtC,IACW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAGjC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,sDAAsD;IACtD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IAEjD,iDAAiD;IACjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;IAEhD,4CAA4C;IACnC,SAAS,CAAC,QAAQ,UAAS;IAEpC,yFAAyF;IAChF,SAAS,CAAC,iBAAiB,UAAS;IAEpC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAElC,0CAA0C;IACjC,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAS;IAE1D,4CAA4C;IACnC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,MAAM,CAAyC;IAEvD,2CAA2C;IAC3C,OAAO,CAAC,wBAAwB,CAE9B;;IAcc,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAMP;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACI,6BAA6B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ7C,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cASzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAK5C,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IACzD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,IAAI;IAEjD,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC,SAAS,CAAC,IAAI,IAAI,IAAI;IAUtB,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAQpC,OAAO,CAAC,mBAAmB;IAI3B,yEAAyE;IACzE,SAAS,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI;IAWzE,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuBtC,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAwB/C,SAAS,CAAC,UAAU,IAAI,cAAc;IAItC,SAAS,CAAC,WAAW,IAAI,cAAc,GAAG,OAAO,OAAO;IAIxD,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;cAIpC,MAAM,IAAI,cAAc;CAmB5C"}
|
|
@@ -59,10 +59,6 @@ let SbbOptionBaseElement = class extends SbbDisabledMixin(
|
|
|
59
59
|
get selected() {
|
|
60
60
|
return this.hasAttribute("selected");
|
|
61
61
|
}
|
|
62
|
-
updateDisableHighlight(disabled) {
|
|
63
|
-
this.disableLabelHighlight = disabled;
|
|
64
|
-
this.toggleAttribute("data-disable-highlight", disabled);
|
|
65
|
-
}
|
|
66
62
|
attributeChangedCallback(name, old, value) {
|
|
67
63
|
if (name !== "value" || old !== value) {
|
|
68
64
|
super.attributeChangedCallback(name, old, value);
|
|
@@ -110,6 +106,17 @@ let SbbOptionBaseElement = class extends SbbDisabledMixin(
|
|
|
110
106
|
super.disconnectedCallback();
|
|
111
107
|
this._optionAttributeObserver.disconnect();
|
|
112
108
|
}
|
|
109
|
+
updateDisableHighlight(disabled) {
|
|
110
|
+
this.disableLabelHighlight = disabled;
|
|
111
|
+
this.toggleAttribute("data-disable-highlight", disabled);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Whether the option is currently active.
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
setActive(value) {
|
|
118
|
+
this.toggleAttribute("data-active", value);
|
|
119
|
+
}
|
|
113
120
|
init() {
|
|
114
121
|
this.setAttributeFromParent();
|
|
115
122
|
this._optionAttributeObserver.observe(this, optionObserverConfig);
|
|
@@ -227,20 +234,7 @@ __decorateClass$1([
|
|
|
227
234
|
SbbOptionBaseElement = __decorateClass$1([
|
|
228
235
|
slotState()
|
|
229
236
|
], SbbOptionBaseElement);
|
|
230
|
-
const style = css`/**
|
|
231
|
-
* Better font rendering (on OS X)
|
|
232
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
233
|
-
*
|
|
234
|
-
* Usage:
|
|
235
|
-
*
|
|
236
|
-
* .var_dark_on_light {
|
|
237
|
-
* @include font-smoothing;
|
|
238
|
-
* }
|
|
239
|
-
* .var_light_on_dark {
|
|
240
|
-
* @include font-smoothing-reset;
|
|
241
|
-
* }
|
|
242
|
-
*/
|
|
243
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
237
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
244
238
|
/*
|
|
245
239
|
* SBB table mixin
|
|
246
240
|
* Notes:
|
|
@@ -280,7 +274,7 @@ const style = css`/**
|
|
|
280
274
|
--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
|
|
281
275
|
}
|
|
282
276
|
|
|
283
|
-
:host([active]) {
|
|
277
|
+
:host([data-active]) {
|
|
284
278
|
--sbb-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));
|
|
285
279
|
}
|
|
286
280
|
|
|
@@ -348,7 +342,7 @@ const style = css`/**
|
|
|
348
342
|
-webkit-tap-highlight-color: transparent;
|
|
349
343
|
-webkit-text-fill-color: var(--sbb-option-color);
|
|
350
344
|
}
|
|
351
|
-
:host([active]) .sbb-option {
|
|
345
|
+
:host([data-active]) .sbb-option {
|
|
352
346
|
outline-offset: var(--sbb-focus-outline-offset);
|
|
353
347
|
outline: var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);
|
|
354
348
|
border-radius: var(--sbb-option-border-radius);
|
|
@@ -511,4 +505,4 @@ export {
|
|
|
511
505
|
SbbOptionBaseElement,
|
|
512
506
|
SbbOptionElement
|
|
513
507
|
};
|
|
514
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0FuZHJvaWQsIGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluLCBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlciB9IGZyb20gJy4uLy4uL2NvcmUvb2JzZXJ2ZXJzLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhbiBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBjb21wb25lbnQgaXMgbmVzdGVkIGluIGFuIG9wdGlvbiBncm91cCAqL1xuY29uc3Qgb3B0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGF0YS1ncm91cC1kaXNhYmxlZCcsICdkYXRhLW5lZ2F0aXZlJ10sXG59O1xuXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcHRpb25CYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzLCBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgYWN0aXZlPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCB2YWx1ZSk7XG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJyk7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy4gKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI7XG5cbiAgLyoqIFdoZXRoZXIgdG8gYXBwbHkgdGhlIG5lZ2F0aXZlIHN0eWxpbmcgKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIG5lZ2F0aXZlID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBtdXN0IGJlIHNldCBkaXNhYmxlZCBkdWUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHNiYi1vcHRncm91cC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGRpc2FibGVkRnJvbUdyb3VwID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBoaWdobGlnaHQgb2YgdGhlIGxhYmVsLiAqL1xuICBAc3RhdGUoKSBwcm90ZWN0ZWQgZGlzYWJsZUxhYmVsSGlnaGxpZ2h0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBwb3J0aW9uIG9mIHRoZSBoaWdobGlnaHRlZCBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfaGlnaGxpZ2h0U3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9pbmVydEFyaWFHcm91cHMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRGlzYWJsZUhpZ2hsaWdodChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID0gZGlzYWJsZWQ7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtZGlzYWJsZS1oaWdobGlnaHQnLCBkaXNhYmxlZCk7XG4gIH1cblxuICAvKiogTXV0YXRpb25PYnNlcnZlciBvbiBkYXRhIGF0dHJpYnV0ZXMuICovXG4gIHByaXZhdGUgX29wdGlvbkF0dHJpYnV0ZU9ic2VydmVyID0gbmV3IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdCkgPT5cbiAgICB0aGlzLm9uT3B0aW9uQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmIChpbmVydEFyaWFHcm91cHMpIHtcbiAgICAgIGlmICh0aGlzLmh5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5faW5lcnRBcmlhR3JvdXBzID0gaW5lcnRBcmlhR3JvdXBzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCBvbGQgIT09IHZhbHVlKSB7XG4gICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZ2hsaWdodCB0aGUgbGFiZWwgb2YgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGhpZ2hsaWdodGVkIHBvcnRpb24gb2YgdGhlIGxhYmVsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGhpZ2hsaWdodCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5faGlnaGxpZ2h0U3RyaW5nID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLmlkIHx8PSBgJHt0aGlzLm9wdGlvbklkfS0ke25leHRJZCsrfWA7XG4gICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLmluaXQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ3RhYmluZGV4JywgaXNBbmRyb2lkICYmICF0aGlzLmRpc2FibGVkICYmIDApO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvLyBJbml0IGZpcnN0IHNlbGVjdCBzdGF0ZSBiZWNhdXNlIGZhbHNlIHdvdWxkIG5vdCBjYWxsIHNldHRlciBvZiBzZWxlY3RlZCBwcm9wZXJ0eS5cbiAgICB0aGlzLl91cGRhdGVBcmlhU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX29wdGlvbkF0dHJpYnV0ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpO1xuICAgIHRoaXMuX29wdGlvbkF0dHJpYnV0ZU9ic2VydmVyLm9ic2VydmUodGhpcywgb3B0aW9uT2JzZXJ2ZXJDb25maWcpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMuc2VsZWN0QnlDbGljayhlKSwge1xuICAgICAgc2lnbmFsLFxuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVBcmlhRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICB0aGlzLFxuICAgICAgJ2FyaWEtZGlzYWJsZWQnLFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwID8gJ3RydWUnIDogbnVsbCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQXJpYVNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgYCR7dGhpcy5zZWxlY3RlZH1gKTtcbiAgfVxuXG4gIC8qKiBPYnNlcnZlIGNoYW5nZXMgb24gZGF0YSBhdHRyaWJ1dGVzIGFuZCBzZXQgdGhlIGFwcHJvcHJpYXRlIHZhbHVlcy4gKi9cbiAgcHJvdGVjdGVkIG9uT3B0aW9uQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XG4gICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2RhdGEtZ3JvdXAtZGlzYWJsZWQnKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1ncm91cC1kaXNhYmxlZCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgICAgfSBlbHNlIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGF0YS1uZWdhdGl2ZScpIHtcbiAgICAgICAgdGhpcy5uZWdhdGl2ZSA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRIaWdobGlnaHRlZExhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuX2hpZ2hsaWdodFN0cmluZyB8fCAhdGhpcy5faGlnaGxpZ2h0U3RyaW5nLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hJbmRleCA9IHRoaXMubGFiZWwhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLl9oaWdobGlnaHRTdHJpbmcudG9Mb3dlckNhc2UoKSk7XG5cbiAgICBpZiAobWF0Y2hJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBodG1sYCR7dGhpcy5sYWJlbH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZygwLCBtYXRjaEluZGV4KTtcbiAgICBjb25zdCBoaWdobGlnaHRlZCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhcbiAgICAgIG1hdGNoSW5kZXgsXG4gICAgICBtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCxcbiAgICApO1xuICAgIGNvbnN0IHBvc3RmaXggPSB0aGlzLmxhYmVsIS5zdWJzdHJpbmcobWF0Y2hJbmRleCArIHRoaXMuX2hpZ2hsaWdodFN0cmluZy5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3ByZWZpeH08L3NwYW4+PHNwYW4+JHtoaWdobGlnaHRlZH08L3NwYW5cbiAgICAgID48c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsLS1oaWdobGlnaHRcIj4ke3Bvc3RmaXh9PC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySWNvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9faWNvblwiPiAke3RoaXMucmVuZGVySWNvblNsb3QoKX0gPC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0ID8gdGhpcy5nZXRIaWdobGlnaHRlZExhYmVsKCkgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlclRpY2soKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3B0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25cIj5cbiAgICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZX0+PC9zbG90PlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgICAgICAke3RoaXMuX2luZXJ0QXJpYUdyb3VwcyAmJiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpXG4gICAgICAgICAgICAgID8gaHRtbGAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICAgICAgICAgICAgICAoJHt0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1ncm91cC1sYWJlbCcpfSk8L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJUaWNrKCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcblxuaW1wb3J0IHsgU2JiT3B0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuL29wdGlvbi1iYXNlLWVsZW1lbnQuanMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vb3B0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5pbXBvcnQgJy4uLy4uL3Zpc3VhbC1jaGVja2JveC5qcyc7XG5cbmV4cG9ydCB0eXBlIFNiYk9wdGlvblZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgbnVsbDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBvbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLXNlbGVjdGAgb3IgYHNiYi1hdXRvY29tcGxldGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG9wdGlvbiBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IG9wdGlvblNlbGVjdGlvbkNoYW5nZSAtIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBvcHRpb25TZWxlY3RlZCAtIEVtaXRzIHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBieSB1c2VyLlxuICogQGNzc3Byb3AgWy0tc2JiLW9wdGlvbi1pY29uLWNvbnRhaW5lci1kaXNwbGF5PW5vbmVdIC0gQ2FuIGJlIHVzZWQgdG8gcmVzZXJ2ZSBzcGFjZSBldmVuXG4gKiB3aGVuIHByZXNlcnZlLWljb24tc3BhY2Ugb24gYXV0b2NvbXBsZXRlIGlzIG5vdCBzZXQgb3IgaWNvbk5hbWUgaXMgbm90IHNldC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1vcHRpb24nKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgcm9sZTogJ29wdGlvbicsXG59KVxuZXhwb3J0IGNsYXNzIFNiYk9wdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJPcHRpb25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzZWxlY3Rpb25DaGFuZ2U6ICdvcHRpb25TZWxlY3Rpb25DaGFuZ2UnLFxuICAgIG9wdGlvblNlbGVjdGVkOiAnb3B0aW9uU2VsZWN0ZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByb3RlY3RlZCBvcHRpb25JZCA9IGBzYmItb3B0aW9uYDtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy4gKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wdGlvbkVsZW1lbnQuZXZlbnRzLnNlbGVjdGlvbkNoYW5nZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wdGlvbkVsZW1lbnQuZXZlbnRzLm9wdGlvblNlbGVjdGVkLFxuICApO1xuXG4gIHByaXZhdGUgc2V0IF92YXJpYW50KHN0YXRlOiBTYmJPcHRpb25WYXJpYW50KSB7XG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS12YXJpYW50Jywgc3RhdGUpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldCBfdmFyaWFudCgpOiBTYmJPcHRpb25WYXJpYW50IHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFyaWFudCcpIGFzIFNiYk9wdGlvblZhcmlhbnQ7XG4gIH1cblxuICBwcml2YXRlIHNldCBfaXNNdWx0aXBsZShpc011bHRpcGxlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnLCBpc011bHRpcGxlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaHlkcmF0aW9uUmVxdWlyZWQgJiYgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudEdyb3VwID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1vcHRncm91cCcpO1xuICAgIGlmIChwYXJlbnRHcm91cCkge1xuICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHBhcmVudEdyb3VwLmRpc2FibGVkO1xuICAgICAgdGhpcy51cGRhdGVBcmlhRGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm5lZ2F0aXZlID0gISF0aGlzLmNsb3Nlc3Q/LihcbiAgICAgIC8vIDppcygpIHNlbGVjdG9yIG5vdCBwb3NzaWJsZSBkdWUgdG8gdGVzdCBlbnZpcm9ubWVudFxuICAgICAgYHNiYi1hdXRvY29tcGxldGVbbmVnYXRpdmVdLHNiYi1mb3JtLWZpZWxkW25lZ2F0aXZlXWAsXG4gICAgKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1uZWdhdGl2ZScsIHRoaXMubmVnYXRpdmUpO1xuXG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtbXVsdGlwbGUnLCB0aGlzLl9pc011bHRpcGxlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCeUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlwbGUpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbighdGhpcy5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWaWFVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5pbml0KCk7XG4gICAgdGhpcy5fc2V0VmFyaWFudEJ5Q29udGV4dCgpO1xuICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgaGlnaGxpZ2h0IHN0YXRlIGJvdGggb24gc2xvdCBjaGFuZ2UsIGJ1dCBhbHNvIHdoZW4gY29ubmVjdGluZ1xuICAgIC8vIHRoZSBlbGVtZW50IHRvIHRoZSBET00uIFRoZSBzbG90IGNoYW5nZSBldmVudHMgbWlnaHQgYmUgc3dhbGxvd2VkIHdoZW4gdXNpbmcgZGVjbGFyYXRpdmVcbiAgICAvLyBzaGFkb3cgRE9NIHdpdGggU1NSIG9yIGlmIHRoZSBET00gaXMgY2hhbmdlZCB3aGVuIGRpc2Nvbm5lY3RlZC5cbiAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRWYXJpYW50QnlDb250ZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsb3Nlc3Q/Lignc2JiLWF1dG9jb21wbGV0ZScpKSB7XG4gICAgICB0aGlzLl92YXJpYW50ID0gJ2F1dG9jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNsb3Nlc3Q/Lignc2JiLXNlbGVjdCcpKSB7XG4gICAgICB0aGlzLl92YXJpYW50ID0gJ3NlbGVjdCc7XG4gICAgfVxuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSAhIXRoaXMuY2xvc2VzdD8uKCdzYmItc2VsZWN0W211bHRpcGxlXScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92YXJpYW50ICE9PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgdGhpcy51cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVySWNvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8IS0tIEljb24gLS0+XG4gICAgICAkeyF0aGlzLl9pc011bHRpcGxlXG4gICAgICAgID8gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDwhLS0gQ2hlY2tib3ggLS0+XG4gICAgICAke3RoaXMuX2lzTXVsdGlwbGVcbiAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLnNlbGVjdGVkfVxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXB9XG4gICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgIGBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnQgPT09ICdhdXRvY29tcGxldGUnICYmIHRoaXMubGFiZWwgJiYgIXRoaXMuZGlzYWJsZUxhYmVsSGlnaGxpZ2h0XG4gICAgICA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGljaygpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFudCA9PT0gJ3NlbGVjdCcgJiYgIXRoaXMuX2lzTXVsdGlwbGUgJiYgdGhpcy5zZWxlY3RlZFxuICAgICAgPyBodG1sYDxzYmItaWNvbiBuYW1lPVwidGljay1zbWFsbFwiPjwvc2JiLWljb24+YFxuICAgICAgOiBub3RoaW5nO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItb3B0aW9uJzogU2JiT3B0aW9uRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIG9wdGlvblNlbGVjdGlvbkNoYW5nZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiLCJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsSUFBSSxTQUFTO0FBT2IsTUFBTSxrQkFBa0I7QUFHeEIsTUFBTSx1QkFBNkM7QUFBQSxFQUNqRCxpQkFBaUIsQ0FBQyx1QkFBdUIsZUFBZTtBQUMxRDtBQUdPLElBQWUsdUJBQWYsY0FBNEM7QUFBQSxFQUNqRCxpQkFBaUIsa0JBQWtCLFVBQVUsQ0FBQztBQUNoRCxFQUFFO0FBQUEsRUFrRU8sY0FBYztBQUNiO0FBOUJDLFNBQVUsV0FBVztBQUdyQixTQUFV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
|
|
508
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL29wdGlvbi9vcHRpb24vb3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0FuZHJvaWQsIGlzU2FmYXJpLCBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluLCBTYmJIeWRyYXRpb25NaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB7IEFnbm9zdGljTXV0YXRpb25PYnNlcnZlciB9IGZyb20gJy4uLy4uL2NvcmUvb2JzZXJ2ZXJzLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhbiBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBjb21wb25lbnQgaXMgbmVzdGVkIGluIGFuIG9wdGlvbiBncm91cCAqL1xuY29uc3Qgb3B0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBhdHRyaWJ1dGVGaWx0ZXI6IFsnZGF0YS1ncm91cC1kaXNhYmxlZCcsICdkYXRhLW5lZ2F0aXZlJ10sXG59O1xuXG5Ac2xvdFN0YXRlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcHRpb25CYXNlRWxlbWVudCBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzLCBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgYCR7dmFsdWV9YCk7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS5cbiAgICogVE9ETzogcmVtb3ZlIHdpdGggbmV4dCBtYWpvciB2ZXJzaW9uLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGFjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wdGlvbiBzZWxlY3Rpb24gc3RhdHVzIGNoYW5nZXMuICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjtcblxuICAvKiogRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBuZWdhdGl2ZSBzdHlsaW5nICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBuZWdhdGl2ZSA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgbXVzdCBiZSBzZXQgZGlzYWJsZWQgZHVlIGRpc2FibGVkIGF0dHJpYnV0ZSBvbiBzYmItb3B0Z3JvdXAuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBkaXNhYmxlZEZyb21Hcm91cCA9IGZhbHNlO1xuXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBsYWJlbD86IHN0cmluZztcblxuICAvKiogRGlzYWJsZSB0aGUgaGlnaGxpZ2h0IG9mIHRoZSBsYWJlbC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGRpc2FibGVMYWJlbEhpZ2hsaWdodDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgcG9ydGlvbiBvZiB0aGUgaGlnaGxpZ2h0ZWQgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByaXZhdGUgX2hpZ2hsaWdodFN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBfaW5lcnRBcmlhR3JvdXBzID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIC8qKiBNdXRhdGlvbk9ic2VydmVyIG9uIGRhdGEgYXR0cmlidXRlcy4gKi9cbiAgcHJpdmF0ZSBfb3B0aW9uQXR0cmlidXRlT2JzZXJ2ZXIgPSBuZXcgQWdub3N0aWNNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0KSA9PlxuICAgIHRoaXMub25PcHRpb25BdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3QpLFxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaGlnaGxpZ2h0ZWQgcG9ydGlvbiBvZiB0aGUgbGFiZWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaGlnaGxpZ2h0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRTdHJpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGAke3RoaXMub3B0aW9uSWR9LSR7bmV4dElkKyt9YDtcbiAgICBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuaW5pdCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAndGFiaW5kZXgnLCBpc0FuZHJvaWQgJiYgIXRoaXMuZGlzYWJsZWQgJiYgMCk7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8vIEluaXQgZmlyc3Qgc2VsZWN0IHN0YXRlIGJlY2F1c2UgZmFsc2Ugd291bGQgbm90IGNhbGwgc2V0dGVyIG9mIHNlbGVjdGVkIHByb3BlcnR5LlxuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fb3B0aW9uQXR0cmlidXRlT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0QXR0cmlidXRlRnJvbVBhcmVudCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVEaXNhYmxlSGlnaGxpZ2h0KGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlLWhpZ2hsaWdodCcsIGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgY3VycmVudGx5IGFjdGl2ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0QWN0aXZlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGVGcm9tUGFyZW50KCk7XG4gICAgdGhpcy5fb3B0aW9uQXR0cmlidXRlT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCBvcHRpb25PYnNlcnZlckNvbmZpZyk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5zZWxlY3RCeUNsaWNrKGUpLCB7XG4gICAgICBzaWduYWwsXG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUFyaWFEaXNhYmxlZCgpOiB2b2lkIHtcbiAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZShcbiAgICAgIHRoaXMsXG4gICAgICAnYXJpYS1kaXNhYmxlZCcsXG4gICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXAgPyAndHJ1ZScgOiBudWxsLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBgJHt0aGlzLnNlbGVjdGVkfWApO1xuICB9XG5cbiAgLyoqIE9ic2VydmUgY2hhbmdlcyBvbiBkYXRhIGF0dHJpYnV0ZXMgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgdmFsdWVzLiAqL1xuICBwcm90ZWN0ZWQgb25PcHRpb25BdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3Q6IE11dGF0aW9uUmVjb3JkW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcbiAgICAgIGlmIChtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lID09PSAnZGF0YS1ncm91cC1kaXNhYmxlZCcpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA9IHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWdyb3VwLWRpc2FibGVkJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdkYXRhLW5lZ2F0aXZlJykge1xuICAgICAgICB0aGlzLm5lZ2F0aXZlID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtbmVnYXRpdmUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qgc2xvdE5vZGVzID0gQXJyYXkuZnJvbSh0aGlzLmNoaWxkTm9kZXMgPz8gW10pLmZpbHRlcihcbiAgICAgIChuKSA9PiBuLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSAmJiAoIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5zbG90ICE9PSAnaWNvbicpLFxuICAgICk7XG4gICAgY29uc3QgbGFiZWxOb2RlcyA9IHNsb3ROb2Rlcy5maWx0ZXIoKGVsKSA9PiBlbC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIGFzIFRleHRbXTtcblxuICAgIC8vIERpc2FibGUgdGhlIGhpZ2hsaWdodCBpZiB0aGUgc2xvdCBjb250YWluIG1vcmUgdGhhbiBqdXN0IHRleHQgbm9kZXMuXG4gICAgLy8gV2UgbmVlZCB0byBpZ25vcmUgdGVtcGxhdGUgZWxlbWVudHMsIGFzIFNTUiBhZGRzIGEgZGVjbGFyYXRpdmUgc2hhZG93IERPTVxuICAgIC8vIGluIHRoZSBmb3JtIG9mIGEgdGVtcGxhdGUgZWxlbWVudC5cbiAgICBpZiAoXG4gICAgICBsYWJlbE5vZGVzLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgc2xvdE5vZGVzLmZpbHRlcigobikgPT4gIShuIGluc3RhbmNlb2YgRWxlbWVudCkgfHwgbi5sb2NhbE5hbWUgIT09ICd0ZW1wbGF0ZScpLmxlbmd0aCAhPT1cbiAgICAgICAgbGFiZWxOb2Rlcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsTm9kZXNcbiAgICAgIC5tYXAoKGwpID0+IGwud2hvbGVUZXh0KVxuICAgICAgLmZpbHRlcigobCkgPT4gbC50cmltKCkpXG4gICAgICAuam9pbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhpZ2hsaWdodGVkTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5faGlnaGxpZ2h0U3RyaW5nIHx8ICF0aGlzLl9oaWdobGlnaHRTdHJpbmcudHJpbSgpKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEluZGV4ID0gdGhpcy5sYWJlbCEudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX2hpZ2hsaWdodFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGlmIChtYXRjaEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKDAsIG1hdGNoSW5kZXgpO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKFxuICAgICAgbWF0Y2hJbmRleCxcbiAgICAgIG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgcG9zdGZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cHJlZml4fTwvc3Bhbj48c3Bhbj4ke2hpZ2hsaWdodGVkfTwvc3BhblxuICAgICAgPjxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cG9zdGZpeH08L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCAmJiAhdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHQgPyB0aGlzLmdldEhpZ2hsaWdodGVkTGFiZWwoKSA6IG5vdGhpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyVGljaygpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1vcHRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvblwiPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJJY29uKCl9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlfT48L3Nsb3Q+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgICAgICR7dGhpcy5faW5lcnRBcmlhR3JvdXBzICYmIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJylcbiAgICAgICAgICAgICAgPyBodG1sYCA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICAgICAgICAgICgke3RoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWdyb3VwLWxhYmVsJyl9KTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgICAgID5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRpY2soKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBub3RoaW5nIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuXG5pbXBvcnQgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vb3B0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9vcHRpb24uc2Nzcz9saXQmaW5saW5lJztcbmltcG9ydCAnLi4vLi4vdmlzdWFsLWNoZWNrYm94LmpzJztcblxuZXhwb3J0IHR5cGUgU2JiT3B0aW9uVmFyaWFudCA9ICdhdXRvY29tcGxldGUnIHwgJ3NlbGVjdCcgfCBudWxsO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIG9uIG9wdGlvbiBpdGVtIHdoaWNoIGNhbiBiZSB1c2VkIGluIGBzYmItc2VsZWN0YCBvciBgc2JiLWF1dG9jb21wbGV0ZWAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgb3B0aW9uIGxhYmVsLlxuICogQHNsb3QgaWNvbiAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBpY29uLiBJZiBgaWNvbi1uYW1lYCBpcyBzZXQsIGEgc2JiLWljb24gd2lsbCBiZSB1c2VkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gb3B0aW9uU2VsZWN0aW9uQ2hhbmdlIC0gRW1pdHMgd2hlbiB0aGUgb3B0aW9uIHNlbGVjdGlvbiBzdGF0dXMgY2hhbmdlcy5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IG9wdGlvblNlbGVjdGVkIC0gRW1pdHMgd2hlbiBhbiBvcHRpb24gd2FzIHNlbGVjdGVkIGJ5IHVzZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItb3B0aW9uLWljb24tY29udGFpbmVyLWRpc3BsYXk9bm9uZV0gLSBDYW4gYmUgdXNlZCB0byByZXNlcnZlIHNwYWNlIGV2ZW5cbiAqIHdoZW4gcHJlc2VydmUtaWNvbi1zcGFjZSBvbiBhdXRvY29tcGxldGUgaXMgbm90IHNldCBvciBpY29uTmFtZSBpcyBub3Qgc2V0LlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLW9wdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAnb3B0aW9uJyxcbn0pXG5leHBvcnQgY2xhc3MgU2JiT3B0aW9uRWxlbWVudCBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGlvbkNoYW5nZTogJ29wdGlvblNlbGVjdGlvbkNoYW5nZScsXG4gICAgb3B0aW9uU2VsZWN0ZWQ6ICdvcHRpb25TZWxlY3RlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJvdGVjdGVkIG9wdGlvbklkID0gYHNiYi1vcHRpb25gO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLiAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3B0aW9uRWxlbWVudC5ldmVudHMuc2VsZWN0aW9uQ2hhbmdlLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIG9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3B0aW9uRWxlbWVudC5ldmVudHMub3B0aW9uU2VsZWN0ZWQsXG4gICk7XG5cbiAgcHJpdmF0ZSBzZXQgX3ZhcmlhbnQoc3RhdGU6IFNiYk9wdGlvblZhcmlhbnQpIHtcbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXZhcmlhbnQnLCBzdGF0ZSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF92YXJpYW50KCk6IFNiYk9wdGlvblZhcmlhbnQge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS12YXJpYW50JykgYXMgU2JiT3B0aW9uVmFyaWFudDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IF9pc011bHRpcGxlKGlzTXVsdGlwbGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1tdWx0aXBsZScsIGlzTXVsdGlwbGUpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9pc011bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5oeWRyYXRpb25SZXF1aXJlZCAmJiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1tdWx0aXBsZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEF0dHJpYnV0ZUZyb21QYXJlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLW9wdGdyb3VwJyk7XG4gICAgaWYgKHBhcmVudEdyb3VwKSB7XG4gICAgICB0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gcGFyZW50R3JvdXAuZGlzYWJsZWQ7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWFEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHRoaXMubmVnYXRpdmUgPSAhIXRoaXMuY2xvc2VzdD8uKFxuICAgICAgLy8gOmlzKCkgc2VsZWN0b3Igbm90IHBvc3NpYmxlIGR1ZSB0byB0ZXN0IGVudmlyb25tZW50XG4gICAgICBgc2JiLWF1dG9jb21wbGV0ZVtuZWdhdGl2ZV0sc2JiLWZvcm0tZmllbGRbbmVnYXRpdmVdYCxcbiAgICApO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLW5lZ2F0aXZlJywgdGhpcy5uZWdhdGl2ZSk7XG5cbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1tdWx0aXBsZScsIHRoaXMuX2lzTXVsdGlwbGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNNdWx0aXBsZSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkVmlhVXNlckludGVyYWN0aW9uKCF0aGlzLnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFZpYVVzZXJJbnRlcmFjdGlvbih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLmluaXQoKTtcbiAgICB0aGlzLl9zZXRWYXJpYW50QnlDb250ZXh0KCk7XG4gICAgLy8gV2UgbmVlZCB0byBjaGVjayBoaWdobGlnaHQgc3RhdGUgYm90aCBvbiBzbG90IGNoYW5nZSwgYnV0IGFsc28gd2hlbiBjb25uZWN0aW5nXG4gICAgLy8gdGhlIGVsZW1lbnQgdG8gdGhlIERPTS4gVGhlIHNsb3QgY2hhbmdlIGV2ZW50cyBtaWdodCBiZSBzd2FsbG93ZWQgd2hlbiB1c2luZyBkZWNsYXJhdGl2ZVxuICAgIC8vIHNoYWRvdyBET00gd2l0aCBTU1Igb3IgaWYgdGhlIERPTSBpcyBjaGFuZ2VkIHdoZW4gZGlzY29ubmVjdGVkLlxuICAgIHRoaXMuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFZhcmlhbnRCeUNvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItYXV0b2NvbXBsZXRlJykpIHtcbiAgICAgIHRoaXMuX3ZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2xvc2VzdD8uKCdzYmItc2VsZWN0JykpIHtcbiAgICAgIHRoaXMuX3ZhcmlhbnQgPSAnc2VsZWN0JztcbiAgICB9XG4gICAgdGhpcy5faXNNdWx0aXBsZSA9ICEhdGhpcy5jbG9zZXN0Py4oJ3NiYi1zZWxlY3RbbXVsdGlwbGVdJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnQgIT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3VwZXIuaGFuZGxlSGlnaGxpZ2h0U3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDwhLS0gSWNvbiAtLT5cbiAgICAgICR7IXRoaXMuX2lzTXVsdGlwbGVcbiAgICAgICAgPyBodG1sYCA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cblxuICAgICAgPCEtLSBDaGVja2JveCAtLT5cbiAgICAgICR7dGhpcy5faXNNdWx0aXBsZVxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8c2JiLXZpc3VhbC1jaGVja2JveFxuICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuc2VsZWN0ZWR9XG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cH1cbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgYFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFyaWFudCA9PT0gJ2F1dG9jb21wbGV0ZScgJiYgdGhpcy5sYWJlbCAmJiAhdGhpcy5kaXNhYmxlTGFiZWxIaWdobGlnaHRcbiAgICAgID8gdGhpcy5nZXRIaWdobGlnaHRlZExhYmVsKClcbiAgICAgIDogbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLl92YXJpYW50ID09PSAnc2VsZWN0JyAmJiAhdGhpcy5faXNNdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkXG4gICAgICA/IGh0bWxgPHNiYi1pY29uIG5hbWU9XCJ0aWNrLXNtYWxsXCI+PC9zYmItaWNvbj5gXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vcHRpb24nOiBTYmJPcHRpb25FbGVtZW50O1xuICB9XG5cbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgb3B0aW9uU2VsZWN0aW9uQ2hhbmdlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpb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
|
|
@@ -24,9 +24,9 @@ export declare abstract class SbbOverlayBaseElement extends SbbOverlayBaseElemen
|
|
|
24
24
|
protected ariaLiveRef: SbbScreenReaderOnlyElement;
|
|
25
25
|
protected language: SbbLanguageController;
|
|
26
26
|
protected inertController: SbbInertController;
|
|
27
|
+
protected abstract closeAttribute: string;
|
|
27
28
|
protected abstract onOverlayAnimationEnd(event: AnimationEvent): void;
|
|
28
29
|
protected abstract setOverlayFocus(): void;
|
|
29
|
-
protected abstract closeAttribute: string;
|
|
30
30
|
/** Closes the component. */
|
|
31
31
|
close(result?: any, target?: HTMLElement): any;
|
|
32
32
|
connectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAAsB,qBAAsB,SAAQ,0BAAyC;IAC3F,kHAAkH;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,eAAe,qBAAgC;IAEzD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAe,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,eAAO,MAAM,WAAW,EAAE,qBAAqB,EAAO,CAAC;;AAEvD,8BAAsB,qBAAsB,SAAQ,0BAAyC;IAC3F,kHAAkH;IAC3D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9F,8CAA8C;IAC9C,UAAmB,QAAQ,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAGpE;IAGF,SAAS,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAC3C,SAAS,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,iBAAiB,EAAG,eAAe,CAAC;IAC9C,SAAS,CAAC,qBAAqB,EAAG,eAAe,CAAC;IAClD,SAAS,CAAC,YAAY,kBAAyB;IAC/C,SAAS,CAAC,aAAa,mBAA0B;IACjD,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,iBAAiB,UAAS;IACpC,SAAS,CAAC,WAAW,EAAG,0BAA0B,CAAC;IACnD,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,eAAe,qBAAgC;IAEzD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IACrE,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAE1C,4BAA4B;IACrB,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG;IAmBrC,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAS5C,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAkBzC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWpD,SAAS,CAAC,kCAAkC,IAAI,IAAI;IAKpD,SAAS,CAAC,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoBzD,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAI1C,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CAStD"}
|
package/development/overlay.js
CHANGED
|
@@ -122,20 +122,7 @@ __decorateClass$1([
|
|
|
122
122
|
property({ attribute: "accessibility-label" })
|
|
123
123
|
], _SbbOverlayBaseElement.prototype, "accessibilityLabel");
|
|
124
124
|
let SbbOverlayBaseElement = _SbbOverlayBaseElement;
|
|
125
|
-
const style = css`/**
|
|
126
|
-
* Better font rendering (on OS X)
|
|
127
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
128
|
-
*
|
|
129
|
-
* Usage:
|
|
130
|
-
*
|
|
131
|
-
* .var_dark_on_light {
|
|
132
|
-
* @include font-smoothing;
|
|
133
|
-
* }
|
|
134
|
-
* .var_light_on_dark {
|
|
135
|
-
* @include font-smoothing-reset;
|
|
136
|
-
* }
|
|
137
|
-
*/
|
|
138
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
125
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
139
126
|
/*
|
|
140
127
|
* SBB table mixin
|
|
141
128
|
* Notes:
|
|
@@ -158,9 +145,7 @@ const style = css`/**
|
|
|
158
145
|
--sbb-overlay-background-color: var(--sbb-color-milk);
|
|
159
146
|
--sbb-overlay-height: 100%;
|
|
160
147
|
--sbb-overlay-inset: 0 auto auto 0;
|
|
161
|
-
--sbb-overlay-padding-block: calc(
|
|
162
|
-
var(--sbb-spacing-responsive-xxl) + var(--sbb-spacing-responsive-l)
|
|
163
|
-
);
|
|
148
|
+
--sbb-overlay-padding-block: calc(var(--sbb-spacing-fixed-14x) + var(--sbb-spacing-responsive-l));
|
|
164
149
|
--sbb-overlay-animation-duration: var(
|
|
165
150
|
--sbb-disable-animation-zero-time,
|
|
166
151
|
var(--sbb-animation-duration-6x)
|
|
@@ -172,11 +157,6 @@ const style = css`/**
|
|
|
172
157
|
inset: var(--sbb-overlay-inset);
|
|
173
158
|
z-index: var(--sbb-overlay-z-index, var(--sbb-overlay-default-z-index));
|
|
174
159
|
}
|
|
175
|
-
@media (min-width: calc(64rem)) {
|
|
176
|
-
:host {
|
|
177
|
-
--sbb-overlay-padding-block: var(--sbb-spacing-responsive-xl);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
160
|
|
|
181
161
|
:host(:is([data-state=opened], [data-state=opening])) {
|
|
182
162
|
--sbb-overlay-pointer-events: all;
|
|
@@ -503,4 +483,4 @@ export {
|
|
|
503
483
|
SbbOverlayElement,
|
|
504
484
|
overlayRefs
|
|
505
485
|
};
|
|
506
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3ZlcmxheS9vdmVybGF5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzSGFuZGxlciB9IGZyb20gJy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJJbmVydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdENvbnRleHQsIFNiYlNjcm9sbEhhbmRsZXIgfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5EaWFsb2cgfSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiTmVnYXRpdmVNaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQgfSBmcm9tICcuLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIG92ZXJsYXlzLlxuZXhwb3J0IGNvbnN0IG92ZXJsYXlSZWZzOiBTYmJPdmVybGF5QmFzZUVsZW1lbnRbXSA9IFtdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3ZlcmxheUJhc2VFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSByZWxldmFudCBuZXN0ZWQgZWxlbWVudCB0byBkZXNjcmliZSB0aGUgcHVycG9zZSBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpZENsb3NlOiBFdmVudEVtaXR0ZXI8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPdmVybGF5QmFzZUVsZW1lbnQuZXZlbnRzLmRpZENsb3NlLFxuICApO1xuXG4gIC8vIFRoZSBsYXN0IGVsZW1lbnQgd2hpY2ggaGFkIGZvY3VzIGJlZm9yZSB0aGUgY29tcG9uZW50IHdhcyBvcGVuZWQuXG4gIHByb3RlY3RlZCBsYXN0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIG92ZXJsYXlDbG9zZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIG92ZXJsYXlDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgb3Blbk92ZXJsYXlDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcm90ZWN0ZWQgc2Nyb2xsSGFuZGxlciA9IG5ldyBTYmJTY3JvbGxIYW5kbGVyKCk7XG4gIHByb3RlY3RlZCByZXR1cm5WYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgYXJpYUxpdmVSZWZUb2dnbGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFyaWFMaXZlUmVmITogU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBpbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldE92ZXJsYXlGb2N1cygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZztcblxuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBjbG9zZShyZXN1bHQ/OiBhbnksIHRhcmdldD86IEhUTUxFbGVtZW50KTogYW55IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJldHVyblZhbHVlID0gcmVzdWx0O1xuICAgIHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBjb25zdCBldmVudERhdGE6IFNiYk92ZXJsYXlDbG9zZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KGV2ZW50RGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnJlbW92ZUFyaWFMaXZlUmVmQ29udGVudCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLm92ZXJsYXlDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFMaXZlUmVmID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxTYmJTY3JlZW5SZWFkZXJPbmx5RWxlbWVudD4oJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHknKSE7XG5cbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFjaE9wZW5PdmVybGF5RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIC8vIFJlbW92ZSBvdmVybGF5IGxhYmVsIGFzIHNvb24gYXMgaXQgaXMgbm90IG5lZWRlZCBhbnkgbW9yZSB0byBwcmV2ZW50IGFjY2Vzc2luZyBpdCB3aXRoIGJyb3dzZSBtb2RlLlxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk7XG4gICAgICAgIHRoaXMub25LZXlkb3duRXZlbnQoZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5yZW1vdmVBcmlhTGl2ZVJlZkNvbnRlbnQoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgb3ZlcmxheVJlZnNbb3ZlcmxheVJlZnMubGVuZ3RoIC0gMV0uY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpOiB2b2lkIHtcbiAgICBvdmVybGF5UmVmcy5zcGxpY2Uob3ZlcmxheVJlZnMuaW5kZXhPZih0aGlzIGFzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCksIDEpO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIGNvbXBvbmVudCBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgYGNsb3NlQXR0cmlidXRlYCBhdHRyaWJ1dGUuXG4gIHByb3RlY3RlZCBjbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgb3ZlcmxheUNsb3NlRWxlbWVudCA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAuZmluZChcbiAgICAgICAgKHRhcmdldCkgPT4gdGFyZ2V0Lmhhc0F0dHJpYnV0ZSh0aGlzLmNsb3NlQXR0cmlidXRlKSAmJiAhdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSxcbiAgICAgICk7XG5cbiAgICBpZiAoIW92ZXJsYXlDbG9zZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgdGFyZ2V0IGlzIGEgc3VibWlzc2lvbiBlbGVtZW50IHdpdGhpbiBhIGZvcm0gYW5kIHJldHVybiB0aGUgZm9ybSwgaWYgcHJlc2VudFxuICAgIGNvbnN0IGNsb3Nlc3RGb3JtID1cbiAgICAgIG92ZXJsYXlDbG9zZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdzdWJtaXQnXG4gICAgICAgID8gKGhvc3RDb250ZXh0KCdmb3JtJywgb3ZlcmxheUNsb3NlRWxlbWVudCkgYXMgSFRNTEZvcm1FbGVtZW50KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBvdmVybGF5UmVmc1tvdmVybGF5UmVmcy5sZW5ndGggLSAxXS5jbG9zZShjbG9zZXN0Rm9ybSwgb3ZlcmxheUNsb3NlRWxlbWVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBcmlhTGl2ZVJlZkNvbnRlbnQobGFiZWw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFMaXZlUmVmVG9nZ2xlID0gIXRoaXMuYXJpYUxpdmVSZWZUb2dnbGU7XG5cbiAgICAvLyBJZiB0aGUgdGV4dCBjb250ZW50IHJlbWFpbnMgdGhlIHNhbWUsIG9uIFZvaWNlT3ZlciB0aGUgYXJpYS1saXZlIHJlZ2lvbiBpcyBub3QgYW5ub3VuY2VkIGEgc2Vjb25kIHRpbWUuXG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFkaW5nIG9uIGV2ZXJ5IG9wZW5pbmcsIHdlIHRvZ2dsZSBhbiBpbnZpc2libGUgc3BhY2UuXG4gICAgdGhpcy5hcmlhTGl2ZVJlZi50ZXh0Q29udGVudCA9IGAke2kxOG5EaWFsb2dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0ke1xuICAgICAgbGFiZWwgPyBgLCAke2xhYmVsfWAgOiAnJ1xuICAgIH0ke3RoaXMuYXJpYUxpdmVSZWZUb2dnbGUgPyAnwqAnIDogJyd9YDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZURpYWxvZywgaTE4bkdvQmFjayB9IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5cbmltcG9ydCB7IG92ZXJsYXlSZWZzLCBTYmJPdmVybGF5QmFzZUVsZW1lbnQgfSBmcm9tICcuL292ZXJsYXktYmFzZS1lbGVtZW50LmpzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL292ZXJsYXkuc2Nzcz9saXQmaW5saW5lJztcbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vY29udGFpbmVyLmpzJztcbmltcG9ydCAnLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgY29udGVudCBmb3IgdGhlIG92ZXJsYXkuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW92ZXJsYXlgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItb3ZlcmxheWAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItb3ZlcmxheWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1vdmVybGF5YCBpcyBjbG9zZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSByZXF1ZXN0QmFja0FjdGlvbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLW92ZXJsYXknKVxuZXhwb3J0IGNsYXNzIFNiYk92ZXJsYXlFbGVtZW50IGV4dGVuZHMgU2JiT3ZlcmxheUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLy8gRklYTUUgdXNpbmcgLi4uc3VwZXIuZXZlbnRzIHJlcXVpcmVzOiBodHRwczovL2dpdGh1Yi5jb20vc2JiLWRlc2lnbi1zeXN0ZW1zL2x5bmUtY29tcG9uZW50cy9pc3N1ZXMvMjYwMFxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgICBiYWNrQ2xpY2s6ICdyZXF1ZXN0QmFja0FjdGlvbicsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIG92ZXJsYXkgY29udGVudCB0byBzdHJldGNoIHRvIGZ1bGwgd2lkdGguXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgcGFnZSBzaXplLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZTtcblxuICAvKiogV2hldGhlciBhIGJhY2sgYnV0dG9uIGlzIGRpc3BsYXllZCBuZXh0IHRvIHRoZSB0aXRsZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFjay1idXR0b24nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBiYWNrQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGJhY2sgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZyA9ICdzYmItb3ZlcmxheS1jbG9zZSc7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLiAqL1xuICBwcml2YXRlIF9iYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk92ZXJsYXlFbGVtZW50LmV2ZW50cy5iYWNrQ2xpY2ssXG4gICk7XG4gIHByaXZhdGUgX292ZXJsYXlDb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLW92ZXJsYXlfX2NvbnRlbnQnLFxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG5cbiAgICAvLyBBZGQgdGhpcyBvdmVybGF5IHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIG92ZXJsYXlSZWZzLnB1c2godGhpcyBhcyBTYmJPdmVybGF5RWxlbWVudCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgb3ZlcmxheVxuICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gIH1cblxuICAvLyBXYWl0IGZvciBvdmVybGF5IHRyYW5zaXRpb24gdG8gY29tcGxldGUuXG4gIC8vIEluIHJhcmUgY2FzZXMsIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByb3RlY3RlZCBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgICAgdGhpcy5hdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpO1xuICAgICAgdGhpcy5zZXRPdmVybGF5Rm9jdXMoKTtcbiAgICAgIC8vIFVzZSB0aW1lb3V0IHRvIHJlYWQgbGFiZWwgYWZ0ZXIgZm9jdXNlZCBlbGVtZW50XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QXJpYUxpdmVSZWZDb250ZW50KHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsKSk7XG4gICAgICB0aGlzLmZvY3VzSGFuZGxlci50cmFwKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBvdmVybGF5IGlmIG5vIG92ZXJsYXkgaXMgb3BlblxuICAgICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5kaWRDbG9zZS5lbWl0KHtcbiAgICAgICAgcmV0dXJuVmFsdWU6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50LlxuICBwcm90ZWN0ZWQgc2V0T3ZlcmxheUZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QhLmNoaWxkcmVuKS5maWx0ZXIoXG4gICAgICAgIChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50LFxuICAgICAgKSxcbiAgICApO1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHX05BTUUgPSB0aGlzLm5lZ2F0aXZlID8gJ3NiYi10cmFuc3BhcmVudC1idXR0b24nIDogJ3NiYi1zZWNvbmRhcnktYnV0dG9uJztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9XG4gICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2Nsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLW92ZXJsYXktY2xvc2VcbiAgICAgID48LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FKX0+XG4gICAgYDtcblxuICAgIGNvbnN0IGJhY2tCdXR0b24gPSBodG1sYFxuICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FKX1cbiAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fYmFja1wiXG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlCYWNrTGFiZWwgfHwgaTE4bkdvQmFja1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9iYWNrQ2xpY2suZW1pdCgpfVxuICAgICAgPjwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfT5cbiAgICBgO1xuICAgIC8qIGVzbGludC1lbmFibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGFpbmVyXCJcbiAgICAgICAgQGFuaW1hdGlvbmVuZD0keyhldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHRoaXMub25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5jbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLmJhY2tCdXR0b24gPyBiYWNrQnV0dG9uIDogbm90aGluZ30gJHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzYmItY29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgID9leHBhbmRlZD0ke3RoaXMuZXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc2JiLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgYXJpYS1saXZlPVwicG9saXRlXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vdmVybGF5JzogU2JiT3ZlcmxheUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfU2JiT3ZlcmxheUJhc2VFbGVtZW50IiwiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNPLE1BQU0sY0FBdUMsQ0FBQztBQUU5QyxNQUFlLHlCQUFmLE1BQWVBLGdDQUE4QixpQkFBaUIsdUJBQXVCLEVBQUU7QUFBQSxFQUF2RixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFLTCxTQUFtQixXQUFzRCxJQUFJO0FBQUEsTUFDM0U7QUFBQSxNQUNBQSx3QkFBc0IsT0FBTztBQUFBLElBQUE7QUFRckIsU0FBQSxlQUFlLElBQUk7QUFDbkIsU0FBQSxnQkFBZ0IsSUFBSTtBQUU5QixTQUFVLG9CQUFvQjtBQUVwQixTQUFBLFdBQVcsSUFBSSxzQkFBc0IsSUFBSTtBQUN6QyxTQUFBLGtCQUFrQixJQUFJLG1CQUFtQixJQUFJO0FBQUEsRUFBQTtBQUFBO0FBQUEsRUFPaEQsTUFBTSxRQUFjLFFBQTJCO0FBQ2hELFFBQUEsS0FBSyxVQUFVLFVBQVU7QUFDM0I7QUFBQSxJQUNGO0FBRUEsU0FBSyxjQUFjO0FBQ25CLFNBQUssc0JBQXNCO0FBQzNCLFVBQU0sWUFBeUM7QUFBQSxNQUM3QyxhQUFhLEtBQUs7QUFBQSxNQUNsQixhQUFhLEtBQUs7QUFBQSxJQUFBO0FBR3BCLFFBQUksQ0FBQyxLQUFLLFVBQVUsS0FBSyxTQUFTLEdBQUc7QUFDbkM7QUFBQSxJQUNGO0FBQ0EsU0FBSyxRQUFRO0FBQ2IsU0FBSyx5QkFBeUI7QUFBQSxFQUNoQztBQUFBLEVBRWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFDeEIs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
|
|
486
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS1iYXNlLWVsZW1lbnQudHMiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3ZlcmxheS9vdmVybGF5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkZvY3VzSGFuZGxlciB9IGZyb20gJy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJJbmVydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdENvbnRleHQsIFNiYlNjcm9sbEhhbmRsZXIgfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5EaWFsb2cgfSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiTmVnYXRpdmVNaXhpbiB9IGZyb20gJy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQgfSBmcm9tICcuLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIG92ZXJsYXlzLlxuZXhwb3J0IGNvbnN0IG92ZXJsYXlSZWZzOiBTYmJPdmVybGF5QmFzZUVsZW1lbnRbXSA9IFtdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3ZlcmxheUJhc2VFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSByZWxldmFudCBuZXN0ZWQgZWxlbWVudCB0byBkZXNjcmliZSB0aGUgcHVycG9zZSBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpZENsb3NlOiBFdmVudEVtaXR0ZXI8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPdmVybGF5QmFzZUVsZW1lbnQuZXZlbnRzLmRpZENsb3NlLFxuICApO1xuXG4gIC8vIFRoZSBsYXN0IGVsZW1lbnQgd2hpY2ggaGFkIGZvY3VzIGJlZm9yZSB0aGUgY29tcG9uZW50IHdhcyBvcGVuZWQuXG4gIHByb3RlY3RlZCBsYXN0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIG92ZXJsYXlDbG9zZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJvdGVjdGVkIG92ZXJsYXlDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgb3Blbk92ZXJsYXlDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgZm9jdXNIYW5kbGVyID0gbmV3IFNiYkZvY3VzSGFuZGxlcigpO1xuICBwcm90ZWN0ZWQgc2Nyb2xsSGFuZGxlciA9IG5ldyBTYmJTY3JvbGxIYW5kbGVyKCk7XG4gIHByb3RlY3RlZCByZXR1cm5WYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgYXJpYUxpdmVSZWZUb2dnbGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFyaWFMaXZlUmVmITogU2JiU2NyZWVuUmVhZGVyT25seUVsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBpbmVydENvbnRyb2xsZXIgPSBuZXcgU2JiSW5lcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjbG9zZUF0dHJpYnV0ZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRPdmVybGF5Rm9jdXMoKTogdm9pZDtcblxuICAvKiogQ2xvc2VzIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBjbG9zZShyZXN1bHQ/OiBhbnksIHRhcmdldD86IEhUTUxFbGVtZW50KTogYW55IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJldHVyblZhbHVlID0gcmVzdWx0O1xuICAgIHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBjb25zdCBldmVudERhdGE6IFNiYk92ZXJsYXlDbG9zZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIHJldHVyblZhbHVlOiB0aGlzLnJldHVyblZhbHVlLFxuICAgICAgY2xvc2VUYXJnZXQ6IHRoaXMub3ZlcmxheUNsb3NlRWxlbWVudCxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLndpbGxDbG9zZS5lbWl0KGV2ZW50RGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnJlbW92ZUFyaWFMaXZlUmVmQ29udGVudCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLm92ZXJsYXlDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFMaXZlUmVmID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxTYmJTY3JlZW5SZWFkZXJPbmx5RWxlbWVudD4oJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHknKSE7XG5cbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzSGFuZGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFjaE9wZW5PdmVybGF5RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIC8vIFJlbW92ZSBvdmVybGF5IGxhYmVsIGFzIHNvb24gYXMgaXQgaXMgbm90IG5lZWRlZCBhbnkgbW9yZSB0byBwcmV2ZW50IGFjY2Vzc2luZyBpdCB3aXRoIGJyb3dzZSBtb2RlLlxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2tleWRvd24nLFxuICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk7XG4gICAgICAgIHRoaXMub25LZXlkb3duRXZlbnQoZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9LFxuICAgICk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5yZW1vdmVBcmlhTGl2ZVJlZkNvbnRlbnQoKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgb3ZlcmxheVJlZnNbb3ZlcmxheVJlZnMubGVuZ3RoIC0gMV0uY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpOiB2b2lkIHtcbiAgICBvdmVybGF5UmVmcy5zcGxpY2Uob3ZlcmxheVJlZnMuaW5kZXhPZih0aGlzIGFzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCksIDEpO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIGNvbXBvbmVudCBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgYGNsb3NlQXR0cmlidXRlYCBhdHRyaWJ1dGUuXG4gIHByb3RlY3RlZCBjbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgb3ZlcmxheUNsb3NlRWxlbWVudCA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGUpOiBlIGlzIEhUTUxFbGVtZW50ID0+IGUgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAuZmluZChcbiAgICAgICAgKHRhcmdldCkgPT4gdGFyZ2V0Lmhhc0F0dHJpYnV0ZSh0aGlzLmNsb3NlQXR0cmlidXRlKSAmJiAhdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSxcbiAgICAgICk7XG5cbiAgICBpZiAoIW92ZXJsYXlDbG9zZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgdGFyZ2V0IGlzIGEgc3VibWlzc2lvbiBlbGVtZW50IHdpdGhpbiBhIGZvcm0gYW5kIHJldHVybiB0aGUgZm9ybSwgaWYgcHJlc2VudFxuICAgIGNvbnN0IGNsb3Nlc3RGb3JtID1cbiAgICAgIG92ZXJsYXlDbG9zZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdzdWJtaXQnXG4gICAgICAgID8gKGhvc3RDb250ZXh0KCdmb3JtJywgb3ZlcmxheUNsb3NlRWxlbWVudCkgYXMgSFRNTEZvcm1FbGVtZW50KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBvdmVybGF5UmVmc1tvdmVybGF5UmVmcy5sZW5ndGggLSAxXS5jbG9zZShjbG9zZXN0Rm9ybSwgb3ZlcmxheUNsb3NlRWxlbWVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBcmlhTGl2ZVJlZkNvbnRlbnQobGFiZWw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFMaXZlUmVmVG9nZ2xlID0gIXRoaXMuYXJpYUxpdmVSZWZUb2dnbGU7XG5cbiAgICAvLyBJZiB0aGUgdGV4dCBjb250ZW50IHJlbWFpbnMgdGhlIHNhbWUsIG9uIFZvaWNlT3ZlciB0aGUgYXJpYS1saXZlIHJlZ2lvbiBpcyBub3QgYW5ub3VuY2VkIGEgc2Vjb25kIHRpbWUuXG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFkaW5nIG9uIGV2ZXJ5IG9wZW5pbmcsIHdlIHRvZ2dsZSBhbiBpbnZpc2libGUgc3BhY2UuXG4gICAgdGhpcy5hcmlhTGl2ZVJlZi50ZXh0Q29udGVudCA9IGAke2kxOG5EaWFsb2dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0ke1xuICAgICAgbGFiZWwgPyBgLCAke2xhYmVsfWAgOiAnJ1xuICAgIH0ke3RoaXMuYXJpYUxpdmVSZWZUb2dnbGUgPyAnwqAnIDogJyd9YDtcbiAgfVxufVxuIiwiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCwgc2V0TW9kYWxpdHlPbk5leHRGb2N1cyB9IGZyb20gJy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7IGkxOG5DbG9zZURpYWxvZywgaTE4bkdvQmFjayB9IGZyb20gJy4uL2NvcmUvaTE4bi5qcyc7XG5cbmltcG9ydCB7IG92ZXJsYXlSZWZzLCBTYmJPdmVybGF5QmFzZUVsZW1lbnQgfSBmcm9tICcuL292ZXJsYXktYmFzZS1lbGVtZW50LmpzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL292ZXJsYXkuc2Nzcz9saXQmaW5saW5lJztcbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLmpzJztcbmltcG9ydCAnLi4vY29udGFpbmVyLmpzJztcbmltcG9ydCAnLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBpbnRlcmFjdGl2ZSBvdmVybGF5IGVsZW1lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBwcm92aWRlIGEgY29udGVudCBmb3IgdGhlIG92ZXJsYXkuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLW92ZXJsYXlgIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItb3ZlcmxheWAgaXMgb3BlbmVkLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDx2b2lkPn0gd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItb3ZlcmxheWAgYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8U2JiT3ZlcmxheUNsb3NlRXZlbnREZXRhaWxzPn0gZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1vdmVybGF5YCBpcyBjbG9zZWQuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSByZXF1ZXN0QmFja0FjdGlvbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLW92ZXJsYXknKVxuZXhwb3J0IGNsYXNzIFNiYk92ZXJsYXlFbGVtZW50IGV4dGVuZHMgU2JiT3ZlcmxheUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLy8gRklYTUUgdXNpbmcgLi4uc3VwZXIuZXZlbnRzIHJlcXVpcmVzOiBodHRwczovL2dpdGh1Yi5jb20vc2JiLWRlc2lnbi1zeXN0ZW1zL2x5bmUtY29tcG9uZW50cy9pc3N1ZXMvMjYwMFxuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgICBiYWNrQ2xpY2s6ICdyZXF1ZXN0QmFja0FjdGlvbicsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIG92ZXJsYXkgY29udGVudCB0byBzdHJldGNoIHRvIGZ1bGwgd2lkdGguXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250ZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgcGFnZSBzaXplLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZTtcblxuICAvKiogV2hldGhlciBhIGJhY2sgYnV0dG9uIGlzIGRpc3BsYXllZCBuZXh0IHRvIHRoZSB0aXRsZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFjay1idXR0b24nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBiYWNrQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pIHB1YmxpYyBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDpcbiAgICB8IHN0cmluZ1xuICAgIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGJhY2sgYnV0dG9uIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSkgcHVibGljIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6XG4gICAgfCBzdHJpbmdcbiAgICB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZyA9ICdzYmItb3ZlcmxheS1jbG9zZSc7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrIGJ1dHRvbiBpcyBjbGlja2VkLiAqL1xuICBwcml2YXRlIF9iYWNrQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk92ZXJsYXlFbGVtZW50LmV2ZW50cy5iYWNrQ2xpY2ssXG4gICk7XG4gIHByaXZhdGUgX292ZXJsYXlDb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLW92ZXJsYXlfX2NvbnRlbnQnLFxuICAgICkgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoIXRoaXMud2lsbE9wZW4uZW1pdCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG5cbiAgICAvLyBBZGQgdGhpcyBvdmVybGF5IHRvIHRoZSBnbG9iYWwgY29sbGVjdGlvblxuICAgIG92ZXJsYXlSZWZzLnB1c2godGhpcyBhcyBTYmJPdmVybGF5RWxlbWVudCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgb3ZlcmxheVxuICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gIH1cblxuICAvLyBXYWl0IGZvciBvdmVybGF5IHRyYW5zaXRpb24gdG8gY29tcGxldGUuXG4gIC8vIEluIHJhcmUgY2FzZXMsIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByb3RlY3RlZCBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuZGlkT3Blbi5lbWl0KCk7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgICAgdGhpcy5hdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpO1xuICAgICAgdGhpcy5zZXRPdmVybGF5Rm9jdXMoKTtcbiAgICAgIC8vIFVzZSB0aW1lb3V0IHRvIHJlYWQgbGFiZWwgYWZ0ZXIgZm9jdXNlZCBlbGVtZW50XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QXJpYUxpdmVSZWZDb250ZW50KHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsKSk7XG4gICAgICB0aGlzLmZvY3VzSGFuZGxlci50cmFwKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgICB0aGlzLmluZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgICBzZXRNb2RhbGl0eU9uTmV4dEZvY3VzKHRoaXMubGFzdEZvY3VzZWRFbGVtZW50KTtcbiAgICAgIC8vIE1hbnVhbGx5IGZvY3VzIGxhc3QgZm9jdXNlZCBlbGVtZW50XG4gICAgICB0aGlzLmxhc3RGb2N1c2VkRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXlDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgICAvLyBFbmFibGUgc2Nyb2xsaW5nIGZvciBjb250ZW50IGJlbG93IHRoZSBvdmVybGF5IGlmIG5vIG92ZXJsYXkgaXMgb3BlblxuICAgICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5kaWRDbG9zZS5lbWl0KHtcbiAgICAgICAgcmV0dXJuVmFsdWU6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50LlxuICBwcm90ZWN0ZWQgc2V0T3ZlcmxheUZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QhLmNoaWxkcmVuKS5maWx0ZXIoXG4gICAgICAgIChlKTogZSBpcyBIVE1MRWxlbWVudCA9PiBlIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50LFxuICAgICAgKSxcbiAgICApO1xuICAgIHNldE1vZGFsaXR5T25OZXh0Rm9jdXMoZmlyc3RGb2N1c2FibGUpO1xuICAgIGZpcnN0Rm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgVEFHX05BTUUgPSB0aGlzLm5lZ2F0aXZlID8gJ3NiYi10cmFuc3BhcmVudC1idXR0b24nIDogJ3NiYi1zZWNvbmRhcnktYnV0dG9uJztcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDwke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRSl9XG4gICAgICAgIGNsYXNzPVwic2JiLW92ZXJsYXlfX2Nsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHwgaTE4bkNsb3NlRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLW92ZXJsYXktY2xvc2VcbiAgICAgID48LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FKX0+XG4gICAgYDtcblxuICAgIGNvbnN0IGJhY2tCdXR0b24gPSBodG1sYFxuICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FKX1cbiAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fYmFja1wiXG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlCYWNrTGFiZWwgfHwgaTE4bkdvQmFja1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9iYWNrQ2xpY2suZW1pdCgpfVxuICAgICAgPjwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUpfT5cbiAgICBgO1xuICAgIC8qIGVzbGludC1lbmFibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGFpbmVyXCJcbiAgICAgICAgQGFuaW1hdGlvbmVuZD0keyhldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHRoaXMub25PdmVybGF5QW5pbWF0aW9uRW5kKGV2ZW50KX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5jbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgJHt0aGlzLmJhY2tCdXR0b24gPyBiYWNrQnV0dG9uIDogbm90aGluZ30gJHtjbG9zZUJ1dHRvbn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzYmItY29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgID9leHBhbmRlZD0ke3RoaXMuZXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc2JiLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgYXJpYS1saXZlPVwicG9saXRlXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vdmVybGF5JzogU2JiT3ZlcmxheUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfU2JiT3ZlcmxheUJhc2VFbGVtZW50IiwiX19kZWNvcmF0ZUNsYXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNPLE1BQU0sY0FBdUMsQ0FBQztBQUU5QyxNQUFlLHlCQUFmLE1BQWVBLGdDQUE4QixpQkFBaUIsdUJBQXVCLEVBQUU7QUFBQSxFQUF2RixjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFLTCxTQUFtQixXQUFzRCxJQUFJO0FBQUEsTUFDM0U7QUFBQSxNQUNBQSx3QkFBc0IsT0FBTztBQUFBLElBQUE7QUFRckIsU0FBQSxlQUFlLElBQUk7QUFDbkIsU0FBQSxnQkFBZ0IsSUFBSTtBQUU5QixTQUFVLG9CQUFvQjtBQUVwQixTQUFBLFdBQVcsSUFBSSxzQkFBc0IsSUFBSTtBQUN6QyxTQUFBLGtCQUFrQixJQUFJLG1CQUFtQixJQUFJO0FBQUEsRUFBQTtBQUFBO0FBQUEsRUFPaEQsTUFBTSxRQUFjLFFBQTJCO0FBQ2hELFFBQUEsS0FBSyxVQUFVLFVBQVU7QUFDM0I7QUFBQSxJQUNGO0FBRUEsU0FBSyxjQUFjO0FBQ25CLFNBQUssc0JBQXNCO0FBQzNCLFVBQU0sWUFBeUM7QUFBQSxNQUM3QyxhQUFhLEtBQUs7QUFBQSxNQUNsQixhQUFhLEtBQUs7QUFBQSxJQUFBO0FBR3BCLFFBQUksQ0FBQyxLQUFLLFVBQVUsS0FBSyxTQUFTLEdBQUc7QUFDbkM7QUFBQSxJQUNGO0FBQ0EsU0FBSyxRQUFRO0FBQ2IsU0FBSyx5QkFBeUI7QUFBQSxFQUNoQztBQUFBLEVBRWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFDeEIs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
|
|
@@ -2,22 +2,9 @@ import { css, html } from "lit";
|
|
|
2
2
|
import { customElement } from "lit/decorators.js";
|
|
3
3
|
import { SbbButtonBaseElement } from "../core/base-elements.js";
|
|
4
4
|
import { hostContext } from "../core/dom.js";
|
|
5
|
-
import {
|
|
5
|
+
import { SbbFocusableDisabledActionMixin, SbbNegativeMixin } from "../core/mixins.js";
|
|
6
6
|
import { SbbIconNameMixin } from "../icon.js";
|
|
7
|
-
const style = css`/**
|
|
8
|
-
* Better font rendering (on OS X)
|
|
9
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
*
|
|
13
|
-
* .var_dark_on_light {
|
|
14
|
-
* @include font-smoothing;
|
|
15
|
-
* }
|
|
16
|
-
* .var_light_on_dark {
|
|
17
|
-
* @include font-smoothing-reset;
|
|
18
|
-
* }
|
|
19
|
-
*/
|
|
20
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
7
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
21
8
|
/*
|
|
22
9
|
* SBB table mixin
|
|
23
10
|
* Notes:
|
|
@@ -207,7 +194,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
207
194
|
if (kind && result) __defProp(target, key, result);
|
|
208
195
|
return result;
|
|
209
196
|
};
|
|
210
|
-
let SbbPopoverTriggerElement = class extends
|
|
197
|
+
let SbbPopoverTriggerElement = class extends SbbFocusableDisabledActionMixin(
|
|
211
198
|
SbbNegativeMixin(SbbIconNameMixin(SbbButtonBaseElement))
|
|
212
199
|
) {
|
|
213
200
|
connectedCallback() {
|
|
@@ -233,4 +220,4 @@ SbbPopoverTriggerElement = __decorateClass([
|
|
|
233
220
|
export {
|
|
234
221
|
SbbPopoverTriggerElement
|
|
235
222
|
};
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLXRyaWdnZXIvcG9wb3Zlci10cmlnZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMuanMnO1xuaW1wb3J0IHsgaG9zdENvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBTYmJGb2N1c2FibGVEaXNhYmxlZEFjdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wb3BvdmVyLXRyaWdnZXIuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIHRyaWdnZXIgZm9yIHRoZSBgc2JiLXBvcG92ZXJgIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBgc2JiLXBvcG92ZXItdHJpZ2dlcmAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItcG9wb3Zlci10cmlnZ2VyJylcbmV4cG9ydCBjbGFzcyBTYmJQb3BvdmVyVHJpZ2dlckVsZW1lbnQgZXh0ZW5kcyBTYmJGb2N1c2FibGVEaXNhYmxlZEFjdGlvbk1peGluKFxuICBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBjb25zdCBmb3JtRmllbGQgPSBob3N0Q29udGV4dCgnc2JiLWZvcm0tZmllbGQnLCB0aGlzKSA/PyBob3N0Q29udGV4dCgnW2RhdGEtZm9ybS1maWVsZF0nLCB0aGlzKTtcblxuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWljb24tc21hbGwnLCB0cnVlKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAoZm9ybUZpZWxkIGFzIEhUTUxFbGVtZW50KS5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzbG90PlxuICAgICAgICA8c2JiLWljb24gbmFtZT0ke3RoaXMuaWNvbk5hbWUgfHwgJ2NpcmNsZS1pbmZvcm1hdGlvbi1zbWFsbCd9Pjwvc2JiLWljb24+XG4gICAgICA8L3Nsb3Q+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBvcG92ZXItdHJpZ2dlcic6IFNiYlBvcG92ZXJUcmlnZ2VyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQk8sSUFBTSwyQkFBTixjQUF1QztBQUFBLEVBQzVDLGlCQUFpQixpQkFBaUIsb0JBQW9CLENBQUM7QUFDekQsRUFBRTtBQUFBLEVBR2dCLG9CQUEwQjtBQUN4QyxVQUFNLGtCQUFrQjtBQUN4QixVQUFNLFlBQVksWUFBWSxrQkFBa0IsSUFBSSxLQUFLLFlBQVkscUJBQXFCLElBQUk7QUFFOUYsUUFBSSxXQUFXO0FBQ1IsV0FBQSxnQkFBZ0IsbUJBQW1CLElBQUk7QUFDdkMsV0FBQSxXQUFZLFVBQTBCLGFBQWEsVUFBVTtBQUFBLElBQ3BFO0FBQUEsRUFDRjtBQUFBLEVBRW1CLGlCQUFpQztBQUMzQyxXQUFBO0FBQUE7QUFBQSx5QkFFYyxLQUFLLFlBQVksMEJBQTBCO0FBQUE7QUFBQTtBQUFBLEVBR2xFO0FBQ0Y7QUF0QmEseUJBR1ksU0FBeUI7QUFIckMsMkJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMscUJBQXFCO0FBQUEsR0FDdkIsd0JBQUE7In0=
|