@sebgroup/green-angular 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +16 -3
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +11 -3
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -1
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +3 -3
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +16 -3
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +11 -3
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +2 -1
- package/esm2022/v-angular/textarea/textarea.component.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +26 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +28 -6
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +8 -1
- package/src/v-angular/dropdown/dropdown.component.d.ts +7 -1
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +8 -1
- package/v-angular/dropdown/dropdown.component.d.ts +7 -1
|
@@ -86,6 +86,12 @@ export class NggvDropdownComponent extends NggvBaseControlValueAccessorComponent
|
|
|
86
86
|
* Defaults to true.
|
|
87
87
|
*/
|
|
88
88
|
this.selectOnSingleOption = true;
|
|
89
|
+
/**
|
|
90
|
+
* Used to control if the dropdown list should select the current active element, when Space is pressed on the keyboard.
|
|
91
|
+
* Primary usage is for typeahead, where the should be able to write a filter query containing spaces,
|
|
92
|
+
* but not select the current active element with Space.
|
|
93
|
+
*/
|
|
94
|
+
this.selectWithSpace = true;
|
|
89
95
|
/**
|
|
90
96
|
* Used to determine which changes should be handled by the dropdown.
|
|
91
97
|
* If set to false, all changes will be handled by the dropdown.
|
|
@@ -214,11 +220,11 @@ export class NggvDropdownComponent extends NggvBaseControlValueAccessorComponent
|
|
|
214
220
|
return !('options' in option);
|
|
215
221
|
}
|
|
216
222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvDropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.DropdownUtils }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
217
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", size: "size", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption", onlyHandleDistinctChanges: "onlyHandleDistinctChanges" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n [onlyEmitDistinctChanges]=\"onlyHandleDistinctChanges\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}:host.small label{line-height:1rem;font-size:.875rem}:host.small label+.gds-input-wrapper,:host.small label+.nggv-field--locked{margin-top:.25rem}:host.small .description{font-size:.875rem;line-height:1rem;margin-bottom:.25rem}:host.small button{font-size:.875rem;line-height:1rem;padding:.38rem .5rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i6.NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges"], outputs: ["selectedValueChanged", "closed"] }] }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NggvDropdownComponent, selector: "nggv-dropdown", inputs: { thook: "thook", size: "size", placeholder: "placeholder", ariaLabel: "ariaLabel", options: "options", scrollOffset: "scrollOffset", allowControlNullishOption: "allowControlNullishOption", textToHighlight: "textToHighlight", selectOnSingleOption: "selectOnSingleOption", selectWithSpace: "selectWithSpace", onlyHandleDistinctChanges: "onlyHandleDistinctChanges" }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "keyup": "onKeyUp($event)" }, properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, queries: [{ propertyName: "selectedContentTpl", first: true, predicate: ["selectedTpl"], descendants: true, read: TemplateRef }, { propertyName: "optionContentTpl", first: true, predicate: ["optionTpl"], descendants: true, read: TemplateRef }, { propertyName: "groupLabelTpl", first: true, predicate: ["groupLabelTpl"], descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n [onlyEmitDistinctChanges]=\"onlyHandleDistinctChanges\"\n [selectWithSpace]=\"selectWithSpace\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}:host.small label{line-height:1rem;font-size:.875rem}:host.small label+.gds-input-wrapper,:host.small label+.nggv-field--locked{margin-top:.25rem}:host.small .description{font-size:.875rem;line-height:1rem;margin-bottom:.25rem}:host.small button{font-size:.875rem;line-height:1rem;padding:.38rem .5rem;min-height:2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i6.NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: ["expanded", "state", "scrollOffset", "optionContentTpl", "groupLabelTpl", "id", "thook", "options", "textToHighlight", "onlyEmitDistinctChanges", "selectWithSpace"], outputs: ["selectedValueChanged", "closed"] }] }); }
|
|
218
224
|
}
|
|
219
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvDropdownComponent, decorators: [{
|
|
220
226
|
type: Component,
|
|
221
|
-
args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n [onlyEmitDistinctChanges]=\"onlyHandleDistinctChanges\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}:host.small label{line-height:1rem;font-size:.875rem}:host.small label+.gds-input-wrapper,:host.small label+.nggv-field--locked{margin-top:.25rem}:host.small .description{font-size:.875rem;line-height:1rem;margin-bottom:.25rem}:host.small button{font-size:.875rem;line-height:1rem;padding:.38rem .5rem;min-height:2rem}\n"] }]
|
|
227
|
+
args: [{ selector: 'nggv-dropdown', template: "<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-toggle'\"\n *ngIf=\"labelContentTpl || label\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div class=\"description\" *ngIf=\"description\">{{ description }}</div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n [attr.aria-labelledby]=\"id + '-label ' + id + '-input'\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT -->\n <ng-container *ngIf=\"!locked\">\n <div class=\"gds-input-wrapper\">\n <div #input [id]=\"id + '-input'\" class=\"dropdown\">\n <button\n [id]=\"id + '-toggle'\"\n [disabled]=\"disabled\"\n type=\"button\"\n class=\"nggv-field-dropdown__label toggle\"\n [class.nggv-field--error]=\"invalid\"\n role=\"combobox\"\n aria-owns=\"listbox\"\n aria-haspopup=\"listbox\"\n aria-controls=\"listbox\"\n [attr.data-thook]=\"thook + '-toggle'\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-labelledby]=\"\n ariaLabel ? null : id + '-label ' + id + '-toggle'\n \"\n [attr.aria-label]=\"ariaLabel || null\"\n (click)=\"toggleDropdown()\"\n >\n <span>\n <ng-template\n *ngTemplateOutlet=\"\n selectedContentTpl || defaultSelectedContentTpl;\n context: { $implicit: state }\n \"\n >\n </ng-template>\n </span>\n </button>\n <nggv-dropdown-list\n #dropDownList\n [options]=\"options\"\n [scrollOffset]=\"scrollOffset\"\n [state]=\"state\"\n [expanded]=\"expanded\"\n [optionContentTpl]=\"optionContentTpl\"\n [groupLabelTpl]=\"groupLabelTpl\"\n [textToHighlight]=\"textToHighlight\"\n [onlyEmitDistinctChanges]=\"onlyHandleDistinctChanges\"\n [selectWithSpace]=\"selectWithSpace\"\n (closed)=\"setExpanded(false)\"\n (selectedValueChanged)=\"onSelectChange($event)\"\n >\n </nggv-dropdown-list>\n </div>\n <!-- ERRORS -->\n <div class=\"gds-form-item__footer error-wrapper\">\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n [solid]=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </div>\n <!-- CHILDREN -->\n <ng-content></ng-content>\n </div>\n </ng-container>\n\n <ng-template #defaultSelectedContentTpl let-state>\n <!-- eslint-disable-next-line @angular-eslint/template/eqeqeq -->\n {{ state?.key != null && state?.label ? t(state.label) : placeholder }}\n </ng-template>\n</ng-container>\n", styles: [":host{--sg-border-radius: .25rem;--sg-border-width: 1px;--sg-border-color: #868686;--text-primary-color: #333;--sg-form-control-bg: #fff;--grey-000: hsl(0 0% 100%);--grey-100: hsl(0, 0%, 97%);--grey-200: hsl(0, 0%, 91%);--grey-300: hsl(0, 0%, 87%);--grey-400: hsl(0, 0%, 81%);--grey-500: hsl(0, 0%, 68%);--grey-600: hsl(0, 0%, 53%);--grey-700: hsl(0, 0%, 29%);--grey-800: hsl(0, 0%, 20%);--grey-900: hsl(0, 0%, 10%);--grey-1000: hsl(0 0% 0%);display:flex;flex-direction:column;max-width:100%;position:relative;width:100%;z-index:0;position:initial}:host label{display:block;font-weight:500;line-height:1.25rem;width:100%}:host label+.gds-input-wrapper,:host label+.nggv-field--locked{margin-top:.5rem}:host .description{font-size:.875rem;margin-bottom:.5rem;line-height:1.25rem;width:100%}:host:not(:last-child){margin-bottom:1.5rem}:host .gds-form-item__header{display:flex}:host .gds-form-item__header .form-info{font-weight:400}:host .gds-form-item__header button.icon.small{margin-top:-.5rem;margin-right:-.5rem}:host .gds-form-item__labels{flex:1;margin-bottom:.5rem}:host .gds-form-item__labels .form-info{margin-bottom:0}:host .gds-form-item__labels .form-info a:link:not(.button,[aria-disabled]){color:#0062bc}:host .gds-form-item__labels>*{width:100%;display:block}:host .gds-form-item__expandable-info{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:height .3s cubic-bezier(.23,1,.32,1)}:host .gds-form-item__expandable-info>div{padding-bottom:.5rem}:host .gds-form-item__backdrop{position:absolute;inset:0;background:var(--gds-ref-pallet-base100);border-radius:2px;z-index:-1;margin:-1rem;opacity:0;transition:all .3s cubic-bezier(.23,1,.32,1);border:1px solid transparent}@media (prefers-reduced-motion: reduce){:host .gds-form-item__backdrop{transition:none}}:host:has([aria-expanded=true]) .gds-form-item__backdrop{opacity:1;border-radius:.25rem;border-color:var(--gds-ref-pallet-base600)}:host .gds-form-item__footer:not(:empty){margin-top:.5rem;display:flex;column-gap:.5rem}:host .gds-form-item__footer:not(:empty)>span,:host .gds-form-item__footer:not(:empty)>.form-info{font-weight:500;line-height:1.125}:host:not(:last-child){margin-bottom:unset}:host .gds-field-label--optional{font-weight:400}:host button{background-color:transparent;border:0;cursor:pointer;font-family:inherit;padding:0;padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--grey-600);--sg-border-color: var(--grey-600);background:var(--sg-form-control-bg);color:var(--text-primary-color);min-height:2.75rem;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;max-width:100%;font-size:1rem;font-weight:400;line-height:1.125;text-align:left;width:100%}:host button:focus{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media (max-width: 35.98em){:host button{min-width:100%}}:host button>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host button:after{margin-left:.5rem;margin-right:.5rem;border-bottom:solid 2px var(--text-primary-color);border-left:solid 2px var(--text-primary-color);content:\"\";display:block;height:.5rem;width:.5rem;position:relative;top:-.15rem;transform:translate(75%) rotate3d(0,0,1,-45deg) scaleZ(-1);transition:transform .3s ease-in;flex-shrink:0}:host button[aria-expanded=true]:after{transform:translate(75%,6px) rotate3d(0,0,1,-45deg) scale3d(-1,-1,1)}:host button:hover:after{border-color:currentColor}:host button:disabled{--background: var(--grey-500)}:host button span{width:100%;white-space:nowrap;display:block;text-overflow:ellipsis}:host button.small{font-size:.875rem}:host button:hover{background:#e7e7e7}:host button:active{background:inherit;color:inherit;border-color:inherit}:host button:disabled,:host button.disabled{--text-primary-color: var(--grey-600);background:var(--grey-300);color:var(--grey-600);cursor:not-allowed}:host button.nggv-field--error{border-bottom:2px solid #9f000a}:host .gds-form-item__footer .form-info{font-weight:500;font-size:.875rem}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{align-items:center}:host .dropdown{width:100%;position:relative}:host .dropdown nggv-dropdown-list{width:100%}:host.small label{line-height:1rem;font-size:.875rem}:host.small label+.gds-input-wrapper,:host.small label+.nggv-field--locked{margin-top:.25rem}:host.small .description{font-size:.875rem;line-height:1rem;margin-bottom:.25rem}:host.small button{font-size:.875rem;line-height:1rem;padding:.38rem .5rem;min-height:2rem}\n"] }]
|
|
222
228
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
223
229
|
type: Self
|
|
224
230
|
}, {
|
|
@@ -264,6 +270,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
264
270
|
type: Input
|
|
265
271
|
}], selectOnSingleOption: [{
|
|
266
272
|
type: Input
|
|
273
|
+
}], selectWithSpace: [{
|
|
274
|
+
type: Input
|
|
267
275
|
}], onlyHandleDistinctChanges: [{
|
|
268
276
|
type: Input
|
|
269
277
|
}], expandedChange: [{
|
|
@@ -272,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
272
280
|
type: HostListener,
|
|
273
281
|
args: ['keyup', ['$event']]
|
|
274
282
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFFOUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDekgsT0FBTyxFQUNMLGFBQWEsR0FJZCxNQUFNLDRDQUE0QyxDQUFBOzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUtYLFNBQVEscUNBQXFDO0lBb0I3QyxJQUFnQyxPQUFPO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBV0QsdUZBQXVGO0lBQ3ZGLElBQWEsT0FBTyxDQUFDLEtBQXNCO1FBQ3pDLGlCQUFpQjtRQUNqQixJQUFJ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Z0I7c0JBQWpFLFlBQVk7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHTSxhQUFhO3NCQUFsRSxZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT1gsS0FBSztzQkFBN0MsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBR04sT0FBTztzQkFBdEMsV0FBVzt1QkFBQyxhQUFhO2dCQUlNLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFPakIsSUFBSTtzQkFBWixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFTyxPQUFPO3NCQUFuQixLQUFLO2dCQWtDRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLHlCQUF5QjtzQkFBakMsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQVFHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFRRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkEwRVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG4gIE9wdGlvbkdyb3VwLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5cbi8qKlxuICogQSBkcm9wZG93biBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGFuIG9wdGlvbiBmcm9tIGEgbGlzdC5cbiAqIERyb3Bkb3ducyBlbmFibGVzIHVzZXJzIHRvIG1ha2UgYSBxdWljayBzZWxlY3Rpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGZvciBhIHNwZWNpZmljIGVudHJ5LlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1kcm9wZG93blxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duQ29tcG9uZW50PFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgZXh0ZW5kcyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBvcHRpb25zIGFuZCBncm91cHMuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncm91cExhYmVsVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBncm91cExhYmVsVHBsOlxuICAgIHwgVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PlxuICAgIHwgdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAnZHJvcGRvd24nXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKSBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheWVkIHNpemUgb2YgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgPSAnbGFyZ2UnXG5cbiAgLyoqIFRleHQgc2hvd24gYmVmb3JlIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIFNwZWNpZmljIHZhbHVlIGZvciBhcmlhLWxhYmVsLiBJZiBub3QgcHJvdmlkZWQsIGxhYmVsL2xhYmVsVHBsIHdpbGwgYmUgdXNlZC4gKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nXG4gIC8qKiBMaXN0IG9mIHtAbGluayBPcHRpb259IGFuZCB7QGxpbmsgT3B0aW9uR3JvdXB9IGxpc3RlZCB3aGVuIGRyb3Bkb3duIGlzIGV4cGFuZGVkLiAqL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogT3B0aW9uQmFzZTxUPltdKSB7XG4gICAgLy8gdXBkYXRlIG9wdGlvbnNcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICAvLyBhbHJlYWR5IGhhcyBhIG51bGwvdW5kZWZpbmVkIGtleVxuICAgIGNvbnN0IG51bGxpc2hPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IG51bGwpXG4gICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIG9wdGlvbmFsLCBhZGQgYSBudWxsIHZhbHVlIHRvIGRlc2VsZWN0IG9wdGlvblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhbnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWUgYW5kIGVtaXQgaWYgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuc2VsZWN0T25TaW5nbGVPcHRpb24pIHtcbiAgICAgIGNvbnN0IG9ubHlPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVswXVxuICAgICAgdGhpcy51cGRhdGVNb2RlbChvbmx5T3B0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgdXBkYXRlIGxvY2FsIHN0YXRlIGlmIHdlIHNob3VsZG4ndCBjb250cm9sIG51bGxpc2ggdmFsdWUgYW5kIHdlIGNhbnQgZmluZCB0aGUgc2VsZWN0ZWQgdmFsdWUgYW1vbmdzdCB0aGUgb3B0aW9uc1xuICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVxuICAgICAgLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PSB0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gICAgaWYgKCF0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gJiYgIW1hdGNoaW5nT3B0aW9uKSByZXR1cm5cblxuICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBPcHRpb25CYXNlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICAvKiogVGhlIGFkZGl0aW9uYWwgYW1vdW50IHRvIHNob3cgd2hlbiBvcHRpb24gaXMgc2Nyb2xsZWQgaW50byB2aWV3LiAqL1xuICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSAyNFxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGlzIGNvbXBvbmVudCB0byBhZGQvIHJlbW92ZSBudWxsaXNoIG9wdGlvbnMgYmFzZWQgb24gd2V0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkIG9yIG5vdFxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IHRydWVcblxuICAvKiogVGV4dCB0byBoaWdobGlnaHQgaW4gb3B0aW9uICovXG4gIEBJbnB1dCgpIHRleHRUb0hpZ2hsaWdodD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBJZiBvbmx5IG9uZSBvcHRpb24gZXhpc3RzIGluIG9wdGlvbnNbXSwgZGVmYXVsdCBpcyB0byBzZWxlY3QgaXQuXG4gICAqIFRoaXMgaW5wdXQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhhdCBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5XG4gICAqIHNlbGVjdCBhIHZhbHVlIGlmIGl0J3MgdGhlIG9ubHkgb25lLlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T25TaW5nbGVPcHRpb24gPSB0cnVlXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGNoYW5nZXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGRyb3Bkb3duLlxuICAgKiBJZiBzZXQgdG8gZmFsc2UsIGFsbCBjaGFuZ2VzIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgZHJvcGRvd24uXG4gICAqIElmIHNldCB0byB0cnVlLCBvbmx5IGNoYW5nZXMgdGhhdCBhcmUgZGlzdGluY3QgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSB3aWxsIGJlIGhhbmRsZWQuXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICBASW5wdXQoKSBvbmx5SGFuZGxlRGlzdGluY3RDaGFuZ2VzID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBFbWl0cyBjaGFuZ2VzIG9mIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd25cbiAgICovXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gIC8qKiBAaW50ZXJuYWwgbnVsbGlzaCBvcHRpb24uICovXG4gIGdldCBkZWZhdWx0TnVsbGlzaE9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7IGtleTogbnVsbCwgbGFiZWw6IHRoaXMucGxhY2Vob2xkZXIgPz8gJ1xcdTAwQTAnIH1cbiAgfVxuXG4gIC8qKiBUaGUgY3VycmVudCBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gKi9cbiAgcHVibGljIGV4cGFuZGVkID0gZmFsc2VcbiAgLyoqIFRoZSBjdXJyZW50IG9wdGlvbiBzZWxlY3RlZCBiYXNlZCBvbiBudW1lcmljIGluZGV4LiAqL1xuICBwdWJsaWMgYWN0aXZlSW5kZXggPSAtMVxuICAvKiogU3Vic2NyaWJlIGlmIGRyb3Bkb3duIGV4cGFuZGVkIHRvIGxpc3RlbiB0byBjbGljayBvdXRzaWRlIHRvIGNsb3NlIGRyb3Bkb3duLiAqL1xuICBwcml2YXRlIG9uQ2xpY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxuXG4gIHB1YmxpYyBrZXlFdmVudDogS2V5Ym9hcmRFdmVudCA9IHt9IGFzIEtleWJvYXJkRXZlbnRcbiAgcHJpdmF0ZSBfb3B0aW9uczogT3B0aW9uQmFzZTxUPltdID0gW11cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIGRyb3Bkb3duVXRpbHM6IERyb3Bkb3duVXRpbHM8SywgViwgVD4sXG4gICkge1xuICAgIHN1cGVyKG5nQ29udHJvbCwgdHJhbnNsb2NvU2NvcGUsIGNkcilcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5yZXF1aXJlZD8uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBjaGFuZ2VzLnJlcXVpcmVkLmN1cnJlbnRWYWx1ZVxuICAgICAgLy8gcmVtb3ZlIG51bGxpc2ggb3B0aW9uXG4gICAgICBjb25zdCBoYXNOdWxsaXNoT3B0aW9uID1cbiAgICAgICAgdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKHRoaXMuX29wdGlvbnMsIGZhbHNlKVswXT8ua2V5ID09IG51bGxcbiAgICAgIC8vIGlmIHJlcXVpcmVkLCByZW1vdmUgbnVsbGlzaCBvcHRpb25cbiAgICAgIGlmIChpc1JlcXVpcmVkICYmIGhhc051bGxpc2hPcHRpb24gJiYgdGhpcy5hbGxvd0NvbnRyb2xOdWxsaXNoT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zLnNsaWNlKDEpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLy8gaWYgbm90IHJlcXVpcmVkLCBhZGQgbnVsbGlzaCBvcHRpb25cbiAgICAgIGlmICghaXNSZXF1aXJlZCAmJiAhaGFzTnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQodGhpcy5fb3B0aW9ucylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gIH1cblxuICAvKiogQGludGVybmFsIG92ZXJyaWRlIHRvIGNvcnJlY3RseSBzZXQgc3RhdGUgZnJvbSBmb3JtIHZhbHVlICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModGhpcy5fb3B0aW9ucywgZmFsc2UpXG4gICAgdGhpcy5zdGF0ZSA9IG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSB2YWx1ZSlcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gRVZFTlRTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uU2VsZWN0Q2hhbmdlKG9wdGlvbjogVCkge1xuICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHJldHVyblxuICAgIHRoaXMudXBkYXRlTW9kZWwob3B0aW9uKVxuICAgIHRoaXMuc2V0RXhwYW5kZWQoZmFsc2UpXG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogQGludGVybmFsXG4gIC8vICAqIEVudGVyIHRvZ2dsZXMgdGhlIGRyb3Bkb3duLCBob21lLCBlbmQsIGFuZCwgYXJyb3dzIGNoYW5nZSB0aGUgaW5kZXguXG4gIC8vICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcmVsZWFzZWQuXG4gIC8vICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmtleUV2ZW50ID0gZXZlbnRcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRyb3Bkb3duIG9uIGNsaWNrIG91dHNpZGUuXG4gICAqL1xuICBzdWJzY3JpYmVUb091dHNpZGVDbGlja0V2ZW50KCkge1xuICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuZXhwYW5kZWQgJiZcbiAgICAgICAgICAhdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKVxuICAgICAgICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhFTFBFUlNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRyb3Bkb3duIHZhbHVlIHRvIGdpdmVuIG9wdGlvbi5cbiAgICogQHBhcmFtIHZhbHVlIHRoZSBkcm9wZG93biBvcHRpb24gdG8gc2VsZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVNb2RlbCh2YWx1ZTogVCkge1xuICAgIHRoaXMuc3RhdGUgPSB2YWx1ZVxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUua2V5KVxuICB9XG5cbiAgLyoqIFRvZ2dsZSB0aGUgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGRyb3Bkb3duIG9wdGlvbnMuICovXG4gIHRvZ2dsZURyb3Bkb3duKCkge1xuICAgIHRoaXMuc2V0RXhwYW5kZWQoIXRoaXMuZXhwYW5kZWQpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gSWYgdHJ1ZSB0aGUgb3B0aW9ucyBhcmUgc2hvd24gYmVsb3cgdGhlIGZpZWxkLlxuICAgKiBBY3RpdmF0ZSBvbiBjbGljayBldmVudCB0byBiZSBhYmxlIHRvIGNsb3NlIGRyb3Bkb3duIG9uIGNsaWNrIG91dHNpZGUuXG4gICAqIEBwYXJhbSBzdGF0ZSB0aGUgZXhwYW5kZWQgc3RhdGUgd2hpY2ggdG8gc2V0LlxuICAgKi9cbiAgc2V0RXhwYW5kZWQoc3RhdGUgPSB0cnVlKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9IHN0YXRlXG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpXG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHRoaXMuc3Vic2NyaWJlVG9PdXRzaWRlQ2xpY2tFdmVudCgpXG4gICAgaWYgKCF0aGlzLmV4cGFuZGVkKSB0aGlzLm9uVG91Y2hlZCgpXG4gIH1cblxuICAvKiBUWVBFIENBU1RTICovXG5cbiAgLyoqXG4gICAqIFR5cGVjYXN0IGFueXRoaW5nIHRvIGFuIHtAbGluayBPcHRpb259LlxuICAgKiBAcGFyYW0gb3B0aW9uIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0T3B0aW9uKG9wdGlvbjogYW55KTogVCB7XG4gICAgcmV0dXJuIG9wdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIFR5cGVjYXN0IGFueXRoaW5nIHRvIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBncm91cCB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdEdyb3VwKGdyb3VwOiBhbnkpOiBPcHRpb25Hcm91cDxUPiB7XG4gICAgcmV0dXJuIGdyb3VwXG4gIH1cblxuICAvKiBUWVBFIENIRUNLUyAqL1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgaXMgYW4ge0BsaW5rIE9wdGlvbn0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIGlzT3B0aW9uKG9wdGlvbjogT3B0aW9uQmFzZTxUPik6IG9wdGlvbiBpcyBPcHRpb25Hcm91cDxUPiB7XG4gICAgcmV0dXJuICEoJ29wdGlvbnMnIGluIG9wdGlvbilcbiAgfVxufVxuIiwiPCEtLSBMQUJFTCAtLT5cbjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICA8bGFiZWxcbiAgICBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwgaGlkZS1pZi1lbXB0eVwiXG4gICAgW2F0dHIuZm9yXT1cImlkICsgJy10b2dnbGUnXCJcbiAgICAqbmdJZj1cImxhYmVsQ29udGVudFRwbCB8fCBsYWJlbFwiXG4gID5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxDb250ZW50VHBsIHx8IGJhc2ljTGFiZWxDb250ZW50VHBsXCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2Jhc2ljTGFiZWxDb250ZW50VHBsPlxuICAgICAgPCEtLSB0byB0cmlnZ2VyIGNzczplbXB0eSBpZiBubyBsYWJlbCB3YXMgYWRkZWQgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIm9wdGlvbmFsID09PSB0cnVlIHx8IChyZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2UpXCJcbiAgICAgICAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbC0tb3B0aW9uYWxcIlxuICAgICAgICA+XG4gICAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbGFiZWw+XG5cbiAgPCEtLSBERVNDUklQVElPTiAtLT5cbiAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgPCEtLSBMT0NLRUQgSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2NrZWRcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGxvY2tlZFRwbCB8fCBkZWZhdWx0TG9ja2VkVHBsO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgXCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2NrZWRUcGw+XG4gICAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctaW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci52YWx1ZV09XCJzdGF0ZVwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwgJyArIGlkICsgJy1pbnB1dCdcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzdGF0ZVwiIGNsYXNzPVwidW5zZXQtc3RhdGVcIj4tPC9zcGFuPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhdGVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ29udGVudFRwbCB8fCBkZWZhdWx0U2VsZWN0ZWRDb250ZW50VHBsO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIElOUFVUIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvY2tlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnZHMtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgPGRpdiAjaW5wdXQgW2lkXT1cImlkICsgJy1pbnB1dCdcIiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbaWRdPVwiaWQgKyAnLXRvZ2dsZSdcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLWRyb3Bkb3duX19sYWJlbCB0b2dnbGVcIlxuICAgICAgICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICAgICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgICAgIGFyaWEtb3ducz1cImxpc3Rib3hcIlxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibGlzdGJveFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctdG9nZ2xlJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgYXJpYUxhYmVsID8gbnVsbCA6IGlkICsgJy1sYWJlbCAnICsgaWQgKyAnLXRvZ2dsZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50VHBsIHx8IGRlZmF1bHRTZWxlY3RlZENvbnRlbnRUcGw7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHN0YXRlIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nZ3YtZHJvcGRvd24tbGlzdFxuICAgICAgICAgICNkcm9wRG93bkxpc3RcbiAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICBbc2Nyb2xsT2Zmc2V0XT1cInNjcm9sbE9mZnNldFwiXG4gICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuICAgICAgICAgIFtvcHRpb25Db250ZW50VHBsXT1cIm9wdGlvbkNvbnRlbnRUcGxcIlxuICAgICAgICAgIFtncm91cExhYmVsVHBsXT1cImdyb3VwTGFiZWxUcGxcIlxuICAgICAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgICAgICBbb25seUVtaXREaXN0aW5jdENoYW5nZXNdPVwib25seUhhbmRsZURpc3RpbmN0Q2hhbmdlc1wiXG4gICAgICAgICAgKGNsb3NlZCk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICAgIChzZWxlY3RlZFZhbHVlQ2hhbmdlZCk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nZ3YtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBFUlJPUlMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZvcm0taW5mbyBmb3JtLWluZm8tLWVycm9yXCJcbiAgICAgICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICAgIFtzb2xpZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgICAgICA+PC9nZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICAgID57eyBlcnJvciB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdlcnJvci5maWVsZCcgKyBlcnJvcj8uY29kZSwgZXJyb3I/LnBhcmFtcykgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQ0hJTERSRU4gLS0+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbCBsZXQtc3RhdGU+XG4gICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cbiAgICB7eyBzdGF0ZT8ua2V5ICE9IG51bGwgJiYgc3RhdGU/LmxhYmVsID8gdChzdGF0ZS5sYWJlbCkgOiBwbGFjZWhvbGRlciB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sb0JBQW9CLENBQUE7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFFOUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUVBQW1FLENBQUE7QUFDekgsT0FBTyxFQUNMLGFBQWEsR0FJZCxNQUFNLDRDQUE0QyxDQUFBOzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUtYLFNBQVEscUNBQXFDO0lBb0I3QyxJQUFnQyxPQUFPO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBV0QsdUZBQXVGO0lBQ3ZGLElBQWEsT0FBTyxDQUFDLEtBQXNCO1FBQ3pDLGlCQUFpQjtRQUNqQixJQUFJ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RUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR0EsZ0JBQWdCO3NCQUFqRSxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBR00sYUFBYTtzQkFBbEUsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQU9YLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUdOLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFJTSxPQUFPO3NCQUF0QyxXQUFXO3VCQUFDLGFBQWE7Z0JBT2pCLElBQUk7c0JBQVosS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRU8sT0FBTztzQkFBbkIsS0FBSztnQkFrQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFRRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkEwRVAsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL3RyaWFuZ2xlLWV4Y2xhbWF0aW9uLmpzJ1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG4gIE9wdGlvbkdyb3VwLFxufSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5cbi8qKlxuICogQSBkcm9wZG93biBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IGFuIG9wdGlvbiBmcm9tIGEgbGlzdC5cbiAqIERyb3Bkb3ducyBlbmFibGVzIHVzZXJzIHRvIG1ha2UgYSBxdWljayBzZWxlY3Rpb24gb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25zIGZvciBhIHNwZWNpZmljIGVudHJ5LlxuICogaHR0cHM6Ly9kZXNpZ25saWJyYXJ5LnNlYmdyb3VwLmNvbS9jb21wb25lbnRzL2NvbXBvbmVudC1kcm9wZG93blxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duQ29tcG9uZW50PFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgZXh0ZW5kcyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXNcbntcbiAgLyoqIEN1c3RvbSB0ZW1wbGF0ZSBmb3IgZGlzcGxheWluZyBvcHRpb25zIGFuZCBncm91cHMuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGVkVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWxlY3RlZENvbnRlbnRUcGw6XG4gICAgfCBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPFQ+PlxuICAgIHwgdW5kZWZpbmVkXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRwbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3B0aW9uQ29udGVudFRwbDpcbiAgICB8IFRlbXBsYXRlUmVmPE9wdGlvbkJhc2U8YW55Pj5cbiAgICB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkKCdncm91cExhYmVsVHBsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBncm91cExhYmVsVHBsOlxuICAgIHwgVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PlxuICAgIHwgdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAnZHJvcGRvd24nXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKSBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheWVkIHNpemUgb2YgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgPSAnbGFyZ2UnXG5cbiAgLyoqIFRleHQgc2hvd24gYmVmb3JlIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIFNwZWNpZmljIHZhbHVlIGZvciBhcmlhLWxhYmVsLiBJZiBub3QgcHJvdmlkZWQsIGxhYmVsL2xhYmVsVHBsIHdpbGwgYmUgdXNlZC4gKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nXG4gIC8qKiBMaXN0IG9mIHtAbGluayBPcHRpb259IGFuZCB7QGxpbmsgT3B0aW9uR3JvdXB9IGxpc3RlZCB3aGVuIGRyb3Bkb3duIGlzIGV4cGFuZGVkLiAqL1xuICBASW5wdXQoKSBzZXQgb3B0aW9ucyh2YWx1ZTogT3B0aW9uQmFzZTxUPltdKSB7XG4gICAgLy8gdXBkYXRlIG9wdGlvbnNcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVcbiAgICAvLyBhbHJlYWR5IGhhcyBhIG51bGwvdW5kZWZpbmVkIGtleVxuICAgIGNvbnN0IG51bGxpc2hPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh2YWx1ZSwgZmFsc2UpXG4gICAgICAuZmluZCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09IG51bGwpXG4gICAgLy8gaWYgdGhlIGRyb3Bkb3duIGlzIG9wdGlvbmFsLCBhZGQgYSBudWxsIHZhbHVlIHRvIGRlc2VsZWN0IG9wdGlvblxuICAgIGlmICghdGhpcy5yZXF1aXJlZCAmJiAhbnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KHRoaXMuX29wdGlvbnMpXG4gICAgfVxuXG4gICAgLy8gc2V0IGRlZmF1bHQgdmFsdWUgYW5kIGVtaXQgaWYgdGhlcmUgaXMgb25seSBvbmUgb3B0aW9uXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnJlcXVpcmVkICYmIHRoaXMuc2VsZWN0T25TaW5nbGVPcHRpb24pIHtcbiAgICAgIGNvbnN0IG9ubHlPcHRpb24gPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVswXVxuICAgICAgdGhpcy51cGRhdGVNb2RlbChvbmx5T3B0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZG9uJ3QgdXBkYXRlIGxvY2FsIHN0YXRlIGlmIHdlIHNob3VsZG4ndCBjb250cm9sIG51bGxpc2ggdmFsdWUgYW5kIHdlIGNhbnQgZmluZCB0aGUgc2VsZWN0ZWQgdmFsdWUgYW1vbmdzdCB0aGUgb3B0aW9uc1xuICAgIGNvbnN0IG1hdGNoaW5nT3B0aW9uID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModmFsdWUsIGZhbHNlKVxuICAgICAgLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmtleSA9PSB0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gICAgaWYgKCF0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gJiYgIW1hdGNoaW5nT3B0aW9uKSByZXR1cm5cblxuICAgIC8vIFVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm5nQ29udHJvbD8udmFsdWUpXG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBPcHRpb25CYXNlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zXG4gIH1cblxuICAvKiogVGhlIGFkZGl0aW9uYWwgYW1vdW50IHRvIHNob3cgd2hlbiBvcHRpb24gaXMgc2Nyb2xsZWQgaW50byB2aWV3LiAqL1xuICBASW5wdXQoKSBzY3JvbGxPZmZzZXQgPSAyNFxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGlzIGNvbXBvbmVudCB0byBhZGQvIHJlbW92ZSBudWxsaXNoIG9wdGlvbnMgYmFzZWQgb24gd2V0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkIG9yIG5vdFxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IHRydWVcblxuICAvKiogVGV4dCB0byBoaWdobGlnaHQgaW4gb3B0aW9uICovXG4gIEBJbnB1dCgpIHRleHRUb0hpZ2hsaWdodD86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBJZiBvbmx5IG9uZSBvcHRpb24gZXhpc3RzIGluIG9wdGlvbnNbXSwgZGVmYXVsdCBpcyB0byBzZWxlY3QgaXQuXG4gICAqIFRoaXMgaW5wdXQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhhdCBiZWhhdmlvdXIgc28gaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5XG4gICAqIHNlbGVjdCBhIHZhbHVlIGlmIGl0J3MgdGhlIG9ubHkgb25lLlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0T25TaW5nbGVPcHRpb24gPSB0cnVlXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY29udHJvbCBpZiB0aGUgZHJvcGRvd24gbGlzdCBzaG91bGQgc2VsZWN0IHRoZSBjdXJyZW50IGFjdGl2ZSBlbGVtZW50LCB3aGVuIFNwYWNlIGlzIHByZXNzZWQgb24gdGhlIGtleWJvYXJkLlxuICAgKiBQcmltYXJ5IHVzYWdlIGlzIGZvciB0eXBlYWhlYWQsIHdoZXJlIHRoZSBzaG91bGQgYmUgYWJsZSB0byB3cml0ZSBhIGZpbHRlciBxdWVyeSBjb250YWluaW5nIHNwYWNlcyxcbiAgICogYnV0IG5vdCBzZWxlY3QgdGhlIGN1cnJlbnQgYWN0aXZlIGVsZW1lbnQgd2l0aCBTcGFjZS5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdFdpdGhTcGFjZSA9IHRydWVcblxuICAvKipcbiAgICogVXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggY2hhbmdlcyBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZHJvcGRvd24uXG4gICAqIElmIHNldCB0byBmYWxzZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBkcm9wZG93bi5cbiAgICogSWYgc2V0IHRvIHRydWUsIG9ubHkgY2hhbmdlcyB0aGF0IGFyZSBkaXN0aW5jdCBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIHdpbGwgYmUgaGFuZGxlZC5cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIEBJbnB1dCgpIG9ubHlIYW5kbGVEaXN0aW5jdENoYW5nZXMgPSB0cnVlXG5cbiAgLyoqXG4gICAqIEVtaXRzIGNoYW5nZXMgb2YgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93blxuICAgKi9cbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgLyoqIEBpbnRlcm5hbCBudWxsaXNoIG9wdGlvbi4gKi9cbiAgZ2V0IGRlZmF1bHROdWxsaXNoT3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHsga2V5OiBudWxsLCBsYWJlbDogdGhpcy5wbGFjZWhvbGRlciA/PyAnXFx1MDBBMCcgfVxuICB9XG5cbiAgLyoqIFRoZSBjdXJyZW50IGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiAqL1xuICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZVxuICAvKiogVGhlIGN1cnJlbnQgb3B0aW9uIHNlbGVjdGVkIGJhc2VkIG9uIG51bWVyaWMgaW5kZXguICovXG4gIHB1YmxpYyBhY3RpdmVJbmRleCA9IC0xXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByaXZhdGUgb25DbGlja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkXG5cbiAgcHVibGljIGtleUV2ZW50OiBLZXlib2FyZEV2ZW50ID0ge30gYXMgS2V5Ym9hcmRFdmVudFxuICBwcml2YXRlIF9vcHRpb25zOiBPcHRpb25CYXNlPFQ+W10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgZHJvcGRvd25VdGlsczogRHJvcGRvd25VdGlsczxLLCBWLCBUPixcbiAgKSB7XG4gICAgc3VwZXIobmdDb250cm9sLCB0cmFuc2xvY29TY29wZSwgY2RyKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnJlcXVpcmVkPy5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGNoYW5nZXMucmVxdWlyZWQuY3VycmVudFZhbHVlXG4gICAgICAvLyByZW1vdmUgbnVsbGlzaCBvcHRpb25cbiAgICAgIGNvbnN0IGhhc051bGxpc2hPcHRpb24gPVxuICAgICAgICB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnModGhpcy5fb3B0aW9ucywgZmFsc2UpWzBdPy5rZXkgPT0gbnVsbFxuICAgICAgLy8gaWYgcmVxdWlyZWQsIHJlbW92ZSBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKGlzUmVxdWlyZWQgJiYgaGFzTnVsbGlzaE9wdGlvbiAmJiB0aGlzLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuc2xpY2UoMSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICAvLyBpZiBub3QgcmVxdWlyZWQsIGFkZCBudWxsaXNoIG9wdGlvblxuICAgICAgaWYgKCFpc1JlcXVpcmVkICYmICFoYXNOdWxsaXNoT3B0aW9uICYmIHRoaXMuYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gW3RoaXMuZGVmYXVsdE51bGxpc2hPcHRpb25dLmNvbmNhdCh0aGlzLl9vcHRpb25zKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgb3ZlcnJpZGUgdG8gY29ycmVjdGx5IHNldCBzdGF0ZSBmcm9tIGZvcm0gdmFsdWUgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyh0aGlzLl9vcHRpb25zLCBmYWxzZSlcbiAgICB0aGlzLnN0YXRlID0gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHZhbHVlKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFVkVOVFNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25TZWxlY3RDaGFuZ2Uob3B0aW9uOiBUKSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy51cGRhdGVNb2RlbChvcHRpb24pXG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBAaW50ZXJuYWxcbiAgLy8gICogRW50ZXIgdG9nZ2xlcyB0aGUgZHJvcGRvd24sIGhvbWUsIGVuZCwgYW5kLCBhcnJvd3MgY2hhbmdlIHRoZSBpbmRleC5cbiAgLy8gICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgLy8gICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMua2V5RXZlbnQgPSBldmVudFxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICovXG4gIHN1YnNjcmliZVRvT3V0c2lkZUNsaWNrRXZlbnQoKSB7XG4gICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5leHBhbmRlZCAmJlxuICAgICAgICAgICF0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpXG4gICAgICAgICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFsdWUgdG8gZ2l2ZW4gb3B0aW9uLlxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIGRyb3Bkb3duIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS5rZXkpXG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgZHJvcGRvd24gb3B0aW9ucy4gKi9cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZCghdGhpcy5leHBhbmRlZClcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBkcm9wZG93biBvcHRpb25zLiBJZiB0cnVlIHRoZSBvcHRpb25zIGFyZSBzaG93biBiZWxvdyB0aGUgZmllbGQuXG4gICAqIEFjdGl2YXRlIG9uIGNsaWNrIGV2ZW50IHRvIGJlIGFibGUgdG8gY2xvc2UgZHJvcGRvd24gb24gY2xpY2sgb3V0c2lkZS5cbiAgICogQHBhcmFtIHN0YXRlIHRoZSBleHBhbmRlZCBzdGF0ZSB3aGljaCB0byBzZXQuXG4gICAqL1xuICBzZXRFeHBhbmRlZChzdGF0ZSA9IHRydWUpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gc3RhdGVcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZClcbiAgICBpZiAodGhpcy5leHBhbmRlZCkgdGhpcy5zdWJzY3JpYmVUb091dHNpZGVDbGlja0V2ZW50KClcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHRoaXMub25Ub3VjaGVkKClcbiAgfVxuXG4gIC8qIFRZUEUgQ0FTVFMgKi9cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbn0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RPcHRpb24ob3B0aW9uOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gb3B0aW9uXG4gIH1cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIGdyb3VwIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0R3JvdXAoZ3JvdXA6IGFueSk6IE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gZ3JvdXBcbiAgfVxuXG4gIC8qIFRZUEUgQ0hFQ0tTICovXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhcmd1bWVudCBpcyBhbiB7QGxpbmsgT3B0aW9ufS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNPcHRpb24ob3B0aW9uOiBPcHRpb25CYXNlPFQ+KTogb3B0aW9uIGlzIE9wdGlvbkdyb3VwPFQ+IHtcbiAgICByZXR1cm4gISgnb3B0aW9ucycgaW4gb3B0aW9uKVxuICB9XG59XG4iLCI8IS0tIExBQkVMIC0tPlxuPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCI+XG4gIDxsYWJlbFxuICAgIFtpZF09XCJpZCArICctbGFiZWwnXCJcbiAgICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRvZ2dsZSdcIlxuICAgICpuZ0lmPVwibGFiZWxDb250ZW50VHBsIHx8IGxhYmVsXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjYmFzaWNMYWJlbENvbnRlbnRUcGw+XG4gICAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwib3B0aW9uYWwgPT09IHRydWUgfHwgKHJlcXVpcmVkICE9PSB0cnVlICYmIG9wdGlvbmFsICE9PSBmYWxzZSlcIlxuICAgICAgICAgIGNsYXNzPVwiZ2RzLWZpZWxkLWxhYmVsLS1vcHRpb25hbFwiXG4gICAgICAgID5cbiAgICAgICAgICAoe3sgdCgnbGFiZWwub3B0aW9uYWwnKSB9fSlcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9sYWJlbD5cblxuICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAqbmdJZj1cImRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L2Rpdj5cblxuICA8IS0tIExPQ0tFRCBJTlBVVCAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZFwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgbG9ja2VkVHBsIHx8IGRlZmF1bHRMb2NrZWRUcGw7XG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICBcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvY2tlZFRwbD5cbiAgICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkICsgJy1pbnB1dCdcIlxuICAgICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtLWxvY2tlZFwiXG4gICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkICsgJy1sYWJlbCAnICsgaWQgKyAnLWlucHV0J1wiXG4gICAgICA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXN0YXRlXCIgY2xhc3M9XCJ1bnNldC1zdGF0ZVwiPi08L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRDb250ZW50VHBsIHx8IGRlZmF1bHRTZWxlY3RlZENvbnRlbnRUcGw7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzdGF0ZSB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSU5QVVQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gICAgPGRpdiBjbGFzcz1cImdkcy1pbnB1dC13cmFwcGVyXCI+XG4gICAgICA8ZGl2ICNpbnB1dCBbaWRdPVwiaWQgKyAnLWlucHV0J1wiIGNsYXNzPVwiZHJvcGRvd25cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtpZF09XCJpZCArICctdG9nZ2xlJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cIm5nZ3YtZmllbGQtZHJvcGRvd25fX2xhYmVsIHRvZ2dsZVwiXG4gICAgICAgICAgW2NsYXNzLm5nZ3YtZmllbGQtLWVycm9yXT1cImludmFsaWRcIlxuICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgYXJpYS1vd25zPVwibGlzdGJveFwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsaXN0Ym94XCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy10b2dnbGUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICBhcmlhTGFiZWwgPyBudWxsIDogaWQgKyAnLWxhYmVsICcgKyBpZCArICctdG9nZ2xlJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbnRlbnRUcGwgfHwgZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbDtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmdndi1kcm9wZG93bi1saXN0XG4gICAgICAgICAgI2Ryb3BEb3duTGlzdFxuICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgIFtzY3JvbGxPZmZzZXRdPVwic2Nyb2xsT2Zmc2V0XCJcbiAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICAgICAgW29wdGlvbkNvbnRlbnRUcGxdPVwib3B0aW9uQ29udGVudFRwbFwiXG4gICAgICAgICAgW2dyb3VwTGFiZWxUcGxdPVwiZ3JvdXBMYWJlbFRwbFwiXG4gICAgICAgICAgW3RleHRUb0hpZ2hsaWdodF09XCJ0ZXh0VG9IaWdobGlnaHRcIlxuICAgICAgICAgIFtvbmx5RW1pdERpc3RpbmN0Q2hhbmdlc109XCJvbmx5SGFuZGxlRGlzdGluY3RDaGFuZ2VzXCJcbiAgICAgICAgICBbc2VsZWN0V2l0aFNwYWNlXT1cInNlbGVjdFdpdGhTcGFjZVwiXG4gICAgICAgICAgKGNsb3NlZCk9XCJzZXRFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICAgIChzZWxlY3RlZFZhbHVlQ2hhbmdlZCk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nZ3YtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBFUlJPUlMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2RzLWZvcm0taXRlbV9fZm9vdGVyIGVycm9yLXdyYXBwZXJcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImZvcm0taW5mbyBmb3JtLWluZm8tLWVycm9yXCJcbiAgICAgICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLWlucHV0J1wiXG4gICAgICAgICAgKm5nSWY9XCJpbnZhbGlkICYmIChlcnJvciB8fCBuZ0NvbnRyb2w/LmludmFsaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICAgICAgPGdkcy1pY29uLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICAgIFtzb2xpZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nZ0NvcmVFbGVtZW50XG4gICAgICAgICAgICA+PC9nZHMtaWNvbi10cmlhbmdsZS1leGNsYW1hdGlvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICAgID57eyBlcnJvciB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vycm9yc1JlZj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJmaXJzdEVycm9yIGFzIGVycm9yXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLWVycm9ybGFiZWwnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdlcnJvci5maWVsZCcgKyBlcnJvcj8uY29kZSwgZXJyb3I/LnBhcmFtcykgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gQ0hJTERSRU4gLS0+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNlbGVjdGVkQ29udGVudFRwbCBsZXQtc3RhdGU+XG4gICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cbiAgICB7eyBzdGF0ZT8ua2V5ICE9IG51bGwgJiYgc3RhdGU/LmxhYmVsID8gdChzdGF0ZS5sYWJlbCkgOiBwbGFjZWhvbGRlciB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -127,6 +127,7 @@ export class NggvTypeaheadDirective {
|
|
|
127
127
|
this.hostDropdown.options = this.formatOptions(filteredValues);
|
|
128
128
|
this.hostDropdown.textToHighlight = `${input || ''}`;
|
|
129
129
|
this.hostDropdown.onlyHandleDistinctChanges = false;
|
|
130
|
+
this.hostDropdown.selectWithSpace = false;
|
|
130
131
|
this.hostDropdown.detectChanges();
|
|
131
132
|
return;
|
|
132
133
|
}
|
|
@@ -182,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
182
183
|
type: HostListener,
|
|
183
184
|
args: ['nggvInput', ['$event']]
|
|
184
185
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU16RixNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBb0JELHNEQUFzRDtJQUNmLFdBQVcsQ0FB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T0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQzsrR0FyTVUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkE2RUksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7eUNBckVOLGFBQWE7c0JBQXpCLEtBQUs7Z0JBWUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR2dDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgU3ViamVjdCxcbiAgU3Vic2NyaXB0aW9uLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5cbmltcG9ydCB7IE9wdGlvbiwgT3B0aW9uQmFzZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5nZ3ZJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvaW5wdXQnXG5pbXBvcnQgeyBOZ2d2RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdHlwZWFoZWFkL3R5cGVhaGVhZC1kcm9wZG93bi1saXN0L3R5cGVhaGVhZC1kcm9wZG93bi1saXN0LmNvbXBvbmVudCdcbmltcG9ydCB7IE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdHlwZWFoZWFkLWlucHV0L3R5cGVhaGVhZC1pbnB1dC5jb21wb25lbnQnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nZ3YtaW5wdXRbbmdndlR5cGVhaGVhZF0sIG5nZ3YtZHJvcGRvd25bbmdndlR5cGVhaGVhZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2d2VHlwZWFoZWFkRGlyZWN0aXZlPFxuICAgIEsgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFYgPSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIFQgZXh0ZW5kcyBPcHRpb248SywgVj4gPSBPcHRpb248SywgVj4sXG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKiogRnVuY3Rpb24gdGhhdCBmaWx0ZXIgdGhlIGlucHV0dmFsdWUgKi9cbiAgQElucHV0KCkgc2V0IG5nZ3ZUeXBlYWhlYWQodmFsdWU6IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA9IHZhbHVlXG5cbiAgICAvLyBJZiBpbnB1dHN1YnNjcmlwdGlvbiBhbHJlYWR5IGV4aXN0cywgdW5zdWJzY3JpYmUgYW5kIHN1YnNjcmliZSBhZ2FpblxuICAgIGlmICh0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCkge1xuICAgICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKClcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvcm1hdHMgZWFjaCBpdGVtIHRoYXQgaXMgZGlzcGxheWVkIGFzIGFuIG9wdGlvbi4gT25seSBhcHBsaWVzIGZvcm1hdCBpZiB0aGUgb3B0aW9uIGlmIGl0IGltcGxlbWVudCBPcHRpb24gaW50ZXJmYWNlLiAqL1xuICBASW5wdXQoKSByZXN1bHRGb3JtYXR0ZXI/OiAob3B0aW9uOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBpdGVtIGluIHRoZSBpbnB1dCB3aGVuIGRyb3Bkb3duIGlzIG9wZW5lZC4gSWYgbm8gZnVuY3Rpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgZGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGVkIG9iamVjdHMgbGFiZWwgcHJvcGVydHkgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRGb3JtYXR0ZXI/OiAoc2VsZWN0ZWQ6IE9wdGlvbkJhc2U8YW55PikgPT4gc3RyaW5nXG5cbiAgLyoqIEFsbG93IG9wdGlvbiB0byBiZSB1bnNlbGVjdGVkIGluIHRoZSBkcm9wZG93biBldmVuIGlmIGl0IGlzIHJlcXVpcmVkLiBEZWZhdWx0cyB0byB0cnVlICovXG4gIEBJbnB1dCgpIGFsbG93VW5zZWxlY3QgPSB0cnVlXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIHVuc2VsZWN0IG9wdGlvbiAqL1xuICBASW5wdXQoKSB1bnNlbGVjdExhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEN1c3RvbSBsYWJlbCBmb3IgdGhlIGVtcHR5IG9wdGlvbiAqL1xuICBASW5wdXQoKSBlbXB0eU9wdGlvbkxhYmVsPzogc3RyaW5nXG5cbiAgLyoqIEVtaXRzIHRoZSBlbnRlcmVkIHN0cmluZyB0aGUgdXNlciBoYXMgd3JpdHRlbiBpbiB0aGUgaW5wdXQgKi9cbiAgQE91dHB1dCgpIGZpbHRlclBocmFzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG5cbiAgLyoqIEZvcndhcmQgdGV4dCBpbnB1dHMgdG8gYXBwbHkgdGhlIGZpbHRlciBmdW5jdGlvbiovXG4gIEBIb3N0TGlzdGVuZXIoJ25nZ3ZJbnB1dCcsIFsnJGV2ZW50J10pIG9uTmdndklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlucHV0VmFsdWUkLm5leHQoZXZlbnQpXG4gIH1cblxuICAvKiogSGVscGVyIHRvIHRoZSBkZXRlcm1pbmUgaWYgdGhlIGhvc3QgaXMgbmdndi1kcm9kcG93biBvciBuZ2d2LWlucHV0Ki9cbiAgZ2V0IGhvc3RJc0Ryb3Bkb3duKCkge1xuICAgIHJldHVybiAhIXRoaXMuaG9zdERyb3Bkb3duXG4gIH1cblxuICAvKiogUHJlZGVmaW5lZCBvcHRpb25zICovXG4gIGdldCBkZWZhdWx0TnVsbGlzaE9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7IGtleTogbnVsbCwgbGFiZWw6IHRoaXMudW5zZWxlY3RMYWJlbCB8fCAnXFx1MDBBMCcgfVxuICB9XG5cbiAgZ2V0IGVtcHR5T3B0aW9uKCk6IE9wdGlvbkJhc2U8YW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogbnVsbCxcbiAgICAgIGxhYmVsOiB0aGlzLmVtcHR5T3B0aW9uTGFiZWwgfHwgJ2xhYmVsLm5vbWF0Y2hpbmdvcHRpb25zJyxcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgIH1cbiAgfVxuXG4gIC8qKiBOYW1lIG9mIHRoZSBjb21wb25lbnQuIG5nZ3YtZHJvcGRvd24gaWYgTmdndkRyb3Bkb3duQ29tcG9uZW50IG9yIG5nZ3YtaW5wdXQgaWYgTmdndklucHV0Q29tcG9uZW50ICovXG4gIGdldCBsb2NhbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmxvY2FsTmFtZVxuICB9XG5cbiAgZHJvcGRvd25MaXN0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQ+XG4gIGlucHV0Q29tcG9uZW50ITogQ29tcG9uZW50UmVmPE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudD5cblxuICBwcml2YXRlIHR5cGVhaGVhZEZ1bmN0aW9uPzogT3BlcmF0b3JGdW5jdGlvbjxzdHJpbmcsIFRbXT5cbiAgcHJpdmF0ZSBpbnB1dFZhbHVlJCA9IG5ldyBTdWJqZWN0PGFueT4oKVxuICBwcml2YXRlIGlucHV0U3Vic2NyaXB0aW9uJD86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdERyb3Bkb3duOiBOZ2d2RHJvcGRvd25Db21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGhvc3RJbnB1dDogTmdndklucHV0Q29tcG9uZW50LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHRoaXMuY3JlYXRlSW5wdXQoKVxuICAgIGVsc2UgdGhpcy5jcmVhdGVEcm9wZG93bkxpc3QoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSlcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdHlwZWFoZWFkLiBFbWl0cyBpbnB1dCwgdGhlbiBmaWx0ZXJzIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlIHN1cHBsaWVkIGZ1bmN0aW9uXG4gICAqIElmIGRpcmVjdGl2ZSBpcyBhcHBsaWVkIG9uIG5nZ3YtaW5wdXQsIG1hbnVhbGx5IHNob3cgb3IgaGlkZSBvcHRpb25zIGluIHRoZSBsaXN0LlxuICAgKiBJZiBkaXJlY3RpdmUgaXMgYXBwbGllZCBvbiBuZ2d2LWRyb3Bkb3duLCBsZXQgdGhlIGRyb3Bkb3duIGl0c2VsZiBjaG9vc2Ugd2hlbiB0byBvcGVuIG9yIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCA9IHRoaXMuaW5wdXRWYWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKChpbnB1dFZhbHVlKSA9PiB0aGlzLmZpbHRlclBocmFzZUNoYW5nZS5lbWl0KGlucHV0VmFsdWUpKSxcbiAgICAgICAgdGhpcy50eXBlYWhlYWRGdW5jdGlvbiA/IHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gOiAoKSA9PiBmcm9tKFtdKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5pbnB1dFZhbHVlJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbZmlsdGVyZWRWYWx1ZXMsIGlucHV0XSkgPT5cbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzLCBpbnB1dCksXG4gICAgICApXG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBwaXBlIHdoZW4gdGhpcyBmdW5jdGlvbiBoYXZlIGJlZW4gY2FsbGVkXG4gICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBDcmVhdGVzIGEgbmdndi1pbnB1dCBpZiB0aGUgaG9zdCBpdHNlbGYgaXMgbm90IGEgdGV4dC1pbnB1dFxuICAgKiBTZXQgc3R5bGVzIHRvIG5vdCBkaXNwbGF5IHRoZSBpbnB1dCB3aGVuIGNsb3NlZFxuICAgKiBUcmlnZ2VyIGZpbHRlcmluZyB3aGVuIGNoYW5nZXMgb2NjdXIgaW4gdGhlIGZpZWxkXG4gICAqICovXG4gIHByaXZhdGUgY3JlYXRlSW5wdXQoKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBpbnB1dCBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIE5nZ3ZUeXBlYWhlYWRJbnB1dENvbXBvbmVudCxcbiAgICApXG4gICAgLy8gRm9yd2FyZCBuZWNlc3NhcnkgaW5mbyB0byBjb21wb25lbnRcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0RHJvcGRvd24pXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnc2VsZWN0ZWRGb3JtYXR0ZXInLCB0aGlzLnNlbGVjdGVkRm9ybWF0dGVyKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3Jlc3VsdEZvcm1hdHRlcicsIHRoaXMucmVzdWx0Rm9ybWF0dGVyKVxuICAgIC8vIExpc3RlbiB0byB2YWx1ZSBjaGFuZ2VzXG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5pbnN0YW5jZS5uZ2d2SW5wdXRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGlucHV0VmFsdWUpKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBDcmVhdGVzIGEgbmdndi1kcm9wZG93bi1saXN0IGlmIHRoZSBob3N0IGl0c2VsZiBpcyBhIG5nZ3YtaW5wdXQgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkxpc3QoKSB7XG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTmdndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCxcbiAgICApXG4gICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ2hvc3RDb21wb25lbnQnLCB0aGlzLmhvc3RJbnB1dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgU2V0cyB0aGUgb3B0aW9ucyB0aGUgdXNlciBjYW4gc2VsZWN0LlxuICAgKiBJZiB0aGUgaG9zdCBpcyBhIG5nZ3YtZHJvcGRvd24sIHV0aWxpemUgdGhlIGRyb3Bkb3duIGl0c2VsZiB0byBkaXNwbGF5IHRoZSBvcHRpb25zXG4gICAqIElmIHRoZSBob3N0IGlzIGEgbmdndi1pbnB1dCwgdXNlIHRoZSBjcmVhdGVkIG5nZ3YtZHJvcGRvd24tbGlzdCB0byBkaXNwbGF5ZSB0aGUgb3B0aW9uc1xuICAgKiBAcGFyYW0gZmlsdGVyZWRWYWx1ZXMgVGhlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd25cbiAgICogQHBhcmFtIGVtcHR5SW5wdXQgSWYgdGhlIGlucHV0IGlzIGVtcHR5XG4gICAqL1xuICBwcml2YXRlIHNldE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXM6IFRbXSwgaW5wdXQ6IHN0cmluZykge1xuICAgIGlmICghZmlsdGVyZWRWYWx1ZXMpIHJldHVyblxuICAgIC8vIENvbmRpdGlvbmFsbHkgYWRkIGVtcHR5IG9yIG51bGxpc2ggb3B0aW9uIGlmIGl0J3MgYWxsb3dlZCwgdGhlIGlucHV0IGlzIGVtcHR5IGFuZCBkb2VzIG5vdCBhbHJlYWR5IGNvbnRhaW4gbnVsbGlzaFxuICAgIGNvbnN0IGFsbG93TnVsbGlzaCA9XG4gICAgICB0aGlzLmFsbG93VW5zZWxlY3QgJiZcbiAgICAgICFpbnB1dCAmJlxuICAgICAgIShcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWRWYWx1ZXNbMF0gPz8ge30pLmluY2x1ZGVzKCdrZXknKSAmJlxuICAgICAgICBmaWx0ZXJlZFZhbHVlc1swXT8ua2V5ID09IG51bGxcbiAgICAgIClcbiAgICBpZiAoZmlsdGVyZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmVtcHR5T3B0aW9uXVxuICAgIH0gZWxzZSBpZiAoYWxsb3dOdWxsaXNoKSB7XG4gICAgICBmaWx0ZXJlZFZhbHVlcyA9IFt0aGlzLmRlZmF1bHROdWxsaXNoT3B0aW9uXS5jb25jYXQoZmlsdGVyZWRWYWx1ZXMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaG9zdElzRHJvcGRvd24pIHtcbiAgICAgIC8vIEFkZCBudWxsaXNoIG9wdGlvbiB3aGVuIG5vIGlucHV0IGlzIHdyaXR0ZW4gKG9yIHdoZW4gZHJvcGRvd24gaXMgZXBhbmRlZCBhbmQgaGFzIGEgc2VsZWN0aW9uKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uYWxsb3dDb250cm9sTnVsbGlzaE9wdGlvbiA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5vcHRpb25zID0gdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24udGV4dFRvSGlnaGxpZ2h0ID0gYCR7aW5wdXQgfHwgJyd9YFxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24ub25seUhhbmRsZURpc3RpbmN0Q2hhbmdlcyA9IGZhbHNlXG4gICAgICB0aGlzLmhvc3REcm9wZG93bi5kZXRlY3RDaGFuZ2VzKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5ob3N0SXNEcm9wZG93bikge1xuICAgICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoXG4gICAgICAgICdvcHRpb25zJyxcbiAgICAgICAgdGhpcy5mb3JtYXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzKSxcbiAgICAgIClcbiAgICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50LnNldElucHV0KCd0ZXh0VG9IaWdobGlnaHQnLCBgJHtpbnB1dCB8fCAnJ31gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgRm9ybWF0cyB0aGUgYXZhaWxhYmxlIG9wdGlvbnMgdG8gZGlzcGxheSBpbiB0aGUgZHJvcGRvd24gbGlzdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgc2VsZWN0ZWQgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRPcHRpb25zKG9wdGlvbnM6IFRbXSk6IE9wdGlvbkJhc2U8YW55PltdIHtcbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBbXVxuICAgIGlmICghdGhpcy5yZXN1bHRGb3JtYXR0ZXIpIHJldHVybiBvcHRpb25zXG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKCh2YWx1ZSkgPT5cbiAgICAgIHZhbHVlPy5sYWJlbCA/IHRoaXMucmVzdWx0Rm9ybWF0dGVyPy4odmFsdWUpIDogdmFsdWUsXG4gICAgKVxuICB9XG59XG4iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2Ryb3Bkb3duL3R5cGVhaGVhZC90eXBlYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFFSixPQUFPLEVBRVAsU0FBUyxFQUNULEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFHYixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQTtBQUMzSCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7OztBQU16RixNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLDBDQUEwQztJQUMxQyxJQUFhLGFBQWEsQ0FBQyxLQUFnRDtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO1FBRTlCLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFBO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBb0JELHNEQUFzRDtJQUNmLFdBQVcsQ0FB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SUFBSSxDQUFDLGVBQWU7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUN6QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUMzQixLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDckQsQ0FBQTtJQUNILENBQUM7K0dBdE1VLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5REFBeUQ7b0JBQ25FLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBNkVJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxJQUFJO3lDQXJFTixhQUFhO3NCQUF6QixLQUFLO2dCQVlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdnQyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZyb20sXG4gIE9wZXJhdG9yRnVuY3Rpb24sXG4gIFN1YmplY3QsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBPcHRpb24sIE9wdGlvbkJhc2UgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOZ2d2SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0J1xuaW1wb3J0IHsgTmdndkRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24uY29tcG9uZW50J1xuaW1wb3J0IHsgTmdndlR5cGVhaGVhZERyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3R5cGVhaGVhZC90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC90eXBlYWhlYWQtZHJvcGRvd24tbGlzdC5jb21wb25lbnQnXG5pbXBvcnQgeyBOZ2d2VHlwZWFoZWFkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3R5cGVhaGVhZC1pbnB1dC90eXBlYWhlYWQtaW5wdXQuY29tcG9uZW50J1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZ2d2LWlucHV0W25nZ3ZUeXBlYWhlYWRdLCBuZ2d2LWRyb3Bkb3duW25nZ3ZUeXBlYWhlYWRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndlR5cGVhaGVhZERpcmVjdGl2ZTxcbiAgICBLID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBWID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBUIGV4dGVuZHMgT3B0aW9uPEssIFY+ID0gT3B0aW9uPEssIFY+LFxuICA+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqIEZ1bmN0aW9uIHRoYXQgZmlsdGVyIHRoZSBpbnB1dHZhbHVlICovXG4gIEBJbnB1dCgpIHNldCBuZ2d2VHlwZWFoZWFkKHZhbHVlOiBPcGVyYXRvckZ1bmN0aW9uPHN0cmluZywgVFtdPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gPSB2YWx1ZVxuXG4gICAgLy8gSWYgaW5wdXRzdWJzY3JpcHRpb24gYWxyZWFkeSBleGlzdHMsIHVuc3Vic2NyaWJlIGFuZCBzdWJzY3JpYmUgYWdhaW5cbiAgICBpZiAodGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQpIHtcbiAgICAgIHRoaXMuaW5wdXRTdWJzY3JpcHRpb24kPy51bnN1YnNjcmliZSgpXG4gICAgICB0aGlzLmlucHV0U3Vic2NyaXB0aW9uJCA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBGb3JtYXRzIGVhY2ggaXRlbSB0aGF0IGlzIGRpc3BsYXllZCBhcyBhbiBvcHRpb24uIE9ubHkgYXBwbGllcyBmb3JtYXQgaWYgdGhlIG9wdGlvbiBpZiBpdCBpbXBsZW1lbnQgT3B0aW9uIGludGVyZmFjZS4gKi9cbiAgQElucHV0KCkgcmVzdWx0Rm9ybWF0dGVyPzogKG9wdGlvbjogT3B0aW9uQmFzZTxhbnk+KSA9PiBzdHJpbmdcblxuICAvKiogRm9ybWF0cyB0aGUgc2VsZWN0ZWQgaXRlbSBpbiB0aGUgaW5wdXQgd2hlbiBkcm9wZG93biBpcyBvcGVuZWQuIElmIG5vIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGRpc3BsYXkgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBvYmplY3RzIGxhYmVsIHByb3BlcnR5ICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkRm9ybWF0dGVyPzogKHNlbGVjdGVkOiBPcHRpb25CYXNlPGFueT4pID0+IHN0cmluZ1xuXG4gIC8qKiBBbGxvdyBvcHRpb24gdG8gYmUgdW5zZWxlY3RlZCBpbiB0aGUgZHJvcGRvd24gZXZlbiBpZiBpdCBpcyByZXF1aXJlZC4gRGVmYXVsdHMgdG8gdHJ1ZSAqL1xuICBASW5wdXQoKSBhbGxvd1Vuc2VsZWN0ID0gdHJ1ZVxuXG4gIC8qKiBDdXN0b20gbGFiZWwgZm9yIHRoZSB1bnNlbGVjdCBvcHRpb24gKi9cbiAgQElucHV0KCkgdW5zZWxlY3RMYWJlbD86IHN0cmluZ1xuXG4gIC8qKiBDdXN0b20gbGFiZWwgZm9yIHRoZSBlbXB0eSBvcHRpb24gKi9cbiAgQElucHV0KCkgZW1wdHlPcHRpb25MYWJlbD86IHN0cmluZ1xuXG4gIC8qKiBFbWl0cyB0aGUgZW50ZXJlZCBzdHJpbmcgdGhlIHVzZXIgaGFzIHdyaXR0ZW4gaW4gdGhlIGlucHV0ICovXG4gIEBPdXRwdXQoKSBmaWx0ZXJQaHJhc2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxuXG4gIC8qKiBGb3J3YXJkIHRleHQgaW5wdXRzIHRvIGFwcGx5IHRoZSBmaWx0ZXIgZnVuY3Rpb24qL1xuICBASG9zdExpc3RlbmVyKCduZ2d2SW5wdXQnLCBbJyRldmVudCddKSBvbk5nZ3ZJbnB1dChldmVudDogYW55KSB7XG4gICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KGV2ZW50KVxuICB9XG5cbiAgLyoqIEhlbHBlciB0byB0aGUgZGV0ZXJtaW5lIGlmIHRoZSBob3N0IGlzIG5nZ3YtZHJvZHBvd24gb3Igbmdndi1pbnB1dCovXG4gIGdldCBob3N0SXNEcm9wZG93bigpIHtcbiAgICByZXR1cm4gISF0aGlzLmhvc3REcm9wZG93blxuICB9XG5cbiAgLyoqIFByZWRlZmluZWQgb3B0aW9ucyAqL1xuICBnZXQgZGVmYXVsdE51bGxpc2hPcHRpb24oKTogT3B0aW9uQmFzZTxhbnk+IHtcbiAgICByZXR1cm4geyBrZXk6IG51bGwsIGxhYmVsOiB0aGlzLnVuc2VsZWN0TGFiZWwgfHwgJ1xcdTAwQTAnIH1cbiAgfVxuXG4gIGdldCBlbXB0eU9wdGlvbigpOiBPcHRpb25CYXNlPGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IG51bGwsXG4gICAgICBsYWJlbDogdGhpcy5lbXB0eU9wdGlvbkxhYmVsIHx8ICdsYWJlbC5ub21hdGNoaW5nb3B0aW9ucycsXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICB9XG4gIH1cblxuICAvKiogTmFtZSBvZiB0aGUgY29tcG9uZW50LiBuZ2d2LWRyb3Bkb3duIGlmIE5nZ3ZEcm9wZG93bkNvbXBvbmVudCBvciBuZ2d2LWlucHV0IGlmIE5nZ3ZJbnB1dENvbXBvbmVudCAqL1xuICBnZXQgbG9jYWxOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5sb2NhbE5hbWVcbiAgfVxuXG4gIGRyb3Bkb3duTGlzdENvbXBvbmVudCE6IENvbXBvbmVudFJlZjxOZ2d2VHlwZWFoZWFkRHJvcGRvd25MaXN0Q29tcG9uZW50PlxuICBpbnB1dENvbXBvbmVudCE6IENvbXBvbmVudFJlZjxOZ2d2VHlwZWFoZWFkSW5wdXRDb21wb25lbnQ+XG5cbiAgcHJpdmF0ZSB0eXBlYWhlYWRGdW5jdGlvbj86IE9wZXJhdG9yRnVuY3Rpb248c3RyaW5nLCBUW10+XG4gIHByaXZhdGUgaW5wdXRWYWx1ZSQgPSBuZXcgU3ViamVjdDxhbnk+KClcbiAgcHJpdmF0ZSBpbnB1dFN1YnNjcmlwdGlvbiQ/OiBTdWJzY3JpcHRpb25cbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGhvc3REcm9wZG93bjogTmdndkRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBob3N0SW5wdXQ6IE5nZ3ZJbnB1dENvbXBvbmVudCxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2VzKClcblxuICAgIGlmICh0aGlzLmhvc3RJc0Ryb3Bkb3duKSB0aGlzLmNyZWF0ZUlucHV0KClcbiAgICBlbHNlIHRoaXMuY3JlYXRlRHJvcGRvd25MaXN0KClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ29yZSBmdW5jdGlvbmFsaXR5IG9mIHR5cGVhaGVhZC4gRW1pdHMgaW5wdXQsIHRoZW4gZmlsdGVycyB0aGUgcmVzdWx0IGJhc2VkIG9uIHRoZSBzdXBwbGllZCBmdW5jdGlvblxuICAgKiBJZiBkaXJlY3RpdmUgaXMgYXBwbGllZCBvbiBuZ2d2LWlucHV0LCBtYW51YWxseSBzaG93IG9yIGhpZGUgb3B0aW9ucyBpbiB0aGUgbGlzdC5cbiAgICogSWYgZGlyZWN0aXZlIGlzIGFwcGxpZWQgb24gbmdndi1kcm9wZG93biwgbGV0IHRoZSBkcm9wZG93biBpdHNlbGYgY2hvb3NlIHdoZW4gdG8gb3BlbiBvciBjbG9zZVxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZXMoKSB7XG4gICAgdGhpcy5pbnB1dFN1YnNjcmlwdGlvbiQgPSB0aGlzLmlucHV0VmFsdWUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5maWx0ZXJQaHJhc2VDaGFuZ2UuZW1pdChpbnB1dFZhbHVlKSksXG4gICAgICAgIHRoaXMudHlwZWFoZWFkRnVuY3Rpb24gPyB0aGlzLnR5cGVhaGVhZEZ1bmN0aW9uIDogKCkgPT4gZnJvbShbXSksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaW5wdXRWYWx1ZSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2ZpbHRlcmVkVmFsdWVzLCBpbnB1dF0pID0+XG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlcywgaW5wdXQpLFxuICAgICAgKVxuXG4gICAgLy8gVHJpZ2dlciB0aGUgcGlwZSB3aGVuIHRoaXMgZnVuY3Rpb24gaGF2ZSBiZWVuIGNhbGxlZFxuICAgIHRoaXMuaW5wdXRWYWx1ZSQubmV4dCgnJylcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQ3JlYXRlcyBhIG5nZ3YtaW5wdXQgaWYgdGhlIGhvc3QgaXRzZWxmIGlzIG5vdCBhIHRleHQtaW5wdXRcbiAgICogU2V0IHN0eWxlcyB0byBub3QgZGlzcGxheSB0aGUgaW5wdXQgd2hlbiBjbG9zZWRcbiAgICogVHJpZ2dlciBmaWx0ZXJpbmcgd2hlbiBjaGFuZ2VzIG9jY3VyIGluIHRoZSBmaWVsZFxuICAgKiAqL1xuICBwcml2YXRlIGNyZWF0ZUlucHV0KCkge1xuICAgIC8vIENyZWF0ZSB0aGUgaW5wdXQgY29tcG9uZW50XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBOZ2d2VHlwZWFoZWFkSW5wdXRDb21wb25lbnQsXG4gICAgKVxuICAgIC8vIEZvcndhcmQgbmVjZXNzYXJ5IGluZm8gdG8gY29tcG9uZW50XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudC5zZXRJbnB1dCgnaG9zdENvbXBvbmVudCcsIHRoaXMuaG9zdERyb3Bkb3duKVxuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuc2V0SW5wdXQoJ3NlbGVjdGVkRm9ybWF0dGVyJywgdGhpcy5zZWxlY3RlZEZvcm1hdHRlcilcbiAgICB0aGlzLmlucHV0Q29tcG9uZW50LnNldElucHV0KCdyZXN1bHRGb3JtYXR0ZXInLCB0aGlzLnJlc3VsdEZvcm1hdHRlcilcbiAgICAvLyBMaXN0ZW4gdG8gdmFsdWUgY2hhbmdlc1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQuaW5zdGFuY2UubmdndklucHV0XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGlucHV0VmFsdWUpID0+IHRoaXMuaW5wdXRWYWx1ZSQubmV4dChpbnB1dFZhbHVlKSlcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgQ3JlYXRlcyBhIG5nZ3YtZHJvcGRvd24tbGlzdCBpZiB0aGUgaG9zdCBpdHNlbGYgaXMgYSBuZ2d2LWlucHV0ICovXG4gIHByaXZhdGUgY3JlYXRlRHJvcGRvd25MaXN0KCkge1xuICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIE5nZ3ZUeXBlYWhlYWREcm9wZG93bkxpc3RDb21wb25lbnQsXG4gICAgKVxuICAgIHRoaXMuZHJvcGRvd25MaXN0Q29tcG9uZW50LnNldElucHV0KCdob3N0Q29tcG9uZW50JywgdGhpcy5ob3N0SW5wdXQpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFNldHMgdGhlIG9wdGlvbnMgdGhlIHVzZXIgY2FuIHNlbGVjdC5cbiAgICogSWYgdGhlIGhvc3QgaXMgYSBuZ2d2LWRyb3Bkb3duLCB1dGlsaXplIHRoZSBkcm9wZG93biBpdHNlbGYgdG8gZGlzcGxheSB0aGUgb3B0aW9uc1xuICAgKiBJZiB0aGUgaG9zdCBpcyBhIG5nZ3YtaW5wdXQsIHVzZSB0aGUgY3JlYXRlZCBuZ2d2LWRyb3Bkb3duLWxpc3QgdG8gZGlzcGxheWUgdGhlIG9wdGlvbnNcbiAgICogQHBhcmFtIGZpbHRlcmVkVmFsdWVzIFRoZSBvcHRpb25zIHRvIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3duXG4gICAqIEBwYXJhbSBlbXB0eUlucHV0IElmIHRoZSBpbnB1dCBpcyBlbXB0eVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRPcHRpb25zKGZpbHRlcmVkVmFsdWVzOiBUW10sIGlucHV0OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbHRlcmVkVmFsdWVzKSByZXR1cm5cbiAgICAvLyBDb25kaXRpb25hbGx5IGFkZCBlbXB0eSBvciBudWxsaXNoIG9wdGlvbiBpZiBpdCdzIGFsbG93ZWQsIHRoZSBpbnB1dCBpcyBlbXB0eSBhbmQgZG9lcyBub3QgYWxyZWFkeSBjb250YWluIG51bGxpc2hcbiAgICBjb25zdCBhbGxvd051bGxpc2ggPVxuICAgICAgdGhpcy5hbGxvd1Vuc2VsZWN0ICYmXG4gICAgICAhaW5wdXQgJiZcbiAgICAgICEoXG4gICAgICAgIE9iamVjdC5rZXlzKGZpbHRlcmVkVmFsdWVzWzBdID8/IHt9KS5pbmNsdWRlcygna2V5JykgJiZcbiAgICAgICAgZmlsdGVyZWRWYWx1ZXNbMF0/LmtleSA9PSBudWxsXG4gICAgICApXG4gICAgaWYgKGZpbHRlcmVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZmlsdGVyZWRWYWx1ZXMgPSBbdGhpcy5lbXB0eU9wdGlvbl1cbiAgICB9IGVsc2UgaWYgKGFsbG93TnVsbGlzaCkge1xuICAgICAgZmlsdGVyZWRWYWx1ZXMgPSBbdGhpcy5kZWZhdWx0TnVsbGlzaE9wdGlvbl0uY29uY2F0KGZpbHRlcmVkVmFsdWVzKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmhvc3RJc0Ryb3Bkb3duKSB7XG4gICAgICAvLyBBZGQgbnVsbGlzaCBvcHRpb24gd2hlbiBubyBpbnB1dCBpcyB3cml0dGVuIChvciB3aGVuIGRyb3Bkb3duIGlzIGVwYW5kZWQgYW5kIGhhcyBhIHNlbGVjdGlvbilcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLmFsbG93Q29udHJvbE51bGxpc2hPcHRpb24gPSBmYWxzZVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24ub3B0aW9ucyA9IHRoaXMuZm9ybWF0T3B0aW9ucyhmaWx0ZXJlZFZhbHVlcylcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLnRleHRUb0hpZ2hsaWdodCA9IGAke2lucHV0IHx8ICcnfWBcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLm9ubHlIYW5kbGVEaXN0aW5jdENoYW5nZXMgPSBmYWxzZVxuICAgICAgdGhpcy5ob3N0RHJvcGRvd24uc2VsZWN0V2l0aFNwYWNlID0gZmFsc2VcbiAgICAgIHRoaXMuaG9zdERyb3Bkb3duLmRldGVjdENoYW5nZXMoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmhvc3RJc0Ryb3Bkb3duKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTGlzdENvbXBvbmVudC5zZXRJbnB1dChcbiAgICAgICAgJ29wdGlvbnMnLFxuICAgICAgICB0aGlzLmZvcm1hdE9wdGlvbnMoZmlsdGVyZWRWYWx1ZXMpLFxuICAgICAgKVxuICAgICAgdGhpcy5kcm9wZG93bkxpc3RDb21wb25lbnQuc2V0SW5wdXQoJ3RleHRUb0hpZ2hsaWdodCcsIGAke2lucHV0IHx8ICcnfWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBGb3JtYXRzIHRoZSBhdmFpbGFibGUgb3B0aW9ucyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBsaXN0XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBzZWxlY3RlZCB2YWx1ZVxuICAgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIGZvcm1hdE9wdGlvbnMob3B0aW9uczogVFtdKTogT3B0aW9uQmFzZTxhbnk+W10ge1xuICAgIGlmICghb3B0aW9ucykgcmV0dXJuIFtdXG4gICAgaWYgKCF0aGlzLnJlc3VsdEZvcm1hdHRlcikgcmV0dXJuIG9wdGlvbnNcbiAgICByZXR1cm4gb3B0aW9ucy5tYXAoKHZhbHVlKSA9PlxuICAgICAgdmFsdWU/LmxhYmVsID8gdGhpcy5yZXN1bHRGb3JtYXR0ZXI/Lih2YWx1ZSkgOiB2YWx1ZSxcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -84,11 +84,11 @@ export class NggvTextareaComponent extends NggvBaseControlValueAccessorComponent
|
|
|
84
84
|
this.onChange(this.state);
|
|
85
85
|
}
|
|
86
86
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NggvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows", size: "size" }, host: { properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i5.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NggvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows", size: "size" }, host: { properties: { "attr.data-thook": "this.thook", "class.small": "this.isSmall", "class.large": "this.isLarge" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description && descriptionIsVisible\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }, { kind: "directive", type: i5.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
88
88
|
}
|
|
89
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NggvTextareaComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
|
-
args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"] }]
|
|
91
|
+
args: [{ selector: 'nggv-textarea', template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"form-info description hide-if-empty\" *ngIf=\"description && descriptionIsVisible\">\n {{ description }}\n</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"gds-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n title=\"\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div\n class=\"gds-form-item__footer error-wrapper\"\n *transloco=\"let t; read: scope\"\n >\n <span\n class=\"form-info form-info--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span class=\"error-icon\">\n <gds-icon-triangle-exclamation\n width=\"16\"\n height=\"16\"\n solid=\"true\"\n *nggCoreElement\n ></gds-icon-triangle-exclamation>\n </span>\n\n <span\n *ngIf=\"error; else errorsRef\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <span\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"form-info form-info--countdown\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </span>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{--sg-text-primary: #333;--sg-form-control-bg: #fff;--gds-ref-pallet-base100: hsl(0, 0%, 97%);--sg-border-radius: 4px;--sg-border-width: 1px;--sg-border-color: #868686}:host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.gds-field-notice):is(label){margin-bottom:0}:host label:not(.gds-field-notice).form-control{width:fit-content}@supports (-moz-appearance: none){:host label:not(.gds-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.gds-field-notice).form-control:focus,:host label:not(.gds-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.gds-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.gds-field-notice)+input,:host label:not(.gds-field-notice)+textarea,fieldset :host label:not(.gds-field-notice)+div,:host label:not(.gds-field-notice)+button,:host label:not(.gds-field-notice)+.group-stepper,:host label:not(.gds-field-notice)+.stepper-wrapper,:host label:not(.gds-field-notice)+.group{margin-top:.5rem}:host label:not(.gds-field-notice)+.form-info{margin-bottom:.5rem}:host label+.gds-field,:host label+.nggv-field--locked{margin-top:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .gds-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:1rem}:host textarea.nggv-field--error{border-bottom:.125rem solid #9f000a!important}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem;display:flex}:host .form-info{font-size:.875rem;line-height:1.25rem;width:100%}:host .gds-form-item__footer .form-info{font-weight:500}:host .gds-form-item__footer .form-info--error{display:flex;align-items:flex-start;gap:.5em;color:#9f000a}:host .gds-form-item__footer .form-info--error .error-icon{margin-top:.128rem;align-items:center}:host .gds-form-item__footer>.form-info--countdown{font-weight:400}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}:host.small label:not(.gds-field-notice):not(.form-control){font-size:.875rem;line-height:1rem}:host.small label+textarea{margin-top:.25rem}:host.small textarea{padding:.38rem .5rem;font-size:.875rem}:host.small .error-wrapper,:host.small .form-info{margin-top:.25rem;font-size:.875rem;line-height:1rem}\n"] }]
|
|
92
92
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
93
93
|
type: Self
|
|
94
94
|
}, {
|
|
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
126
126
|
}], size: [{
|
|
127
127
|
type: Input
|
|
128
128
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7Ozs7O0FBRXpILGdGQUFnRjtBQU1oRixNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBSzlFOztPQUVHO0lBQ0gsSUFBZ0MsT0FBTztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFBO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBTUQsc0RBQXNEO0lBQ3RELElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELHNEQUFzRDtJQUN0RCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtJQUN2RSxDQUFDO0lBY0QsWUFDNkIsU0FBb0IsRUFHckMsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBR3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlFbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FDNUMsVUFBVSxDQUFBO1FBa0JaLHNEQUFzRDtRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBd0NqQixlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO1FBRXBDLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFLdEI7O1dBRUc7UUFDTSxTQUFJLEdBQXNCLE9BQU8sQ0FBQTtJQVUxQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUssQ0FBQTtRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQTFGVSxxQkFBcUIsdUVBNkV0QixlQUFlO21HQTdFZCxxQkFBcUIsK1lDdEJsQywrL0dBbUlBOzs0RkQ3R2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7OzBCQStFdEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5RUEzRWdCLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQU1OLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFPTSxPQUFPO3NCQUF0QyxXQUFXO3VCQUFDLGFBQWE7Z0JBS2pCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxTQUFTO3NCQUFyQixLQUFLO2dCQVlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFXTyxTQUFTO3NCQUFyQixLQUFLO2dCQWVHLElBQUk7c0JBQVosS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29ucy90cmlhbmdsZS1leGNsYW1hdGlvbi5qcydcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5cbi8qKiBUZXh0YXJlYSBmaWVsZHMgYWxsb3cgdXNlcnMgdG8gYWRkIGFuZCBlZGl0IGxvbmdlciBvciBtdWx0aXBsZSBsaW5lIHRleHQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndlRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB7XG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAndGV4dGFyZWEnXG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNtYWxsIGNsYXNzIGJhc2VkIG9uIHRoZSBzaXplIGlucHV0LlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYXJnZSBjbGFzcyBiYXNlZCBvbiB0aGUgc2l6ZSBpbnB1dC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKSBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gIH1cblxuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgdmFsdWUgd2lsbCBub3QgYmUgZWRpdGFibGUuICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2VcbiAgLyoqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuICovXG4gIEBJbnB1dCgpIHNldCBtaW5MZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbWlubGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1pbmxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtaW5MZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtaW5sZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGlmIG1heGxlbmd0aCBpcyB1c2VkICovXG4gIGdldCBoYXNNYXhMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5tYXhsZW5ndGggIT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIH1cblxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXh0YXJlYSBhbmQgZGlzYWJsZXMgcmVzaXplLiBBIHNjcm9sbGJhciB3aWxsIGFwcGVhciBpZiBuZWNlc3NhcnkuICovXG4gIEBJbnB1dCgpIHJvd3M/OiBudW1iZXJcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheWVkIHNpemUgb2YgdGhlIHRleHRhcmVhLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgPSAnbGFyZ2UnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bGFiZWxcbiAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgW2F0dHIuZm9yXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIm9wdGlvbmFsID09PSB0cnVlIHx8IChyZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2UpXCJcbiAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIERFU0NSSVBUSU9OIC0tPlxuPGRpdiBjbGFzcz1cImZvcm0taW5mbyBkZXNjcmlwdGlvbiBoaWRlLWlmLWVtcHR5XCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICB7eyBkZXNjcmlwdGlvbiB9fVxuPC9kaXY+XG5cbjwhLS0gTE9DS0VEIElOUFVUIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZFwiPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgbG9ja2VkVHBsIHx8IGRlZmF1bHRMb2NrZWRUcGw7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgIFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2NrZWRUcGw+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhc3RhdGVcIiBjbGFzcz1cInVuc2V0LXN0YXRlXCI+LTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZVwiPlxuICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBJTlBVVCBGSUVMRCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gIDx0ZXh0YXJlYVxuICAgICNpbnB1dFxuICAgIFtpZF09XCJpZCArICctdGV4dGFyZWEnXCJcbiAgICBjbGFzcz1cImdkcy1maWVsZFwiXG4gICAgW25nQ2xhc3NdPVwieyAnbm8tcmVzaXplJzogISFyb3dzIH1cIlxuICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICBbYXR0ci5yb3dzXT1cInJvd3NcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICBbdmFsdWVdPVwic3RhdGVcIlxuICAgIHRpdGxlPVwiXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gID48L3RleHRhcmVhPlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJnZHMtZm9ybS1pdGVtX19mb290ZXIgZXJyb3Itd3JhcHBlclwiXG4gICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1lcnJvclwiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICAgICAqbmdJZj1cImludmFsaWQgJiYgKGVycm9yIHx8IG5nQ29udHJvbD8uaW52YWxpZClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICA8Z2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb25cbiAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgc29saWQ9XCJ0cnVlXCJcbiAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+e3sgZXJyb3IgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01heExlbmd0aFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nZ3ZDaGFyYWN0ZXJDb3VudGRvd249XCJcbiAgICAgICAgICBtYXhsZW5ndGg7XG4gICAgICAgICAgY3VycmVudExlbmd0aDogKGlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py52YWx1ZSA/PyAnJykubGVuZ3RoO1xuICAgICAgICAgIGNoYXJhY3RlcnNMZWZ0IGFzIGNoYXJhY3RlcnNMZWZ0XG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tY291bnRkb3duXCJcbiAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodFwiXG4gICAgICA+XG4gICAgICAgIHt7IGNoYXJhY3RlcnNMZWZ0IH19IHt7IHQoJ2xhYmVsLm1heGxlbmd0aCcpIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ0hJTERSRU4gLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvRUFBb0UsQ0FBQTtBQUUzRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBRXBFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFBOzs7Ozs7O0FBRXpILGdGQUFnRjtBQU1oRixNQUFNLE9BQU8scUJBQXNCLFNBQVEscUNBQXFDO0lBSzlFOztPQUVHO0lBQ0gsSUFBZ0MsT0FBTztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFBO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQWdDLE9BQU87UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUM5QixDQUFDO0lBTUQsc0RBQXNEO0lBQ3RELElBQWEsU0FBUyxDQUFDLE1BQWM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUE7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELHNEQUFzRDtJQUN0RCxJQUFhLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBYSxTQUFTLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtJQUN2RSxDQUFDO0lBY0QsWUFDNkIsU0FBb0IsRUFHckMsY0FBOEIsRUFDOUIsR0FBc0I7UUFFaEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFOVixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBR3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlFbEMsb0ZBQW9GO1FBQzNDLFVBQUssR0FDNUMsVUFBVSxDQUFBO1FBa0JaLHNEQUFzRDtRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFBO1FBd0NqQixlQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO1FBRXBDLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFLdEI7O1dBRUc7UUFDTSxTQUFJLEdBQXNCLE9BQU8sQ0FBQTtJQVUxQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLE9BQU8sQ0FBQyxLQUFZO1FBQ2xCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUssQ0FBQTtRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDOytHQTFGVSxxQkFBcUIsdUVBNkV0QixlQUFlO21HQTdFZCxxQkFBcUIsK1lDdEJsQyx1aEhBbUlBOzs0RkQ3R2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7OzBCQStFdEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5RUEzRWdCLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQU1OLE9BQU87c0JBQXRDLFdBQVc7dUJBQUMsYUFBYTtnQkFPTSxPQUFPO3NCQUF0QyxXQUFXO3VCQUFDLGFBQWE7Z0JBS2pCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxTQUFTO3NCQUFyQixLQUFLO2dCQVlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFXTyxTQUFTO3NCQUFyQixLQUFLO2dCQWVHLElBQUk7c0JBQVosS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29ucy90cmlhbmdsZS1leGNsYW1hdGlvbi5qcydcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb1Njb3BlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuXG5pbXBvcnQgeyBOZ2d2QmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9iYXNlLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3InXG5cbi8qKiBUZXh0YXJlYSBmaWVsZHMgYWxsb3cgdXNlcnMgdG8gYWRkIGFuZCBlZGl0IGxvbmdlciBvciBtdWx0aXBsZSBsaW5lIHRleHQuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dGFyZWEuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndlRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgTmdndkJhc2VDb250cm9sVmFsdWVBY2Nlc3NvckNvbXBvbmVudCB7XG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAndGV4dGFyZWEnXG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNtYWxsIGNsYXNzIGJhc2VkIG9uIHRoZSBzaXplIGlucHV0LlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsYXJnZSBjbGFzcyBiYXNlZCBvbiB0aGUgc2l6ZSBpbnB1dC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MubGFyZ2UnKSBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gIH1cblxuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgdmFsdWUgd2lsbCBub3QgYmUgZWRpdGFibGUuICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2VcbiAgLyoqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuICovXG4gIEBJbnB1dCgpIHNldCBtaW5MZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbWlubGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1pbmxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtaW5MZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtaW5sZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICAvKiogTWF4aW11bSBsZW5ndGggKG51bWJlciBvZiBjaGFyYWN0ZXJzKSBvZiB2YWx1ZS4gKi9cbiAgQElucHV0KCkgc2V0IG1heExlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHRoaXMuX21heGxlbmd0aCA9IGxlbmd0aFxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG4gIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoXG4gIH1cbiAgLyoqXG4gICAqIE1heGltdW0gbGVuZ3RoIChudW1iZXIgb2YgY2hhcmFjdGVycykgb2YgdmFsdWUuXG4gICAqIEBkZXByZWNhdGVkIG1heGxlbmd0aCB0cmlnZ2VycyBhbmd1bGFyLXRlbXBsYXRlLXZhbGlkYXRpb24uIFVzZSBASW5wdXQoKSBtYXhMZW5ndGggaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBtYXhsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhsZW5ndGggPSBsZW5ndGhcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGlmIG1heGxlbmd0aCBpcyB1c2VkICovXG4gIGdldCBoYXNNYXhMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5tYXhsZW5ndGggJiYgdGhpcy5tYXhsZW5ndGggIT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIH1cblxuICBwcml2YXRlIF9tYXhsZW5ndGggPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuXG4gIHByaXZhdGUgX21pbmxlbmd0aCA9IDBcblxuICAvKiogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSB0ZXh0YXJlYSBhbmQgZGlzYWJsZXMgcmVzaXplLiBBIHNjcm9sbGJhciB3aWxsIGFwcGVhciBpZiBuZWNlc3NhcnkuICovXG4gIEBJbnB1dCgpIHJvd3M/OiBudW1iZXJcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzcGxheWVkIHNpemUgb2YgdGhlIHRleHRhcmVhLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgPSAnbGFyZ2UnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFRSQU5TTE9DT19TQ09QRSlcbiAgICBwcm90ZWN0ZWQgdHJhbnNsb2NvU2NvcGU6IFRyYW5zbG9jb1Njb3BlLFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBzdXBlcihuZ0NvbnRyb2wsIHRyYW5zbG9jb1Njb3BlLCBjZHIpXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuXG4gICAgdGhpcy5zdGF0ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cbn1cbiIsIjwhLS0gTEFCRUwgLS0+XG48bGFiZWxcbiAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICBjbGFzcz1cImdkcy1maWVsZC1sYWJlbCBoaWRlLWlmLWVtcHR5XCJcbiAgW2F0dHIuZm9yXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6IHNjb3BlXCJcbj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbENvbnRlbnRUcGwgfHwgYmFzaWNMYWJlbENvbnRlbnRUcGxcIlxuICA+PC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0xhYmVsQ29udGVudFRwbD5cbiAgICA8IS0tIHRvIHRyaWdnZXIgY3NzOmVtcHR5IGlmIG5vIGxhYmVsIHdhcyBhZGRlZCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIm9wdGlvbmFsID09PSB0cnVlIHx8IChyZXF1aXJlZCAhPT0gdHJ1ZSAmJiBvcHRpb25hbCAhPT0gZmFsc2UpXCJcbiAgICAgICAgY2xhc3M9XCJnZHMtZmllbGQtbGFiZWwtLW9wdGlvbmFsXCJcbiAgICAgID5cbiAgICAgICAgKHt7IHQoJ2xhYmVsLm9wdGlvbmFsJykgfX0pXG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2xhYmVsPlxuXG48IS0tIERFU0NSSVBUSU9OIC0tPlxuPGRpdiBjbGFzcz1cImZvcm0taW5mbyBkZXNjcmlwdGlvbiBoaWRlLWlmLWVtcHR5XCIgKm5nSWY9XCJkZXNjcmlwdGlvbiAmJiBkZXNjcmlwdGlvbklzVmlzaWJsZVwiPlxuICB7eyBkZXNjcmlwdGlvbiB9fVxuPC9kaXY+XG5cbjwhLS0gTE9DS0VEIElOUFVUIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvY2tlZFwiPlxuICA8bmctdGVtcGxhdGVcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgbG9ja2VkVHBsIHx8IGRlZmF1bHRMb2NrZWRUcGw7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogc3RhdGUgfVxuICAgIFwiXG4gID48L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2NrZWRUcGw+XG4gICAgPGRpdlxuICAgICAgW2lkXT1cImlkICsgJy10ZXh0YXJlYSdcIlxuICAgICAgY2xhc3M9XCJuZ2d2LWZpZWxkLS1sb2NrZWRcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLnZhbHVlXT1cInN0YXRlXCJcbiAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhc3RhdGVcIiBjbGFzcz1cInVuc2V0LXN0YXRlXCI+LTwvc3Bhbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZVwiPlxuICAgICAgICB7eyBzdGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBJTlBVVCBGSUVMRCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9ja2VkXCI+XG4gIDx0ZXh0YXJlYVxuICAgICNpbnB1dFxuICAgIFtpZF09XCJpZCArICctdGV4dGFyZWEnXCJcbiAgICBjbGFzcz1cImdkcy1maWVsZFwiXG4gICAgW25nQ2xhc3NdPVwieyAnbm8tcmVzaXplJzogISFyb3dzIH1cIlxuICAgIFtjbGFzcy5uZ2d2LWZpZWxkLS1lcnJvcl09XCJpbnZhbGlkXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXG4gICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICBbYXR0ci5yb3dzXT1cInJvd3NcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICBbdmFsdWVdPVwic3RhdGVcIlxuICAgIHRpdGxlPVwiXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gID48L3RleHRhcmVhPlxuXG4gIDwhLS0gRVJST1JTIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJnZHMtZm9ybS1pdGVtX19mb290ZXIgZXJyb3Itd3JhcHBlclwiXG4gICAgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJmb3JtLWluZm8gZm9ybS1pbmZvLS1lcnJvclwiXG4gICAgICBbYXR0ci5mb3JdPVwiaWQgKyAnLXRleHRhcmVhJ1wiXG4gICAgICAqbmdJZj1cImludmFsaWQgJiYgKGVycm9yIHx8IG5nQ29udHJvbD8uaW52YWxpZClcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaWNvblwiPlxuICAgICAgICA8Z2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb25cbiAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgc29saWQ9XCJ0cnVlXCJcbiAgICAgICAgICAqbmdnQ29yZUVsZW1lbnRcbiAgICAgICAgPjwvZ2RzLWljb24tdHJpYW5nbGUtZXhjbGFtYXRpb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiZXJyb3I7IGVsc2UgZXJyb3JzUmVmXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+e3sgZXJyb3IgfX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JzUmVmPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiZmlyc3RFcnJvciBhcyBlcnJvclwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZXJyb3JsYWJlbCdcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnZXJyb3IuZmllbGQnICsgZXJyb3I/LmNvZGUsIGVycm9yPy5wYXJhbXMpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc01heExlbmd0aFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nZ3ZDaGFyYWN0ZXJDb3VudGRvd249XCJcbiAgICAgICAgICBtYXhsZW5ndGg7XG4gICAgICAgICAgY3VycmVudExlbmd0aDogKGlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py52YWx1ZSA/PyAnJykubGVuZ3RoO1xuICAgICAgICAgIGNoYXJhY3RlcnNMZWZ0IGFzIGNoYXJhY3RlcnNMZWZ0XG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1pbmZvIGZvcm0taW5mby0tY291bnRkb3duXCJcbiAgICAgICAgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodFwiXG4gICAgICA+XG4gICAgICAgIHt7IGNoYXJhY3RlcnNMZWZ0IH19IHt7IHQoJ2xhYmVsLm1heGxlbmd0aCcpIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ0hJTERSRU4gLS0+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
|