@koobiq/components 18.39.1 → 18.39.3
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/app-switcher/app-switcher.d.ts +7 -1
- package/core/highlight/highlight.pipe.d.ts +2 -0
- package/core/option/action.d.ts +5 -6
- package/datepicker/datepicker-input.directive.d.ts +6 -1
- package/dropdown/dropdown.scss +3 -1
- package/esm2022/app-switcher/app-switcher-dropdown-app.mjs +21 -7
- package/esm2022/app-switcher/app-switcher.mjs +2 -1
- package/esm2022/app-switcher/kbq-app-switcher-list-item.mjs +24 -11
- package/esm2022/core/highlight/highlight.pipe.mjs +23 -5
- package/esm2022/core/option/action.mjs +21 -22
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/datepicker-input.directive.mjs +9 -2
- package/esm2022/datepicker/datepicker.component.mjs +2 -2
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +3 -2
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +3 -3
- package/esm2022/form-field/cleaner.mjs +3 -3
- package/esm2022/form-field/fieldset.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +2 -2
- package/esm2022/form-field/password-toggle.mjs +3 -3
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/inline-edit/inline-edit.mjs +4 -4
- package/esm2022/list/list-selection.component.mjs +12 -2
- package/esm2022/navbar/navbar-brand.component.mjs +2 -2
- package/esm2022/navbar/navbar.component.mjs +2 -2
- package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
- package/esm2022/popover/popover-confirm.component.mjs +3 -3
- package/esm2022/popover/popover.component.mjs +3 -3
- package/esm2022/search-expandable/search-expandable.mjs +50 -23
- package/esm2022/select/select.component.mjs +7 -4
- package/esm2022/tags/tag-input.mjs +7 -6
- package/esm2022/tags/tag-list.component.mjs +11 -3
- package/esm2022/tags/tag.component.mjs +9 -3
- package/fesm2022/koobiq-components-app-switcher.mjs +45 -20
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +42 -26
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +9 -2
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +4 -3
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2 -2
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +8 -8
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +3 -3
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +11 -1
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +6 -6
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +49 -22
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +6 -3
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +24 -9
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/form-field/_form-field-theme.scss +2 -2
- package/form-field/form-field.scss +0 -1
- package/icon/icon-button.scss +5 -4
- package/inline-edit/inline-edit-tokens.scss +1 -1
- package/inline-edit/inline-edit.d.ts +2 -2
- package/inline-edit/inline-edit.scss +1 -1
- package/list/list-selection.component.d.ts +1 -0
- package/navbar/_navbar-item_vertical.scss +8 -0
- package/navbar/navbar-brand.scss +2 -2
- package/package.json +4 -4
- package/popover/_popover-theme.scss +1 -1
- package/schematics/ng-add/index.js +2 -2
- package/search-expandable/search-expandable.d.ts +19 -4
- package/select/select.component.d.ts +2 -1
- package/tags/tag-list.component.d.ts +7 -1
- package/tags/tag.component.d.ts +2 -0
|
@@ -94,7 +94,7 @@ export class KbqPasswordToggle extends KbqTooltipTrigger {
|
|
|
94
94
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqPasswordToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
95
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: KbqPasswordToggle, isStandalone: true, selector: "kbq-password-toggle", inputs: { tabindex: ["tabindex", "tabindex", numberAttribute], content: ["kbqTooltipNotHidden", "content"], kbqTooltipHidden: "kbqTooltipHidden" }, host: { listeners: { "click": "toggle($event)", "keydown.ENTER": "toggle($event)", "keydown.SPACE": "toggle($event)" }, properties: { "class.kbq-error": "hasError", "class.kbq-eye_16": "hidden", "class.kbq-eye-slash_16": "!hidden", "style.visibility": "visibility", "class.cdk-visually-hidden": "visibility === \"hidden\"", "attr.aria-hidden": "visibility === \"hidden\"", "attr.tabindex": "tabindex" }, classAttribute: "kbq-password-toggle kbq kbq-icon-button kbq-contrast-fade" }, viewQueries: [{ propertyName: "icon", first: true, predicate: KbqIconButton, descendants: true }], exportAs: ["kbqPasswordToggle"], usesInheritance: true, ngImport: i0, template: `
|
|
96
96
|
<ng-content />
|
|
97
|
-
`, isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs);outline:none}\n", ".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-
|
|
97
|
+
`, isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs);outline:none}\n", ".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "ngmodule", type: KbqToolTipModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
98
98
|
}
|
|
99
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqPasswordToggle, decorators: [{
|
|
100
100
|
type: Component,
|
|
@@ -113,7 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
113
113
|
'(click)': 'toggle($event)',
|
|
114
114
|
'(keydown.ENTER)': 'toggle($event)',
|
|
115
115
|
'(keydown.SPACE)': 'toggle($event)'
|
|
116
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs);outline:none}\n", ".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-
|
|
116
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs);outline:none}\n", ".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
117
117
|
}], ctorParameters: () => [], propDecorators: { tabindex: [{
|
|
118
118
|
type: Input,
|
|
119
119
|
args: [{ transform: numberAttribute }]
|
|
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
126
126
|
}], kbqTooltipHidden: [{
|
|
127
127
|
type: Input
|
|
128
128
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3Bhc3N3b3JkLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFHZixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVVqRixxRUFBcUU7QUFDckUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFxQyxFQUErQixFQUFFO0lBQzNGLE9BQU8sYUFBYSxJQUFJLE9BQU8sQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLHVDQUF1QyxHQUFHLEdBQVUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUVGLG1EQUFtRDtBQTZCbkQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQWVwRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxD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QUxrQixhQUFhLDhCQUFFLGdCQUFnQjs7NEZBMEJ6QyxpQkFBaUI7a0JBNUI3QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFDekMscUJBQXFCLFlBQ3JCLG1CQUFtQixZQUNuQjs7S0FFVCxRQUVLO3dCQUNGLEtBQUssRUFBRSwyREFBMkQ7d0JBQ2xFLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLG9CQUFvQixFQUFFLFFBQVE7d0JBQzlCLDBCQUEwQixFQUFFLFNBQVM7d0JBRXJDLDBDQUEwQzt3QkFDMUMsb0JBQW9CLEVBQUUsWUFBWTt3QkFDbEMsNkJBQTZCLEVBQUUseUJBQXlCO3dCQUN4RCxvQkFBb0IsRUFBRSx5QkFBeUI7d0JBQy9DLGlCQUFpQixFQUFFLFVBQVU7d0JBRTdCLFNBQVMsRUFBRSxnQkFBZ0I7d0JBQzNCLGlCQUFpQixFQUFFLGdCQUFnQjt3QkFDbkMsaUJBQWlCLEVBQUUsZ0JBQWdCO3FCQUN0QyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTt3REFVRSxRQUFRO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRixJQUFJO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR3BCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBV25CLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9GT1JNX0ZJRUxEX1JFRiwga2JxSW5qZWN0TmF0aXZlRWxlbWVudCwgUG9wVXBUcmlnZ2VycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25CdXR0b24sIEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUb29sVGlwTW9kdWxlLCBLYnFUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG4vLyBAVE9ETyBUZW1wb3Jhcnkgc29sdXRpb24gdG8gcmVzb2x2ZSBjaXJjdWxhciBkZXBlbmRlbmN5ICgjRFMtMzg5MylcbnR5cGUgS2JxSW5wdXRQYXNzd29yZCA9IEticUZvcm1GaWVsZENvbnRyb2w8dW5rbm93bj4gJiB7XG4gICAgZWxlbWVudFR5cGU6IHN0cmluZztcbiAgICB0b2dnbGVUeXBlOiAoKSA9PiB2b2lkO1xufTtcblxuLy8gQFRPRE8gVGVtcG9yYXJ5IHNvbHV0aW9uIHRvIHJlc29sdmUgY2lyY3VsYXIgZGVwZW5kZW5jeSAoI0RTLTM4OTMpXG5jb25zdCBpc0lucHV0UGFzc3dvcmQgPSAoY29udHJvbDogS2JxRm9ybUZpZWxkQ29udHJvbDx1bmtub3duPik6IGNvbnRyb2wgaXMgS2JxSW5wdXRQYXNzd29yZCA9PiB7XG4gICAgcmV0dXJuICdlbGVtZW50VHlwZScgaW4gY29udHJvbDtcbn07XG5cbmNvbnN0IGdldEticVBhc3N3b3JkVG9nZ2xlTWlzc2luZ0NvbnRyb2xFcnJvciA9ICgpOiBFcnJvciA9PiB7XG4gICAgcmV0dXJuIEVycm9yKCdrYnEtcGFzc3dvcmQtdG9nZ2xlIHNob3VsZCB1c2Ugd2l0aCBrYnFJbnB1dFBhc3N3b3JkJyk7XG59O1xuXG4vKiogQ29tcG9uZW50IHdoaWNoIGNoYW5nZXMgcGFzc3dvcmQgdmlzaWJpbGl0eS4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIEticUljb25Nb2R1bGUsIEticVRvb2xUaXBNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiBga2JxLXBhc3N3b3JkLXRvZ2dsZWAsXG4gICAgZXhwb3J0QXM6ICdrYnFQYXNzd29yZFRvZ2dsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWydwYXNzd29yZC10b2dnbGUuc2NzcycsICcuLi9pY29uL2ljb24tYnV0dG9uLnNjc3MnLCAnLi4vaWNvbi9pY29uLWJ1dHRvbi10b2tlbnMuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtcGFzc3dvcmQtdG9nZ2xlIGticSBrYnEtaWNvbi1idXR0b24ga2JxLWNvbnRyYXN0LWZhZGUnLFxuICAgICAgICAnW2NsYXNzLmticS1lcnJvcl0nOiAnaGFzRXJyb3InLFxuICAgICAgICAnW2NsYXNzLmticS1leWVfMTZdJzogJ2hpZGRlbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWV5ZS1zbGFzaF8xNl0nOiAnIWhpZGRlbicsXG5cbiAgICAgICAgLy8gbGVnYWN5IHN0eWxlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbc3R5bGUudmlzaWJpbGl0eV0nOiAndmlzaWJpbGl0eScsXG4gICAgICAgICdbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl0nOiAndmlzaWJpbGl0eSA9PT0gXCJoaWRkZW5cIicsXG4gICAgICAgICdbYXR0ci5hcmlhLWhpZGRlbl0nOiAndmlzaWJpbGl0eSA9PT0gXCJoaWRkZW5cIicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiaW5kZXgnLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLkVOVEVSKSc6ICd0b2dnbGUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5TUEFDRSknOiAndG9nZ2xlKCRldmVudCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVBhc3N3b3JkVG9nZ2xlIGV4dGVuZHMgS2JxVG9vbHRpcFRyaWdnZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXRpdmVFbGVtZW50ID0ga2JxSW5qZWN0TmF0aXZlRWxlbWVudCgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLy8gQFRPRE8gZml4IHR5cGVzICgjRFMtMjkxNSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChLQlFfRk9STV9GSUVMRF9SRUYsIHsgb3B0aW9uYWw6IHRydWUgfSkgYXMgdW5rbm93biBhcyBLYnFGb3JtRmllbGQgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKEticUljb25CdXR0b24pIHJlYWRvbmx5IGljb246IEticUljb25CdXR0b247XG5cbiAgICBASW5wdXQoJ2ticVRvb2x0aXBOb3RIaWRkZW4nKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVsZW1lbnRUeXBlID09PSAncGFzc3dvcmQnID8gdGhpcy5rYnFUb29sdGlwSGlkZGVuIDogdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGticVRvb2x0aXBIaWRkZW46IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBGb3JtIGZpZWxkIHBhc3N3b3JkIGNvbnRyb2wuICovXG4gICAgcHJpdmF0ZSBnZXQgY29udHJvbCgpOiBLYnFJbnB1dFBhc3N3b3JkIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUZpZWxkPy5jb250cm9sO1xuXG4gICAgICAgIGlmICghY29udHJvbCB8fCAhaXNJbnB1dFBhc3N3b3JkKGNvbnRyb2wpKSB7XG4gICAgICAgICAgICB0aHJvdyBnZXRLYnFQYXNzd29yZFRvZ2dsZU1pc3NpbmdDb250cm9sRXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250cm9sO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVsZW1lbnRUeXBlID09PSAncGFzc3dvcmQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGRlbiA/ICdrYnEtZXllXzE2JyA6ICdrYnEtZXllLXNsYXNoXzE2JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogJ2hpZGRlbicgfCAndmlzaWJsZScge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGVkIHx8IHRoaXMuY29udHJvbC5lbXB0eSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1GaWVsZD8uY29udHJvbD8uc3RhdGVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVN0YXRlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgdG9nZ2xlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jb250cm9sO1xuXG4gICAgICAgIGlucHV0LnRvZ2dsZVR5cGUoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSAhIXRoaXMuZm9ybUZpZWxkPy5jb250cm9sPy5lcnJvclN0YXRlO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3Bhc3N3b3JkLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFHZixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVVqRixxRUFBcUU7QUFDckUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFxQyxFQUErQixFQUFFO0lBQzNGLE9BQU8sYUFBYSxJQUFJLE9BQU8sQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLHVDQUF1QyxHQUFHLEdBQVUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUVGLG1EQUFtRDtBQTZCbkQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQWVwRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxD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QUxrQixhQUFhLDhCQUFFLGdCQUFnQjs7NEZBMEJ6QyxpQkFBaUI7a0JBNUI3QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsWUFDekMscUJBQXFCLFlBQ3JCLG1CQUFtQixZQUNuQjs7S0FFVCxRQUVLO3dCQUNGLEtBQUssRUFBRSwyREFBMkQ7d0JBQ2xFLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLG9CQUFvQixFQUFFLFFBQVE7d0JBQzlCLDBCQUEwQixFQUFFLFNBQVM7d0JBRXJDLDBDQUEwQzt3QkFDMUMsb0JBQW9CLEVBQUUsWUFBWTt3QkFDbEMsNkJBQTZCLEVBQUUseUJBQXlCO3dCQUN4RCxvQkFBb0IsRUFBRSx5QkFBeUI7d0JBQy9DLGlCQUFpQixFQUFFLFVBQVU7d0JBRTdCLFNBQVMsRUFBRSxnQkFBZ0I7d0JBQzNCLGlCQUFpQixFQUFFLGdCQUFnQjt3QkFDbkMsaUJBQWlCLEVBQUUsZ0JBQWdCO3FCQUN0QyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTt3REFVRSxRQUFRO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFLRixJQUFJO3NCQUF0QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR3BCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBV25CLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtCUV9GT1JNX0ZJRUxEX1JFRiwga2JxSW5qZWN0TmF0aXZlRWxlbWVudCwgUG9wVXBUcmlnZ2VycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25CdXR0b24sIEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUb29sVGlwTW9kdWxlLCBLYnFUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG4vLyBAVE9ETyBUZW1wb3Jhcnkgc29sdXRpb24gdG8gcmVzb2x2ZSBjaXJjdWxhciBkZXBlbmRlbmN5ICgjRFMtMzg5MylcbnR5cGUgS2JxSW5wdXRQYXNzd29yZCA9IEticUZvcm1GaWVsZENvbnRyb2w8dW5rbm93bj4gJiB7XG4gICAgZWxlbWVudFR5cGU6IHN0cmluZztcbiAgICB0b2dnbGVUeXBlOiAoKSA9PiB2b2lkO1xufTtcblxuLy8gQFRPRE8gVGVtcG9yYXJ5IHNvbHV0aW9uIHRvIHJlc29sdmUgY2lyY3VsYXIgZGVwZW5kZW5jeSAoI0RTLTM4OTMpXG5jb25zdCBpc0lucHV0UGFzc3dvcmQgPSAoY29udHJvbDogS2JxRm9ybUZpZWxkQ29udHJvbDx1bmtub3duPik6IGNvbnRyb2wgaXMgS2JxSW5wdXRQYXNzd29yZCA9PiB7XG4gICAgcmV0dXJuICdlbGVtZW50VHlwZScgaW4gY29udHJvbDtcbn07XG5cbmNvbnN0IGdldEticVBhc3N3b3JkVG9nZ2xlTWlzc2luZ0NvbnRyb2xFcnJvciA9ICgpOiBFcnJvciA9PiB7XG4gICAgcmV0dXJuIEVycm9yKCdrYnEtcGFzc3dvcmQtdG9nZ2xlIHNob3VsZCB1c2Ugd2l0aCBrYnFJbnB1dFBhc3N3b3JkJyk7XG59O1xuXG4vKiogQ29tcG9uZW50IHdoaWNoIGNoYW5nZXMgcGFzc3dvcmQgdmlzaWJpbGl0eS4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIEticUljb25Nb2R1bGUsIEticVRvb2xUaXBNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiBga2JxLXBhc3N3b3JkLXRvZ2dsZWAsXG4gICAgZXhwb3J0QXM6ICdrYnFQYXNzd29yZFRvZ2dsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWydwYXNzd29yZC10b2dnbGUuc2NzcycsICcuLi9pY29uL2ljb24tYnV0dG9uLnNjc3MnLCAnLi4vaWNvbi9pY29uLWJ1dHRvbi10b2tlbnMuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtcGFzc3dvcmQtdG9nZ2xlIGticSBrYnEtaWNvbi1idXR0b24ga2JxLWNvbnRyYXN0LWZhZGUnLFxuICAgICAgICAnW2NsYXNzLmticS1lcnJvcl0nOiAnaGFzRXJyb3InLFxuICAgICAgICAnW2NsYXNzLmticS1leWVfMTZdJzogJ2hpZGRlbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWV5ZS1zbGFzaF8xNl0nOiAnIWhpZGRlbicsXG5cbiAgICAgICAgLy8gbGVnYWN5IHN0eWxlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgICdbc3R5bGUudmlzaWJpbGl0eV0nOiAndmlzaWJpbGl0eScsXG4gICAgICAgICdbY2xhc3MuY2RrLXZpc3VhbGx5LWhpZGRlbl0nOiAndmlzaWJpbGl0eSA9PT0gXCJoaWRkZW5cIicsXG4gICAgICAgICdbYXR0ci5hcmlhLWhpZGRlbl0nOiAndmlzaWJpbGl0eSA9PT0gXCJoaWRkZW5cIicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAndGFiaW5kZXgnLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLkVOVEVSKSc6ICd0b2dnbGUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5TUEFDRSknOiAndG9nZ2xlKCRldmVudCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticVBhc3N3b3JkVG9nZ2xlIGV4dGVuZHMgS2JxVG9vbHRpcFRyaWdnZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXRpdmVFbGVtZW50ID0ga2JxSW5qZWN0TmF0aXZlRWxlbWVudCgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLy8gQFRPRE8gZml4IHR5cGVzICgjRFMtMjkxNSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChLQlFfRk9STV9GSUVMRF9SRUYsIHsgb3B0aW9uYWw6IHRydWUgfSkgYXMgdW5rbm93biBhcyBLYnFGb3JtRmllbGQgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKEticUljb25CdXR0b24pIHJlYWRvbmx5IGljb246IEticUljb25CdXR0b247XG5cbiAgICBASW5wdXQoJ2ticVRvb2x0aXBOb3RIaWRkZW4nKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVsZW1lbnRUeXBlID09PSAncGFzc3dvcmQnID8gdGhpcy5rYnFUb29sdGlwSGlkZGVuIDogdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50O1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGticVRvb2x0aXBIaWRkZW46IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBGb3JtIGZpZWxkIHBhc3N3b3JkIGNvbnRyb2wuICovXG4gICAgcHJpdmF0ZSBnZXQgY29udHJvbCgpOiBLYnFJbnB1dFBhc3N3b3JkIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUZpZWxkPy5jb250cm9sO1xuXG4gICAgICAgIGlmICghY29udHJvbCB8fCAhaXNJbnB1dFBhc3N3b3JkKGNvbnRyb2wpKSB7XG4gICAgICAgICAgICB0aHJvdyBnZXRLYnFQYXNzd29yZFRvZ2dsZU1pc3NpbmdDb250cm9sRXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250cm9sO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVsZW1lbnRUeXBlID09PSAncGFzc3dvcmQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZGRlbiA/ICdrYnEtZXllXzE2JyA6ICdrYnEtZXllLXNsYXNoXzE2JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogJ2hpZGRlbicgfCAndmlzaWJsZScge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGVkIHx8IHRoaXMuY29udHJvbC5lbXB0eSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1GaWVsZD8uY29udHJvbD8uc3RhdGVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVN0YXRlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgdG9nZ2xlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5jb250cm9sO1xuXG4gICAgICAgIGlucHV0LnRvZ2dsZVR5cGUoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSAhIXRoaXMuZm9ybUZpZWxkPy5jb250cm9sPy5lcnJvclN0YXRlO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -39,7 +39,7 @@ export class KbqIconButton extends KbqIcon {
|
|
|
39
39
|
this.focusMonitor.stopMonitoring(this.getHostElement());
|
|
40
40
|
}
|
|
41
41
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqIconButton, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { small: "small", iconName: ["kbq-icon-button", "iconName"], tabindex: "tabindex", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled", "class.kbq-disabled": "disabled", "class.kbq-icon-button_small": "small" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-
|
|
42
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { small: "small", iconName: ["kbq-icon-button", "iconName"], tabindex: "tabindex", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled", "class.kbq-disabled": "disabled", "class.kbq-icon-button_small": "small" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
43
|
}
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqIconButton, decorators: [{
|
|
45
45
|
type: Component,
|
|
@@ -49,7 +49,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49
49
|
'[attr.disabled]': 'disabled',
|
|
50
50
|
'[class.kbq-disabled]': 'disabled',
|
|
51
51
|
'[class.kbq-icon-button_small]': 'small'
|
|
52
|
-
}, styles: [".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-
|
|
52
|
+
}, styles: [".kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
53
53
|
}], propDecorators: { small: [{
|
|
54
54
|
type: Input
|
|
55
55
|
}], iconName: [{
|
|
@@ -182,7 +182,7 @@ export class KbqInlineEdit {
|
|
|
182
182
|
.pipe(skip(1), takeUntilDestroyed())
|
|
183
183
|
.subscribe((currentMode) => this.modeChange.emit(currentMode));
|
|
184
184
|
}
|
|
185
|
-
/**
|
|
185
|
+
/** Manually switch mode */
|
|
186
186
|
toggleMode() {
|
|
187
187
|
this.mode.update((mode) => (mode === 'view' ? 'edit' : 'view'));
|
|
188
188
|
}
|
|
@@ -355,7 +355,7 @@ export class KbqInlineEdit {
|
|
|
355
355
|
return this.overlayDir()?.overlayRef.overlayElement.querySelector('input:not([type="file"]),textarea') ?? null;
|
|
356
356
|
}
|
|
357
357
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqInlineEdit, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
358
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqInlineEdit, isStandalone: true, selector: "kbq-inline-edit", inputs: { showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showTooltipOnError: { classPropertyName: "showTooltipOnError", publicName: "showTooltipOnError", isSignal: true, isRequired: false, transformFunction: null }, validationTooltip: { classPropertyName: "validationTooltip", publicName: "validationTooltip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editModeWidth: { classPropertyName: "editModeWidth", publicName: "editModeWidth", isSignal: true, isRequired: false, transformFunction: null }, tooltipPlacement: { classPropertyName: "tooltipPlacement", publicName: "tooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, getValueHandler: { classPropertyName: "getValueHandler", publicName: "getValueHandler", isSignal: true, isRequired: false, transformFunction: null }, setValueHandler: { classPropertyName: "setValueHandler", publicName: "setValueHandler", isSignal: true, isRequired: false, transformFunction: null }, canSaveOnEnter: { classPropertyName: "canSaveOnEnter", publicName: "canSaveOnEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", canceled: "canceled", modeChange: "modeChange" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "className()", "class.kbq-inline-edit_with-label": "!!label()", "class.kbq-inline-edit_with-menu": "!!menu()", "class.kbq-inline-edit_disabled": "disabled()" }, classAttribute: "kbq-inline-edit" }, queries: [{ propertyName: "menu", first: true, predicate: KbqInlineEditMenu, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: KbqLabel, descendants: true, isSignal: true }, { propertyName: "formFieldRef", first: true, predicate: KbqFormField, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "regionItems", predicate: KbqFocusRegionItem, descendants: true, isSignal: true }], exportAs: ["kbqInlineEdit"], hostDirectives: [{ directive: i1.KbqFocusMonitor }], ngImport: i0, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box;font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: calc(var(--kbq-size-m) - var(--kbq-size-border-width))}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: 5px;--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "directive", type: KbqFocusRegionItem, selector: "[kbqFocusRegionItem]", outputs: ["tabOut"], exportAs: ["kbqFocusRegionItem"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
358
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqInlineEdit, isStandalone: true, selector: "kbq-inline-edit", inputs: { showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, showTooltipOnError: { classPropertyName: "showTooltipOnError", publicName: "showTooltipOnError", isSignal: true, isRequired: false, transformFunction: null }, validationTooltip: { classPropertyName: "validationTooltip", publicName: "validationTooltip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editModeWidth: { classPropertyName: "editModeWidth", publicName: "editModeWidth", isSignal: true, isRequired: false, transformFunction: null }, tooltipPlacement: { classPropertyName: "tooltipPlacement", publicName: "tooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, getValueHandler: { classPropertyName: "getValueHandler", publicName: "getValueHandler", isSignal: true, isRequired: false, transformFunction: null }, setValueHandler: { classPropertyName: "setValueHandler", publicName: "setValueHandler", isSignal: true, isRequired: false, transformFunction: null }, canSaveOnEnter: { classPropertyName: "canSaveOnEnter", publicName: "canSaveOnEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { saved: "saved", canceled: "canceled", modeChange: "modeChange" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "className()", "class.kbq-inline-edit_with-label": "!!label()", "class.kbq-inline-edit_with-menu": "!!menu()", "class.kbq-inline-edit_disabled": "disabled()" }, classAttribute: "kbq-inline-edit" }, queries: [{ propertyName: "menu", first: true, predicate: KbqInlineEditMenu, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: KbqLabel, descendants: true, isSignal: true }, { propertyName: "formFieldRef", first: true, predicate: KbqFormField, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "regionItems", predicate: KbqFocusRegionItem, descendants: true, isSignal: true }], exportAs: ["kbqInlineEdit"], hostDirectives: [{ directive: i1.KbqFocusMonitor }], ngImport: i0, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box;font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: var(--kbq-size-xs);--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "directive", type: KbqFocusRegionItem, selector: "[kbqFocusRegionItem]", outputs: ["tabOut"], exportAs: ["kbqFocusRegionItem"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
359
359
|
}
|
|
360
360
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqInlineEdit, decorators: [{
|
|
361
361
|
type: Component,
|
|
@@ -377,6 +377,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
377
377
|
KbqFocusRegionItem,
|
|
378
378
|
CdkTrapFocus,
|
|
379
379
|
CdkMonitorFocus
|
|
380
|
-
], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box;font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal:
|
|
380
|
+
], animations: [KBQ_INLINE_EDIT_ACTION_BUTTONS_ANIMATION], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (label()) {\n <div class=\"kbq-inline-edit__label\">\n <ng-content select=\"kbq-label\" />\n </div>\n}\n\n<div class=\"kbq-inline-edit__view-container\">\n <ng-content select=\"[kbqInlineEditViewMode]\" />\n\n <div\n #overlayOrigin\n class=\"kbq-inline-edit__focus_container kbq-inline-edit__overlay-origin\"\n cdkMonitorElementFocus\n cdkOverlayOrigin\n [tabIndex]=\"tabIndex()\"\n (keydown.enter)=\"onClick($event)\"\n ></div>\n\n @if (menu() && mode() === 'view') {\n <div class=\"kbq-inline-edit__menu-mask kbq-mask\">\n <div class=\"kbq-inline-edit__menu-mask-fade kbq-mask__fade\"></div>\n <div class=\"kbq-inline-edit__menu-mask-container kbq-mask__container\">\n <ng-content select=\"[kbqInlineEditMenu]\" />\n </div>\n </div>\n }\n\n <ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayOpen]=\"isEditMode()\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin\"\n [cdkConnectedOverlayOffsetY]=\"-overlayOrigin.offsetHeight\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayHasBackdrop]=\"false\"\n (attach)=\"onAttach()\"\n (overlayOutsideClick)=\"save($event)\"\n (overlayKeydown)=\"onOverlayKeydown($event)\"\n >\n <div class=\"kbq-inline-edit__panel\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div\n class=\"kbq-inline-edit__control-container\"\n kbqFocusRegionItem\n [kbqTooltipColor]=\"colors.Error\"\n [kbqTooltip]=\"validationTooltip() ?? ''\"\n [kbqTooltipArrow]=\"false\"\n [kbqTrigger]=\"'manual'\"\n [kbqPlacement]=\"tooltipPlacement() ?? placements.TopLeft\"\n >\n <ng-content select=\"[kbqInlineEditEditMode]\" />\n </div>\n\n @if (showActions()) {\n <div class=\"kbq-inline-edit__action-buttons\" role=\"group\" [@panelAnimation]>\n <button kbq-button [color]=\"'contrast'\" (click)=\"save($event)\">\n <i kbq-icon=\"kbq-check_16\"></i>\n </button>\n <button\n kbqFocusRegionItem\n kbq-button\n [color]=\"'contrast-fade'\"\n (click)=\"cancel()\"\n (keydown.enter)=\"cancel()\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n }\n </div>\n </ng-template>\n</div>\n", styles: [".kbq-inline-edit{display:flex;flex-direction:column;justify-content:center;border-radius:var(--kbq-size-border-radius);padding:var(--kbq-inline-edit-padding-vertical) var(--kbq-inline-edit-padding-horizontal);min-height:var(--kbq-inline-edit-height);box-sizing:border-box;font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):hover{--kbq-inline-edit-background: var(--kbq-states-background-transparent-hover);--kbq-mask-background: var(--kbq-states-background-contrast-less-hover);cursor:pointer}.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):active,.kbq-inline-edit.kbq-inline-edit_view:not(.kbq-inline-edit_disabled):has(.kbq-inline-edit__menu.kbq-active){--kbq-inline-edit-background: var(--kbq-states-background-transparent-active);--kbq-mask-background: var(--kbq-states-background-contrast-less-active)}.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:hover,.kbq-inline-edit.kbq-inline-edit_view.kbq-inline-edit_disabled:has(.kbq-inline-edit__menu.kbq-active){--kbq-mask-background: var(--kbq-background-bg)}.kbq-inline-edit .kbq-label{color:var(--kbq-inline-edit-label-color)}.kbq-inline-edit .kbq-inline-edit__focus_container{background:var(--kbq-inline-edit-background);border-color:var(--kbq-inline-edit-background)}.kbq-inline-edit .kbq-inline-edit__focus_container:focus-visible{outline:none}.kbq-inline-edit .kbq-inline-edit__focus_container.cdk-keyboard-focused{outline:1px solid var(--kbq-states-line-focus-theme);border-color:var(--kbq-states-line-focus-theme)}.kbq-inline-edit:not(.kbq-inline-edit_with-label){--kbq-inline-edit-padding-horizontal: var(--kbq-size-m)}.kbq-inline-edit.kbq-inline-edit_with-label{padding-top:var(--kbq-inline-edit-padding-vertical);padding-bottom:var(--kbq-inline-edit-padding-vertical)}.kbq-inline-edit.kbq-inline-edit_with-label.kbq-inline-edit_edit .kbq-inline-edit__view-container{position:relative}.kbq-inline-edit.kbq-inline-edit_with-label .kbq-inline-edit__label{margin-bottom:var(--kbq-size-3xs)}.kbq-inline-edit.kbq-inline-edit_view .kbq-inline-edit__view-container{text-overflow:ellipsis}.kbq-inline-edit:hover .kbq-inline-edit__menu-mask,.kbq-inline-edit.cdk-keyboard-focused .kbq-inline-edit__menu-mask{opacity:1}.kbq-inline-edit .kbq-inline-edit__placeholder{color:var(--kbq-foreground-contrast-secondary)}.kbq-inline-edit{position:relative}.kbq-inline-edit .kbq-mask{display:flex;position:absolute;top:0;right:0}.kbq-inline-edit .kbq-mask .kbq-mask__fade{background:var(--kbq-mask-background, transparent);mask-image:linear-gradient(90deg,transparent,var(--kbq-black-default))}.kbq-inline-edit .kbq-mask .kbq-mask__container{background:var(--kbq-mask-background, transparent)}.kbq-inline-edit .kbq-inline-edit__menu-mask{opacity:0;height:100%;justify-content:flex-end;border-top-right-radius:var(--kbq-size-border-radius);border-bottom-right-radius:var(--kbq-size-border-radius)}.kbq-inline-edit .kbq-inline-edit__menu-mask:has(.kbq-inline-edit__menu.kbq-pressed,.kbq-inline-edit__menu.cdk-keyboard-focused){opacity:1}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-fade{width:32px}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu-mask-container{display:flex;justify-content:flex-end;min-width:40px;border-radius:inherit}.kbq-inline-edit .kbq-inline-edit__menu-mask .kbq-inline-edit__menu{display:inline-flex;align-self:flex-start;padding:var(--kbq-size-s);z-index:2}.kbq-inline-edit .kbq-inline-edit__focus_container{position:absolute;top:0;left:0;width:calc(100% - 2 * var(--kbq-size-border-width));height:calc(100% - 2 * var(--kbq-size-border-width));border:var(--kbq-size-border-width) solid transparent;border-radius:var(--kbq-size-border-radius);z-index:1}.kbq-inline-edit__panel{width:100%}.kbq-inline-edit__panel .kbq-inline-edit__control-container{border-radius:var(--kbq-size-border-radius)}.kbq-inline-edit__panel .kbq-inline-edit__action-buttons{position:absolute;left:calc(-1 * var(--kbq-inline-edit-padding-horizontal));display:inline-flex;flex-direction:row;gap:var(--kbq-size-xxs);padding:var(--kbq-size-xxs) var(--kbq-size-s) var(--kbq-size-s)}.kbq-inline-edit__panel .kbq-inline-edit__control-container,.kbq-inline-edit__panel .kbq-inline-edit__action-buttons>.kbq-button-icon{box-shadow:var(--kbq-shadow-popup)}\n", ":where(.kbq-inline-edit,.kbq-inline-edit__panel){--kbq-inline-edit-background: transparent;--kbq-inline-edit-height: var(--kbq-size-3xl);--kbq-inline-edit-padding-horizontal: var(--kbq-size-s);--kbq-inline-edit-padding-vertical: var(--kbq-size-xs);--kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);--kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary)}\n"] }]
|
|
381
381
|
}], ctorParameters: () => [] });
|
|
382
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2lubGluZS1lZGl0L2lubGluZS1lZGl0LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFM0MsTUFBTSx3Q0FBd0MsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkUsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FDSCxHQUFHLHFCQUFxQixDQUFDLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxFQUMxRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ3JEO0tBQUMsQ0FBQztDQUVWLENBQUMsQ0FBQztBQUVILE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDO0FBRXBDLG9CQUFvQjtBQVdwQixNQUFNLE9BQU8sa0JBQWtCO0lBVi9CO1FBV2EsV0FBTSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztRQUVoQyxjQUFTLEdBQUcsS0FBSyxDQUFDO0tBUy9CO0lBUGEsUUFBUSxDQUFDLEtBQW9CO1FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO2tJQVhRLGtCQUFrQjtzSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUU7d0JBQ0YsV0FBVyxFQUFFLGtCQUFrQjt3QkFDL0IsZUFBZSxFQUFFLGtCQUFrQjt3QkFDbkMscUJBQXFCLEVBQUUsa0JBQWtCO3FCQUM1QztpQkFDSjs7QUFlRCwyRUFBMkU7QUFTM0UsTUFBTSxPQUFPLHdCQUF3QjtrSUFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBUnBDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsOEJBQThCO3FCQUN4QztpQkFDSjs7QUFHRDs7OztHQUlHO0FBY0gsTUFBTSxPQUFPLGlCQUFpQjtJQWI5QjtRQWNJLG9CQUFvQjtRQUNELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FDdkY7a0lBSFksaUJBQWlCO3NIQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBYjdCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxLQUFLLEVBQUUsdUJBQXVCO3dCQUM5QixvQkFBb0IsRUFBRSx5QkFBeUI7d0JBQy9DLFNBQVMsRUFBRSwwQkFBMEI7d0JBQ3JDLGlCQUFpQixFQUFFLDBCQUEwQjt3QkFDN0MsaUJBQWlCLEVBQUUsMEJBQTBCO3FCQUNoRDtpQkFDSjs7QUFNRDs7OztHQUlHO0FBZ0NILE1BQU0sT0FBTyxhQUFhO0lBc0Z0QjtRQXJGaUIsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDekQsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdDOzs7V0FHRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDckU7OztXQUdHO1FBQ00sdUJBQWtCLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0UseUNBQXlDO1FBQ2hDLHNCQUFpQixHQUFHLEtBQUssRUFBNkIsQ0FBQztRQUNoRTs7O1dBR0c7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDbEUsb0ZBQW9GO1FBQzNFLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLHFDQUFxQztRQUM1QixxQkFBZ0IsR0FBRyxLQUFLLEVBQW1CLENBQUM7UUFDckQscURBQXFEO1FBQzVDLG9CQUFlLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBQ2xELDJDQUEyQztRQUNsQyxvQkFBZSxHQUFHLEtBQUssRUFBd0IsQ0FBQztRQUN6RDs7V0FFRztRQUNNLG1CQUFjLEdBQUcsS0FBSyxDQUMzQixDQUFDLEtBQW9CLEVBQVcsRUFBRSxDQUM5QixjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sWUFBWSxtQkFBbUIsQ0FBQyxDQUNwRyxDQUFDO1FBRUYsMERBQTBEO1FBQ3ZDLFVBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNwQywwRUFBMEU7UUFDdkQsYUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLDhDQUE4QztRQUMzQixlQUFVLEdBQUcsTUFBTSxFQUFtQixDQUFDO1FBRTFELG9CQUFvQjtRQUNELFNBQUksR0FBRyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRCxvQkFBb0I7UUFDRCxVQUFLLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELG9CQUFvQjtRQUNELGlCQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTdELG9CQUFvQjtRQUNELGtCQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hFLG9CQUFvQjtRQUNELG1CQUFjLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsb0JBQW9CO1FBQ0QsZUFBVSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELG9CQUFvQjtRQUNELGdCQUFXLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFbEUsb0JBQW9CO1FBQ0QsU0FBSSxHQUFHLE1BQU0sQ0FBa0IsTUFBTSxDQUFDLENBQUM7UUFDMUQsb0JBQW9CO1FBQ0QsaUJBQVksR0FBRyxNQUFNLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzlELG9CQUFvQjtRQUNELG1CQUFjLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdkcsb0JBQW9CO1FBQ1gsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEQsb0JBQW9CO1FBQ0QsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLG9CQUFvQjtRQUNELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLG9CQUFvQjtRQUNELGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RixvQkFBb0I7UUFDRCxlQUFVLEdBQUcsZUFBZSxDQUFDO1FBRWhELG9CQUFvQjtRQUNELFdBQU0sR0FBRyxrQkFBa0IsQ0FBQztRQUszQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxvQkFBb0I7SUFDVixVQUFVO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsb0JBQW9CO0lBQ1YsT0FBTyxDQUFDLEtBQVk7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLE9BQU87UUFFakQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsb0JBQW9CO0lBQ1YsUUFBUTtRQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFekMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQzVELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFN0MsY0FBYyxFQUFFLE1BQU0sSUFBSSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRVAsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUUzQyxJQUFJLElBQUksQ0FBQyxZQUFZO2dCQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUV2QyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxvQkFBb0I7SUFDVixJQUFJLENBQUMsTUFBYztRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQjtJQUNWLE1BQU07UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUUzQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG9CQUFvQjtJQUNWLGdCQUFnQixDQUFDLEtBQW9CO1FBQzNDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFN0MsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNaLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZCxNQUFNO1lBQ1YsQ0FBQztZQUNELEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDWCxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztvQkFDakUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztnQkFFRCxNQUFNO1lBQ1YsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ04sT0FBTztZQUNYLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyx5QkFBeUI7UUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXZDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUVyQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV4RCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7YUFBTSxDQUFDO1lBQ0osU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQ3ZCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FDekYsQ0FBQztZQUVGLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUN0QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FDMUYsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsS0FBb0I7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFBRSxPQUFPO1FBRTdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUVsRCxJQUFJLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLGtDQUFrQyxDQUFDLEVBQUUsQ0FBQztnQkFDekUsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTO1FBQ2IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFaEMsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxRQUFRO1FBQ1osTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRS9DLElBQUksZUFBZTtZQUFFLE9BQU8sZUFBZSxFQUFFLENBQUM7UUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLE9BQU8sT0FBTyxFQUFFLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU8sUUFBUSxDQUFJLEtBQVE7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTVCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUVyQixJQUFJLE9BQU8sWUFBWSxlQUFlLEVBQUUsQ0FBQztZQUNyQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRS9CLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLFlBQVksU0FBUyxFQUFFLENBQUM7WUFDdEQsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0lBRU8sZUFBZTtRQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFM0MsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVyQyxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUF3QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsVUFBVTtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUV0QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsaUNBQWlDO0lBQ3pCLFNBQVMsQ0FBQyxZQUEwQjtRQUN4QyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRXJDLElBQUksT0FBTyxZQUFZLFNBQVMsSUFBSSxPQUFPLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDbkUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxzQkFBc0IsRUFBRSxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNuSCxDQUFDO2tJQW5UUSxhQUFhO3NIQUFiLGFBQWEsNDBEQStDaUIsaUJBQWlCLHdGQUVoQixRQUFRLCtGQUVELFlBQVksK0dBR0wsZ0JBQWdCLGlHQUV4QixpQkFBaUIsNkZBRXJCLG1CQUFtQixpRkFFZixrQkFBa0Isa0pDbE5wRSxpekZBeUVBLHluS0RnRVEsbUJBQW1CLDQrQkFDbkIsZ0JBQWdCLHNJQUNoQixlQUFlLGdPQUNmLE9BQU8sbUdBQ1AsaUJBQWlCLHlhQTNFWixrQkFBa0Isd0hBNkV2QixZQUFZLDRJQUNaLGVBQWUsNklBRVAsQ0FBQyx3Q0FBd0MsQ0FBQzs7NEZBSTdDLGFBQWE7a0JBL0J6QixTQUFTO2lDQUNNLElBQUksWUFDTixpQkFBaUIsWUFDakIsZUFBZSxRQUduQjt3QkFDRixLQUFLLEVBQUUsU0FBUzt3QkFDaEIsU0FBUyxFQUFFLGFBQWE7d0JBQ3hCLG9DQUFvQyxFQUFFLFdBQVc7d0JBQ2pELG1DQUFtQyxFQUFFLFVBQVU7d0JBQy9DLGtDQUFrQyxFQUFFLFlBQVk7d0JBQ2hELFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLGlCQUFpQixFQUFFLGlCQUFpQjt3QkFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO3FCQUN2QyxrQkFDZSxDQUFDLGVBQWUsQ0FBQyxXQUN4Qjt3QkFDTCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csQ0FBQyx3Q0FBd0MsQ0FBQyxtQkFDckMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtNb25pdG9yRm9jdXMsIENka1RyYXBGb2N1cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHZpZXdDaGlsZCxcbiAgICB2aWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIEticUFuaW1hdGlvbkN1cnZlcyxcbiAgICBLYnFBbmltYXRpb25EdXJhdGlvbnMsXG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticUZvY3VzTW9uaXRvcixcbiAgICBQb3BVcFBsYWNlbWVudHNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCwgS2JxTGFiZWwgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxU2VsZWN0IH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3NlbGVjdCc7XG5pbXBvcnQgeyBLYnFUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEticVRyZWVTZWxlY3QgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdHJlZS1zZWxlY3QnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBLQlFfSU5MSU5FX0VESVRfQUNUSU9OX0JVVFRPTlNfQU5JTUFUSU9OID0gdHJpZ2dlcigncGFuZWxBbmltYXRpb24nLCBbXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgYCR7S2JxQW5pbWF0aW9uRHVyYXRpb25zLkluc3RhbnR9ICR7S2JxQW5pbWF0aW9uQ3VydmVzLkRlY2VsZXJhdGlvbkN1cnZlfWAsXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCUpJywgb3BhY2l0eTogMSB9KVxuICAgICAgICApXSlcblxuXSk7XG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdrYnEtaW5saW5lLWVkaXQnO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFGb2N1c1JlZ2lvbkl0ZW1dJyxcbiAgICBleHBvcnRBczogJ2ticUZvY3VzUmVnaW9uSXRlbScsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGZvY3VzaW4pJzogJ2lzRm9jdXNlZCA9IHRydWUnLFxuICAgICAgICAnKGtleWRvd24udGFiKSc6ICdvblRhYk91dCgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLnNoaWZ0LnRhYiknOiAnb25UYWJPdXQoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUZvY3VzUmVnaW9uSXRlbSB7XG4gICAgcmVhZG9ubHkgdGFiT3V0ID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb25UYWJPdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYk91dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gIXRoaXMuaXNGb2N1c2VkO1xuICAgIH1cbn1cblxuLyoqIERpcmVjdGl2ZSBmb3IgZWFzeSB1c2luZyBzdHlsZXMgb2YgaW5saW5lIGVkaXQgcGxhY2Vob2xkZXIgcHVibGljbHkuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUlubGluZUVkaXRQbGFjZWhvbGRlcl0nLFxuICAgIGV4cG9ydEFzOiAna2JxSW5saW5lRWRpdFBsYWNlaG9sZGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWlubGluZS1lZGl0X19wbGFjZWhvbGRlcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXRQbGFjZWhvbGRlciB7fVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGVuaGFuY2VzIGVsZW1lbnQgYWN0aW5nIGFzIGRyb3Bkb3duIHRyaWdnZXIsXG4gKiB2aXN1YWxseSBpbmRpY2F0aW5nIHRoZSBhY3RpdmUgc3RhdGUgd2l0aCB0aGUgYGticS1hY3RpdmVgIGNsYXNzLlxuICogQWxzbywgaXQgcHJldmVudHMgY2xpY2sva2V5ZG93biBldmVudHMgZnJvbSBiZWluZyBwcm9wYWdhdGVkIHRvIGRpc2FibGUgbW9kZSB0b2dnbGluZyBvZiBwYXJlbnQgY29tcG9uZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUlubGluZUVkaXRNZW51XScsXG4gICAgZXhwb3J0QXM6ICdrYnFJbmxpbmVFZGl0TWVudScsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnYnV0dG9uJyxcbiAgICAgICAgY2xhc3M6ICdrYnEtaW5saW5lLWVkaXRfX21lbnUnLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2Ryb3Bkb3duVHJpZ2dlcj8ub3BlbmVkJyxcbiAgICAgICAgJyhjbGljayknOiAnJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICckZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCknLFxuICAgICAgICAnKGtleWRvd24uc3BhY2UpJzogJyRldmVudC5zdG9wUHJvcGFnYXRpb24oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXRNZW51IHtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93blRyaWdnZXIgPSBpbmplY3QoS2JxRHJvcGRvd25UcmlnZ2VyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIEN1c3RvbWl6YWJsZSBjb21wb25lbnQgdGhhdCBlbmFibGVzIGVkaXQtaW4tcGxhY2UgbG9naWMgZm9yIHNwZWNpZmllZCBjb250cm9sIGFuZCBpdCdzIHZpZXcuXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBwcm9qZWN0aW5nIGVkaXQvdmlldyBtb2RlIHRlbXBsYXRlcyBhbmQgYWRkcyBrZXlib2FyZC9wb2ludGVyIGhhbmRsZXJzLlxuICogRWRpdCBtb2RlIG9wZW5zIGluIGEgcG9zaXRpb25lZCBvdmVybGF5IHRoYXQgbWF0Y2hlcyB0aGUgdmlldyBtb2RlIHdpZHRoIG9yIGNhbiBiZSBjdXN0b21pemVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWlubGluZS1lZGl0JyxcbiAgICBleHBvcnRBczogJ2ticUlubGluZUVkaXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZWRpdC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbmxpbmUtZWRpdC5zY3NzJywgJy4vaW5saW5lLWVkaXQtdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiBiYXNlQ2xhc3MsXG4gICAgICAgICdbY2xhc3NdJzogJ2NsYXNzTmFtZSgpJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtaW5saW5lLWVkaXRfd2l0aC1sYWJlbF0nOiAnISFsYWJlbCgpJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtaW5saW5lLWVkaXRfd2l0aC1tZW51XSc6ICchIW1lbnUoKScsXG4gICAgICAgICdbY2xhc3Mua2JxLWlubGluZS1lZGl0X2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICdvbkNsaWNrKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uc3BhY2UpJzogJ29uQ2xpY2soJGV2ZW50KSdcbiAgICB9LFxuICAgIGhvc3REaXJlY3RpdmVzOiBbS2JxRm9jdXNNb25pdG9yXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxVG9vbHRpcFRyaWdnZXIsXG4gICAgICAgIEticUZvY3VzUmVnaW9uSXRlbSxcbiAgICAgICAgQ2RrVHJhcEZvY3VzLFxuICAgICAgICBDZGtNb25pdG9yRm9jdXNcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFtLQlFfSU5MSU5FX0VESVRfQUNUSU9OX0JVVFRPTlNfQU5JTUFUSU9OXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBrYnFGb2N1c01vbml0b3IgPSBpbmplY3QoS2JxRm9jdXNNb25pdG9yLCB7IGhvc3Q6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNhdmUvY2FuY2VsIGFjdGlvbiBidXR0b25zIGluIGVkaXQgbW9kZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNob3dBY3Rpb25zID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBzaG93IHZhbGlkYXRpb24gZXJyb3IgdG9vbHRpcHMgb24gc2F2ZSBhdHRlbXB0cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2hvd1Rvb2x0aXBPbkVycm9yID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqIEN1c3RvbSB2YWxpZGF0aW9uIHRvb2x0aXAgbWVzc2FnZS4gKi9cbiAgICByZWFkb25seSB2YWxpZGF0aW9uVG9vbHRpcCA9IGlucHV0PHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIGNvbXBvbmVudCwgcHJldmVudGluZyBpbnRlcmFjdGlvbiBhbmQgbW9kZSBzd2l0Y2hpbmcuIE9ubHkgYWxsb3dzIG1lbnUgZHJvcGRvd24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKiogQ3VzdG9tIHdpZHRoIGluIHBpeGVscyBmb3IgdGhlIGVkaXQgbW9kZSBvdmVybGF5LiBBdXRvLWNhbGN1bGF0ZWQgaWYgbm90IHNldC4gKi9cbiAgICByZWFkb25seSBlZGl0TW9kZVdpZHRoID0gaW5wdXQodW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICAgIC8qKiBVc2VyLWRlZmluZWQgdG9vbHRpcCBwbGFjZW1lbnQgKi9cbiAgICByZWFkb25seSB0b29sdGlwUGxhY2VtZW50ID0gaW5wdXQ8UG9wVXBQbGFjZW1lbnRzPigpO1xuICAgIC8qKiBIYW5kbGVyIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHZhbHVlICovXG4gICAgcmVhZG9ubHkgZ2V0VmFsdWVIYW5kbGVyID0gaW5wdXQ8KCkgPT4gdW5rbm93bj4oKTtcbiAgICAvKiogSGFuZGxlciBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlICovXG4gICAgcmVhZG9ubHkgc2V0VmFsdWVIYW5kbGVyID0gaW5wdXQ8KHZhbHVlOiBhbnkpID0+IHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogQ3VzdG9taXphYmxlIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHNhdmluZyBvbiBlbnRlciBhdmFpbGFibGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2FuU2F2ZU9uRW50ZXIgPSBpbnB1dChcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgaGFzTW9kaWZpZXJLZXkoZXZlbnQsICdjdHJsS2V5JywgJ21ldGFLZXknKSB8fCAhKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpXG4gICAgKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlubGluZSBlZGl0IGlzIHNhdmVkIHN1Y2Nlc3NmdWxseS4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2F2ZWQgPSBvdXRwdXQoKTtcbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbmxpbmUgZWRpdCBpcyBjYW5jZWxlZCBhbmQgY2hhbmdlcyBhcmUgZGlzY2FyZGVkLiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjYW5jZWxlZCA9IG91dHB1dCgpO1xuICAgIC8qKiBFbWl0dGVkIHdoZW4gbW9kZSBzd2l0Y2hlZCB0byBlZGl0L3ZpZXcgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZUNoYW5nZSA9IG91dHB1dDwndmlldycgfCAnZWRpdCc+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtZW51ID0gY29udGVudENoaWxkKEticUlubGluZUVkaXRNZW51KTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IGNvbnRlbnRDaGlsZChLYnFMYWJlbCk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUZpZWxkUmVmID0gY29udGVudENoaWxkKEticUZvcm1GaWVsZCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5T3JpZ2luID0gdmlld0NoaWxkLnJlcXVpcmVkKENka092ZXJsYXlPcmlnaW4pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2x0aXBUcmlnZ2VyID0gdmlld0NoaWxkKEticVRvb2x0aXBUcmlnZ2VyKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5RGlyID0gdmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlZ2lvbkl0ZW1zID0gdmlld0NoaWxkcmVuKEticUZvY3VzUmVnaW9uSXRlbSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2RlID0gc2lnbmFsPCd2aWV3JyB8ICdlZGl0Jz4oJ3ZpZXcnKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5V2lkdGggPSBzaWduYWw8bnVtYmVyIHwgc3RyaW5nPignJyk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsU3RyYXRlZ3kgPSBzaWduYWw8U2Nyb2xsU3RyYXRlZ3k+KHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWFkb25seSBtb2RlQXNSZWFkb25seSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZSgpKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsYXNzTmFtZSA9IGNvbXB1dGVkKCgpID0+IGAke2Jhc2VDbGFzc31fJHt0aGlzLm1vZGUoKX1gKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0VkaXRNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tb2RlKCkgPT09ICdlZGl0Jyk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFiSW5kZXggPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pc0VkaXRNb2RlKCkgfHwgdGhpcy5kaXNhYmxlZCgpID8gLTEgOiAwKSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMubW9kZSlcbiAgICAgICAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY3VycmVudE1vZGUpID0+IHRoaXMubW9kZUNoYW5nZS5lbWl0KGN1cnJlbnRNb2RlKSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlLnVwZGF0ZSgobW9kZSkgPT4gKG1vZGUgPT09ICd2aWV3JyA/ICdlZGl0JyA6ICd2aWV3JykpO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5pc0VkaXRNb2RlKCkpIHJldHVybjtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5rYnFGb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5vdmVybGF5T3JpZ2luKCkuZWxlbWVudFJlZiwgJ3Byb2dyYW0nKTtcblxuICAgICAgICB0aGlzLnRvZ2dsZU1vZGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBvbkF0dGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPdmVybGF5V2lkdGgoKTtcbiAgICAgICAgdGhpcy5zZXRPdmVybGF5S2V5ZG93bkxpc3RlbmVyKCk7XG5cbiAgICAgICAgY29uc3QgZm9ybUZpZWxkUmVmID0gdGhpcy5mb3JtRmllbGRSZWYoKTtcblxuICAgICAgICBmb3JtRmllbGRSZWY/LmNvbnRyb2wuc3RhdGVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vdmVybGF5RGlyKCkhLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNJbnZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9vbHRpcFRyaWdnZXIgPSB0aGlzLnRvb2x0aXBUcmlnZ2VyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFRyaWdnZXI/LmlzT3BlbiAmJiB0b29sdGlwVHJpZ2dlcj8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZm9ybUZpZWxkUmVmPy5mb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dE5hdGl2ZUVsZW1lbnQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSBpbnB1dD8uc2VsZWN0KCk7XG5cbiAgICAgICAgICAgIGlmIChmb3JtRmllbGRSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYW5lbChmb3JtRmllbGRSZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBzYXZlKCRldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSW52YWxpZCgpKSB7XG4gICAgICAgICAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcE9uRXJyb3IoKSAmJiB0aGlzLnRvb2x0aXBUcmlnZ2VyKCk/LnNob3coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9kZSgpO1xuICAgICAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5pbml0aWFsVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dE5hdGl2ZUVsZW1lbnQoKTtcblxuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uRW5kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9nZ2xlTW9kZSgpO1xuICAgICAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBvbk92ZXJsYXlLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkUmVmKCk/LmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIGNvbnN0IGNhblNhdmVPbkVudGVyID0gdGhpcy5jYW5TYXZlT25FbnRlcigpO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICAgICAgICAgIGlmIChjYW5TYXZlT25FbnRlcihldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRSZWYoKT8uY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNhdmUoZXZlbnQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHVwIFRhYiBrZXkgbGlzdGVuZXJzIG9uIHJlZ2lvbiBpdGVtcy5cbiAgICAgKiBTaW5nbGUgaXRlbTogVGFiIG1vdmVzIHRvIG5leHQgZWRpdC5cbiAgICAgKiBNdWx0aXBsZSBpdGVtczogU2hpZnQrVGFiIG9uIGZpcnN0IG9yIFRhYiBvbiBsYXN0IG1vdmVzIHRvIG5leHQgZWRpdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE92ZXJsYXlLZXlkb3duTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZ2lvbkl0ZW1zID0gdGhpcy5yZWdpb25JdGVtcygpO1xuXG4gICAgICAgIGlmIChyZWdpb25JdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSByZWdpb25JdGVtcy5hdCgwKTtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSByZWdpb25JdGVtcy5hdChyZWdpb25JdGVtcy5sZW5ndGggLSAxKTtcblxuICAgICAgICBpZiAocmVnaW9uSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBmaXJzdEl0ZW0/LnRhYk91dC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLnNhdmVBbmRGb2N1c05leHRJbmxpbmVFZGl0KGV2ZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaXJzdEl0ZW0/LnRhYk91dC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGV2ZW50KSA9PiBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JykgJiYgdGhpcy5zYXZlQW5kRm9jdXNOZXh0SW5saW5lRWRpdChldmVudClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGxhc3RJdGVtPy50YWJPdXQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChldmVudCkgPT4gIWhhc01vZGlmaWVyS2V5KGV2ZW50LCAnc2hpZnRLZXknKSAmJiB0aGlzLnNhdmVBbmRGb2N1c05leHRJbmxpbmVFZGl0KGV2ZW50KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZUFuZEZvY3VzTmV4dElubGluZUVkaXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkKCkpIHJldHVybjtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChhY3RpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdrYnEtaW5saW5lLWVkaXRfX2ZvY3VzX2NvbnRhaW5lcicpKSB7XG4gICAgICAgICAgICAgICAgYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgeyBrZXk6ICdFbnRlcicgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybUZpZWxkUmVmID0gdGhpcy5mb3JtRmllbGRSZWYoKTtcblxuICAgICAgICBpZiAoIWZvcm1GaWVsZFJlZikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBmb3JtRmllbGRSZWYuaW52YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbHVlKCkge1xuICAgICAgICBjb25zdCBnZXRWYWx1ZUhhbmRsZXIgPSB0aGlzLmdldFZhbHVlSGFuZGxlcigpO1xuXG4gICAgICAgIGlmIChnZXRWYWx1ZUhhbmRsZXIpIHJldHVybiBnZXRWYWx1ZUhhbmRsZXIoKTtcblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2VyY2VDb250cm9sKCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2w/LnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWU8VD4odmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlSGFuZGxlcigpO1xuXG4gICAgICAgIGlmIChzZXRWYWx1ZSkge1xuICAgICAgICAgICAgc2V0VmFsdWUodGhpcy5pbml0aWFsVmFsdWUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2VyY2VDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2VyY2VDb250cm9sKCkge1xuICAgICAgICBjb25zdCBmb3JtRmllbGRSZWYgPSB0aGlzLmZvcm1GaWVsZFJlZigpO1xuXG4gICAgICAgIGlmICghZm9ybUZpZWxkUmVmKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoZm9ybUZpZWxkUmVmLmNvbnRyb2wubmdDb250cm9sIGluc3RhbmNlb2YgTmdDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybUZpZWxkUmVmLmNvbnRyb2wubmdDb250cm9sLmNvbnRyb2w7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybUZpZWxkUmVmLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPdmVybGF5V2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVkaXRNb2RlV2lkdGggPSB0aGlzLmVkaXRNb2RlV2lkdGgoKTtcblxuICAgICAgICBpZiAoZWRpdE1vZGVXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5V2lkdGguc2V0KGVkaXRNb2RlV2lkdGgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCA9IHRoaXMubGFiZWwoKVxuICAgICAgICAgICAgPyB0aGlzLm92ZXJsYXlPcmlnaW4oKS5lbGVtZW50UmVmXG4gICAgICAgICAgICA6IHRoaXMuZWxlbWVudFJlZjtcblxuICAgICAgICB0aGlzLm92ZXJsYXlXaWR0aC5zZXQoZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA/PyAnJyk7XG4gICAgfVxuXG4gICAgLy8gQFRPRE8gcmVmYWN0b3IgdGhpcyAoI0RTLTQxODEpXG4gICAgcHJpdmF0ZSBvcGVuUGFuZWwoZm9ybUZpZWxkUmVmOiBLYnFGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1GaWVsZFJlZi5jb250cm9sO1xuXG4gICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgS2JxU2VsZWN0IHx8IGNvbnRyb2wgaW5zdGFuY2VvZiBLYnFUcmVlU2VsZWN0KSB7XG4gICAgICAgICAgICBjb250cm9sLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgS2JxQXV0b2NvbXBsZXRlVHJpZ2dlcikge1xuICAgICAgICAgICAgY29udHJvbC5vcGVuUGFuZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5wdXROYXRpdmVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlEaXIoKT8ub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJmaWxlXCJdKSx0ZXh0YXJlYScpID8/IG51bGw7XG4gICAgfVxufVxuIiwiQGlmIChsYWJlbCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWxhYmVsXCIgLz5cbiAgICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fdmlldy1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJba2JxSW5saW5lRWRpdFZpZXdNb2RlXVwiIC8+XG5cbiAgICA8ZGl2XG4gICAgICAgICNvdmVybGF5T3JpZ2luXG4gICAgICAgIGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19mb2N1c19jb250YWluZXIga2JxLWlubGluZS1lZGl0X19vdmVybGF5LW9yaWdpblwiXG4gICAgICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuXG4gICAgQGlmIChtZW51KCkgJiYgbW9kZSgpID09PSAndmlldycpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbWVudS1tYXNrIGticS1tYXNrXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19tZW51LW1hc2stZmFkZSBrYnEtbWFza19fZmFkZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbWVudS1tYXNrLWNvbnRhaW5lciBrYnEtbWFza19fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticUlubGluZUVkaXRNZW51XVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvblxuICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNFZGl0TW9kZSgpXCJcbiAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3ZlcmxheU9yaWdpblwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WV09XCItb3ZlcmxheU9yaWdpbi5vZmZzZXRIZWlnaHRcIlxuICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIm92ZXJsYXlXaWR0aCgpXCJcbiAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlEaXNhYmxlQ2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3ldPVwic2Nyb2xsU3RyYXRlZ3koKVwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICAgICAgICAoYXR0YWNoKT1cIm9uQXR0YWNoKClcIlxuICAgICAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJzYXZlKCRldmVudClcIlxuICAgICAgICAob3ZlcmxheUtleWRvd24pPVwib25PdmVybGF5S2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtaW5saW5lLWVkaXRfX3BhbmVsXCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19jb250cm9sLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAga2JxRm9jdXNSZWdpb25JdGVtXG4gICAgICAgICAgICAgICAgW2ticVRvb2x0aXBDb2xvcl09XCJjb2xvcnMuRXJyb3JcIlxuICAgICAgICAgICAgICAgIFtrYnFUb29sdGlwXT1cInZhbGlkYXRpb25Ub29sdGlwKCkgPz8gJydcIlxuICAgICAgICAgICAgICAgIFtrYnFUb29sdGlwQXJyb3ddPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtrYnFUcmlnZ2VyXT1cIidtYW51YWwnXCJcbiAgICAgICAgICAgICAgICBba2JxUGxhY2VtZW50XT1cInRvb2x0aXBQbGFjZW1lbnQoKSA/PyBwbGFjZW1lbnRzLlRvcExlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnFJbmxpbmVFZGl0RWRpdE1vZGVdXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHNob3dBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19hY3Rpb24tYnV0dG9uc1wiIHJvbGU9XCJncm91cFwiIFtAcGFuZWxBbmltYXRpb25dPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGticS1idXR0b24gW2NvbG9yXT1cIidjb250cmFzdCdcIiAoY2xpY2spPVwic2F2ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGVja18xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGticUZvY3VzUmVnaW9uSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIidjb250cmFzdC1mYWRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS14bWFya18xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2lubGluZS1lZGl0L2lubGluZS1lZGl0LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFDSCxrQkFBa0Is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LEVBQUUsU0FBUzt3QkFDaEIsU0FBUyxFQUFFLGFBQWE7d0JBQ3hCLG9DQUFvQyxFQUFFLFdBQVc7d0JBQ2pELG1DQUFtQyxFQUFFLFVBQVU7d0JBQy9DLGtDQUFrQyxFQUFFLFlBQVk7d0JBQ2hELFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLGlCQUFpQixFQUFFLGlCQUFpQjt3QkFDcEMsaUJBQWlCLEVBQUUsaUJBQWlCO3FCQUN2QyxrQkFDZSxDQUFDLGVBQWUsQ0FBQyxXQUN4Qjt3QkFDTCxtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csQ0FBQyx3Q0FBd0MsQ0FBQyxtQkFDckMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtNb25pdG9yRm9jdXMsIENka1RyYXBGb2N1cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGhhc01vZGlmaWVyS2V5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIE92ZXJsYXksIFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHZpZXdDaGlsZCxcbiAgICB2aWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIEticUFuaW1hdGlvbkN1cnZlcyxcbiAgICBLYnFBbmltYXRpb25EdXJhdGlvbnMsXG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticUZvY3VzTW9uaXRvcixcbiAgICBQb3BVcFBsYWNlbWVudHNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCwgS2JxTGFiZWwgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxU2VsZWN0IH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3NlbGVjdCc7XG5pbXBvcnQgeyBLYnFUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEticVRyZWVTZWxlY3QgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdHJlZS1zZWxlY3QnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBLQlFfSU5MSU5FX0VESVRfQUNUSU9OX0JVVFRPTlNfQU5JTUFUSU9OID0gdHJpZ2dlcigncGFuZWxBbmltYXRpb24nLCBbXG4gICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgYCR7S2JxQW5pbWF0aW9uRHVyYXRpb25zLkluc3RhbnR9ICR7S2JxQW5pbWF0aW9uQ3VydmVzLkRlY2VsZXJhdGlvbkN1cnZlfWAsXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCUpJywgb3BhY2l0eTogMSB9KVxuICAgICAgICApXSlcblxuXSk7XG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdrYnEtaW5saW5lLWVkaXQnO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFGb2N1c1JlZ2lvbkl0ZW1dJyxcbiAgICBleHBvcnRBczogJ2ticUZvY3VzUmVnaW9uSXRlbScsXG4gICAgaG9zdDoge1xuICAgICAgICAnKGZvY3VzaW4pJzogJ2lzRm9jdXNlZCA9IHRydWUnLFxuICAgICAgICAnKGtleWRvd24udGFiKSc6ICdvblRhYk91dCgkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLnNoaWZ0LnRhYiknOiAnb25UYWJPdXQoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUZvY3VzUmVnaW9uSXRlbSB7XG4gICAgcmVhZG9ubHkgdGFiT3V0ID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICBwcm90ZWN0ZWQgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb25UYWJPdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRhYk91dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gIXRoaXMuaXNGb2N1c2VkO1xuICAgIH1cbn1cblxuLyoqIERpcmVjdGl2ZSBmb3IgZWFzeSB1c2luZyBzdHlsZXMgb2YgaW5saW5lIGVkaXQgcGxhY2Vob2xkZXIgcHVibGljbHkuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUlubGluZUVkaXRQbGFjZWhvbGRlcl0nLFxuICAgIGV4cG9ydEFzOiAna2JxSW5saW5lRWRpdFBsYWNlaG9sZGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWlubGluZS1lZGl0X19wbGFjZWhvbGRlcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXRQbGFjZWhvbGRlciB7fVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGVuaGFuY2VzIGVsZW1lbnQgYWN0aW5nIGFzIGRyb3Bkb3duIHRyaWdnZXIsXG4gKiB2aXN1YWxseSBpbmRpY2F0aW5nIHRoZSBhY3RpdmUgc3RhdGUgd2l0aCB0aGUgYGticS1hY3RpdmVgIGNsYXNzLlxuICogQWxzbywgaXQgcHJldmVudHMgY2xpY2sva2V5ZG93biBldmVudHMgZnJvbSBiZWluZyBwcm9wYWdhdGVkIHRvIGRpc2FibGUgbW9kZSB0b2dnbGluZyBvZiBwYXJlbnQgY29tcG9uZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUlubGluZUVkaXRNZW51XScsXG4gICAgZXhwb3J0QXM6ICdrYnFJbmxpbmVFZGl0TWVudScsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnYnV0dG9uJyxcbiAgICAgICAgY2xhc3M6ICdrYnEtaW5saW5lLWVkaXRfX21lbnUnLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2Ryb3Bkb3duVHJpZ2dlcj8ub3BlbmVkJyxcbiAgICAgICAgJyhjbGljayknOiAnJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICckZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCknLFxuICAgICAgICAnKGtleWRvd24uc3BhY2UpJzogJyRldmVudC5zdG9wUHJvcGFnYXRpb24oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXRNZW51IHtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93blRyaWdnZXIgPSBpbmplY3QoS2JxRHJvcGRvd25UcmlnZ2VyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIEN1c3RvbWl6YWJsZSBjb21wb25lbnQgdGhhdCBlbmFibGVzIGVkaXQtaW4tcGxhY2UgbG9naWMgZm9yIHNwZWNpZmllZCBjb250cm9sIGFuZCBpdCdzIHZpZXcuXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBwcm9qZWN0aW5nIGVkaXQvdmlldyBtb2RlIHRlbXBsYXRlcyBhbmQgYWRkcyBrZXlib2FyZC9wb2ludGVyIGhhbmRsZXJzLlxuICogRWRpdCBtb2RlIG9wZW5zIGluIGEgcG9zaXRpb25lZCBvdmVybGF5IHRoYXQgbWF0Y2hlcyB0aGUgdmlldyBtb2RlIHdpZHRoIG9yIGNhbiBiZSBjdXN0b21pemVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWlubGluZS1lZGl0JyxcbiAgICBleHBvcnRBczogJ2ticUlubGluZUVkaXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZWRpdC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbmxpbmUtZWRpdC5zY3NzJywgJy4vaW5saW5lLWVkaXQtdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiBiYXNlQ2xhc3MsXG4gICAgICAgICdbY2xhc3NdJzogJ2NsYXNzTmFtZSgpJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtaW5saW5lLWVkaXRfd2l0aC1sYWJlbF0nOiAnISFsYWJlbCgpJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtaW5saW5lLWVkaXRfd2l0aC1tZW51XSc6ICchIW1lbnUoKScsXG4gICAgICAgICdbY2xhc3Mua2JxLWlubGluZS1lZGl0X2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICAgICAgJyhrZXlkb3duLmVudGVyKSc6ICdvbkNsaWNrKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uc3BhY2UpJzogJ29uQ2xpY2soJGV2ZW50KSdcbiAgICB9LFxuICAgIGhvc3REaXJlY3RpdmVzOiBbS2JxRm9jdXNNb25pdG9yXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxVG9vbHRpcFRyaWdnZXIsXG4gICAgICAgIEticUZvY3VzUmVnaW9uSXRlbSxcbiAgICAgICAgQ2RrVHJhcEZvY3VzLFxuICAgICAgICBDZGtNb25pdG9yRm9jdXNcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFtLQlFfSU5MSU5FX0VESVRfQUNUSU9OX0JVVFRPTlNfQU5JTUFUSU9OXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticUlubGluZUVkaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBrYnFGb2N1c01vbml0b3IgPSBpbmplY3QoS2JxRm9jdXNNb25pdG9yLCB7IGhvc3Q6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHNhdmUvY2FuY2VsIGFjdGlvbiBidXR0b25zIGluIGVkaXQgbW9kZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNob3dBY3Rpb25zID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBzaG93IHZhbGlkYXRpb24gZXJyb3IgdG9vbHRpcHMgb24gc2F2ZSBhdHRlbXB0cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2hvd1Rvb2x0aXBPbkVycm9yID0gaW5wdXQodHJ1ZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqIEN1c3RvbSB2YWxpZGF0aW9uIHRvb2x0aXAgbWVzc2FnZS4gKi9cbiAgICByZWFkb25seSB2YWxpZGF0aW9uVG9vbHRpcCA9IGlucHV0PHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgLyoqXG4gICAgICogRGlzYWJsZXMgdGhlIGNvbXBvbmVudCwgcHJldmVudGluZyBpbnRlcmFjdGlvbiBhbmQgbW9kZSBzd2l0Y2hpbmcuIE9ubHkgYWxsb3dzIG1lbnUgZHJvcGRvd24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKiogQ3VzdG9tIHdpZHRoIGluIHBpeGVscyBmb3IgdGhlIGVkaXQgbW9kZSBvdmVybGF5LiBBdXRvLWNhbGN1bGF0ZWQgaWYgbm90IHNldC4gKi9cbiAgICByZWFkb25seSBlZGl0TW9kZVdpZHRoID0gaW5wdXQodW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICAgIC8qKiBVc2VyLWRlZmluZWQgdG9vbHRpcCBwbGFjZW1lbnQgKi9cbiAgICByZWFkb25seSB0b29sdGlwUGxhY2VtZW50ID0gaW5wdXQ8UG9wVXBQbGFjZW1lbnRzPigpO1xuICAgIC8qKiBIYW5kbGVyIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHZhbHVlICovXG4gICAgcmVhZG9ubHkgZ2V0VmFsdWVIYW5kbGVyID0gaW5wdXQ8KCkgPT4gdW5rbm93bj4oKTtcbiAgICAvKiogSGFuZGxlciBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlICovXG4gICAgcmVhZG9ubHkgc2V0VmFsdWVIYW5kbGVyID0gaW5wdXQ8KHZhbHVlOiBhbnkpID0+IHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogQ3VzdG9taXphYmxlIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHNhdmluZyBvbiBlbnRlciBhdmFpbGFibGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2FuU2F2ZU9uRW50ZXIgPSBpbnB1dChcbiAgICAgICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgaGFzTW9kaWZpZXJLZXkoZXZlbnQsICdjdHJsS2V5JywgJ21ldGFLZXknKSB8fCAhKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpXG4gICAgKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGlubGluZSBlZGl0IGlzIHNhdmVkIHN1Y2Nlc3NmdWxseS4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2F2ZWQgPSBvdXRwdXQoKTtcbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBpbmxpbmUgZWRpdCBpcyBjYW5jZWxlZCBhbmQgY2hhbmdlcyBhcmUgZGlzY2FyZGVkLiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjYW5jZWxlZCA9IG91dHB1dCgpO1xuICAgIC8qKiBFbWl0dGVkIHdoZW4gbW9kZSBzd2l0Y2hlZCB0byBlZGl0L3ZpZXcgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZUNoYW5nZSA9IG91dHB1dDwndmlldycgfCAnZWRpdCc+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtZW51ID0gY29udGVudENoaWxkKEticUlubGluZUVkaXRNZW51KTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbCA9IGNvbnRlbnRDaGlsZChLYnFMYWJlbCk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUZpZWxkUmVmID0gY29udGVudENoaWxkKEticUZvcm1GaWVsZCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5T3JpZ2luID0gdmlld0NoaWxkLnJlcXVpcmVkKENka092ZXJsYXlPcmlnaW4pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2x0aXBUcmlnZ2VyID0gdmlld0NoaWxkKEticVRvb2x0aXBUcmlnZ2VyKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5RGlyID0gdmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlZ2lvbkl0ZW1zID0gdmlld0NoaWxkcmVuKEticUZvY3VzUmVnaW9uSXRlbSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2RlID0gc2lnbmFsPCd2aWV3JyB8ICdlZGl0Jz4oJ3ZpZXcnKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5V2lkdGggPSBzaWduYWw8bnVtYmVyIHwgc3RyaW5nPignJyk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsU3RyYXRlZ3kgPSBzaWduYWw8U2Nyb2xsU3RyYXRlZ3k+KHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWFkb25seSBtb2RlQXNSZWFkb25seSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZSgpKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsYXNzTmFtZSA9IGNvbXB1dGVkKCgpID0+IGAke2Jhc2VDbGFzc31fJHt0aGlzLm1vZGUoKX1gKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0VkaXRNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tb2RlKCkgPT09ICdlZGl0Jyk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFiSW5kZXggPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pc0VkaXRNb2RlKCkgfHwgdGhpcy5kaXNhYmxlZCgpID8gLTEgOiAwKSk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMubW9kZSlcbiAgICAgICAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY3VycmVudE1vZGUpID0+IHRoaXMubW9kZUNoYW5nZS5lbWl0KGN1cnJlbnRNb2RlKSk7XG4gICAgfVxuXG4gICAgLyoqIE1hbnVhbGx5IHN3aXRjaCBtb2RlICovXG4gICAgdG9nZ2xlTW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlLnVwZGF0ZSgobW9kZSkgPT4gKG1vZGUgPT09ICd2aWV3JyA/ICdlZGl0JyA6ICd2aWV3JykpO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5pc0VkaXRNb2RlKCkpIHJldHVybjtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5rYnFGb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5vdmVybGF5T3JpZ2luKCkuZWxlbWVudFJlZiwgJ3Byb2dyYW0nKTtcblxuICAgICAgICB0aGlzLnRvZ2dsZU1vZGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBvbkF0dGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPdmVybGF5V2lkdGgoKTtcbiAgICAgICAgdGhpcy5zZXRPdmVybGF5S2V5ZG93bkxpc3RlbmVyKCk7XG5cbiAgICAgICAgY29uc3QgZm9ybUZpZWxkUmVmID0gdGhpcy5mb3JtRmllbGRSZWYoKTtcblxuICAgICAgICBmb3JtRmllbGRSZWY/LmNvbnRyb2wuc3RhdGVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vdmVybGF5RGlyKCkhLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNJbnZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9vbHRpcFRyaWdnZXIgPSB0aGlzLnRvb2x0aXBUcmlnZ2VyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFRyaWdnZXI/LmlzT3BlbiAmJiB0b29sdGlwVHJpZ2dlcj8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZm9ybUZpZWxkUmVmPy5mb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dE5hdGl2ZUVsZW1lbnQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSBpbnB1dD8uc2VsZWN0KCk7XG5cbiAgICAgICAgICAgIGlmIChmb3JtRmllbGRSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5QYW5lbChmb3JtRmllbGRSZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBzYXZlKCRldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzSW52YWxpZCgpKSB7XG4gICAgICAgICAgICAkZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcE9uRXJyb3IoKSAmJiB0aGlzLnRvb2x0aXBUcmlnZ2VyKCk/LnNob3coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9kZSgpO1xuICAgICAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5pbml0aWFsVmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dE5hdGl2ZUVsZW1lbnQoKTtcblxuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uRW5kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9nZ2xlTW9kZSgpO1xuICAgICAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBvbk92ZXJsYXlLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkUmVmKCk/LmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIGNvbnN0IGNhblNhdmVPbkVudGVyID0gdGhpcy5jYW5TYXZlT25FbnRlcigpO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICAgICAgICAgIGlmIChjYW5TYXZlT25FbnRlcihldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRSZWYoKT8uY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNhdmUoZXZlbnQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHVwIFRhYiBrZXkgbGlzdGVuZXJzIG9uIHJlZ2lvbiBpdGVtcy5cbiAgICAgKiBTaW5nbGUgaXRlbTogVGFiIG1vdmVzIHRvIG5leHQgZWRpdC5cbiAgICAgKiBNdWx0aXBsZSBpdGVtczogU2hpZnQrVGFiIG9uIGZpcnN0IG9yIFRhYiBvbiBsYXN0IG1vdmVzIHRvIG5leHQgZWRpdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE92ZXJsYXlLZXlkb3duTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZ2lvbkl0ZW1zID0gdGhpcy5yZWdpb25JdGVtcygpO1xuXG4gICAgICAgIGlmIChyZWdpb25JdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSByZWdpb25JdGVtcy5hdCgwKTtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSByZWdpb25JdGVtcy5hdChyZWdpb25JdGVtcy5sZW5ndGggLSAxKTtcblxuICAgICAgICBpZiAocmVnaW9uSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBmaXJzdEl0ZW0/LnRhYk91dC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLnNhdmVBbmRGb2N1c05leHRJbmxpbmVFZGl0KGV2ZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaXJzdEl0ZW0/LnRhYk91dC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGV2ZW50KSA9PiBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JykgJiYgdGhpcy5zYXZlQW5kRm9jdXNOZXh0SW5saW5lRWRpdChldmVudClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGxhc3RJdGVtPy50YWJPdXQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChldmVudCkgPT4gIWhhc01vZGlmaWVyS2V5KGV2ZW50LCAnc2hpZnRLZXknKSAmJiB0aGlzLnNhdmVBbmRGb2N1c05leHRJbmxpbmVFZGl0KGV2ZW50KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2F2ZUFuZEZvY3VzTmV4dElubGluZUVkaXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkKCkpIHJldHVybjtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChhY3RpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdrYnEtaW5saW5lLWVkaXRfX2ZvY3VzX2NvbnRhaW5lcicpKSB7XG4gICAgICAgICAgICAgICAgYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgeyBrZXk6ICdFbnRlcicgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybUZpZWxkUmVmID0gdGhpcy5mb3JtRmllbGRSZWYoKTtcblxuICAgICAgICBpZiAoIWZvcm1GaWVsZFJlZikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBmb3JtRmllbGRSZWYuaW52YWxpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbHVlKCkge1xuICAgICAgICBjb25zdCBnZXRWYWx1ZUhhbmRsZXIgPSB0aGlzLmdldFZhbHVlSGFuZGxlcigpO1xuXG4gICAgICAgIGlmIChnZXRWYWx1ZUhhbmRsZXIpIHJldHVybiBnZXRWYWx1ZUhhbmRsZXIoKTtcblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2VyY2VDb250cm9sKCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2w/LnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWU8VD4odmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlSGFuZGxlcigpO1xuXG4gICAgICAgIGlmIChzZXRWYWx1ZSkge1xuICAgICAgICAgICAgc2V0VmFsdWUodGhpcy5pbml0aWFsVmFsdWUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2VyY2VDb250cm9sKCk7XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2VyY2VDb250cm9sKCkge1xuICAgICAgICBjb25zdCBmb3JtRmllbGRSZWYgPSB0aGlzLmZvcm1GaWVsZFJlZigpO1xuXG4gICAgICAgIGlmICghZm9ybUZpZWxkUmVmKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoZm9ybUZpZWxkUmVmLmNvbnRyb2wubmdDb250cm9sIGluc3RhbmNlb2YgTmdDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybUZpZWxkUmVmLmNvbnRyb2wubmdDb250cm9sLmNvbnRyb2w7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybUZpZWxkUmVmLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPdmVybGF5V2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVkaXRNb2RlV2lkdGggPSB0aGlzLmVkaXRNb2RlV2lkdGgoKTtcblxuICAgICAgICBpZiAoZWRpdE1vZGVXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5V2lkdGguc2V0KGVkaXRNb2RlV2lkdGgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZCA9IHRoaXMubGFiZWwoKVxuICAgICAgICAgICAgPyB0aGlzLm92ZXJsYXlPcmlnaW4oKS5lbGVtZW50UmVmXG4gICAgICAgICAgICA6IHRoaXMuZWxlbWVudFJlZjtcblxuICAgICAgICB0aGlzLm92ZXJsYXlXaWR0aC5zZXQoZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA/PyAnJyk7XG4gICAgfVxuXG4gICAgLy8gQFRPRE8gcmVmYWN0b3IgdGhpcyAoI0RTLTQxODEpXG4gICAgcHJpdmF0ZSBvcGVuUGFuZWwoZm9ybUZpZWxkUmVmOiBLYnFGb3JtRmllbGQpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1GaWVsZFJlZi5jb250cm9sO1xuXG4gICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgS2JxU2VsZWN0IHx8IGNvbnRyb2wgaW5zdGFuY2VvZiBLYnFUcmVlU2VsZWN0KSB7XG4gICAgICAgICAgICBjb250cm9sLm9wZW4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgS2JxQXV0b2NvbXBsZXRlVHJpZ2dlcikge1xuICAgICAgICAgICAgY29udHJvbC5vcGVuUGFuZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5wdXROYXRpdmVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlEaXIoKT8ub3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJmaWxlXCJdKSx0ZXh0YXJlYScpID8/IG51bGw7XG4gICAgfVxufVxuIiwiQGlmIChsYWJlbCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLWxhYmVsXCIgLz5cbiAgICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fdmlldy1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJba2JxSW5saW5lRWRpdFZpZXdNb2RlXVwiIC8+XG5cbiAgICA8ZGl2XG4gICAgICAgICNvdmVybGF5T3JpZ2luXG4gICAgICAgIGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19mb2N1c19jb250YWluZXIga2JxLWlubGluZS1lZGl0X19vdmVybGF5LW9yaWdpblwiXG4gICAgICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuXG4gICAgQGlmIChtZW51KCkgJiYgbW9kZSgpID09PSAndmlldycpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbWVudS1tYXNrIGticS1tYXNrXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19tZW51LW1hc2stZmFkZSBrYnEtbWFza19fZmFkZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1pbmxpbmUtZWRpdF9fbWVudS1tYXNrLWNvbnRhaW5lciBrYnEtbWFza19fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticUlubGluZUVkaXRNZW51XVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvblxuICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNFZGl0TW9kZSgpXCJcbiAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3ZlcmxheU9yaWdpblwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T2Zmc2V0WV09XCItb3ZlcmxheU9yaWdpbi5vZmZzZXRIZWlnaHRcIlxuICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVdpZHRoXT1cIm92ZXJsYXlXaWR0aCgpXCJcbiAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlEaXNhYmxlQ2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5U2Nyb2xsU3RyYXRlZ3ldPVwic2Nyb2xsU3RyYXRlZ3koKVwiXG4gICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICAgICAgICAoYXR0YWNoKT1cIm9uQXR0YWNoKClcIlxuICAgICAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJzYXZlKCRldmVudClcIlxuICAgICAgICAob3ZlcmxheUtleWRvd24pPVwib25PdmVybGF5S2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtaW5saW5lLWVkaXRfX3BhbmVsXCIgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19jb250cm9sLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAga2JxRm9jdXNSZWdpb25JdGVtXG4gICAgICAgICAgICAgICAgW2ticVRvb2x0aXBDb2xvcl09XCJjb2xvcnMuRXJyb3JcIlxuICAgICAgICAgICAgICAgIFtrYnFUb29sdGlwXT1cInZhbGlkYXRpb25Ub29sdGlwKCkgPz8gJydcIlxuICAgICAgICAgICAgICAgIFtrYnFUb29sdGlwQXJyb3ddPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtrYnFUcmlnZ2VyXT1cIidtYW51YWwnXCJcbiAgICAgICAgICAgICAgICBba2JxUGxhY2VtZW50XT1cInRvb2x0aXBQbGFjZW1lbnQoKSA/PyBwbGFjZW1lbnRzLlRvcExlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnFJbmxpbmVFZGl0RWRpdE1vZGVdXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHNob3dBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWlubGluZS1lZGl0X19hY3Rpb24tYnV0dG9uc1wiIHJvbGU9XCJncm91cFwiIFtAcGFuZWxBbmltYXRpb25dPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGticS1idXR0b24gW2NvbG9yXT1cIidjb250cmFzdCdcIiAoY2xpY2spPVwic2F2ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGVja18xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGticUZvY3VzUmVnaW9uSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIidjb250cmFzdC1mYWRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS14bWFya18xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|