@norwegian/core-components 7.5.0 → 7.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/filter/filter.component.mjs +2 -1
- package/esm2022/lib/components/input/input.component.mjs +34 -41
- package/esm2022/lib/components/list/list.component.mjs +2 -2
- package/esm2022/lib/components/phone-number/phone-number.component.mjs +45 -6
- package/esm2022/lib/components/radio/radio.component.mjs +9 -3
- package/esm2022/lib/components/select/select.component.mjs +91 -47
- package/esm2022/lib/components/select/select.module.mjs +5 -4
- package/esm2022/lib/components/simple-list/simple-list.component.mjs +2 -2
- package/esm2022/lib/components/slide-toggle/slide-toggle.component.mjs +9 -3
- package/esm2022/lib/components/textarea/textarea.component.mjs +46 -5
- package/esm2022/lib/components/textarea/textarea.module.mjs +5 -4
- package/fesm2022/norwegian-core-components.mjs +263 -135
- package/fesm2022/norwegian-core-components.mjs.map +1 -1
- package/lib/components/input/input.component.d.ts +11 -12
- package/lib/components/phone-number/phone-number.component.d.ts +12 -2
- package/lib/components/radio/radio.component.d.ts +1 -0
- package/lib/components/select/select.component.d.ts +11 -3
- package/lib/components/select/select.module.d.ts +2 -1
- package/lib/components/textarea/textarea.component.d.ts +13 -3
- package/lib/components/textarea/textarea.module.d.ts +2 -1
- package/package.json +1 -1
- package/styles/1__settings/_colors.scss +17 -11
- package/styles/3__base/_body.scss +1 -1
- package/styles/3__base/_heading.scss +2 -2
- package/styles/3__base/_input.scss +2 -2
- package/styles/3__base/_link.scss +8 -8
- package/styles/3__base/_type.scss +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @license
|
|
3
3
|
* Copyright Norwegian Air Shuttle. All Rights Reserved.
|
|
4
4
|
*/
|
|
5
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
5
|
+
import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
|
|
6
6
|
import { NasComponentBase } from '../../core/base/nas-component.base';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
@@ -12,6 +12,7 @@ import * as i4 from "../select/option/option.component";
|
|
|
12
12
|
import * as i5 from "../select/optgroup/optgroup.component";
|
|
13
13
|
import * as i6 from "@angular/forms";
|
|
14
14
|
import * as i7 from "../icon/icon.component";
|
|
15
|
+
let nextId = 0;
|
|
15
16
|
/**
|
|
16
17
|
* @description
|
|
17
18
|
* Norwegian Phone number Component | Form Controls | New design
|
|
@@ -22,6 +23,7 @@ export class PhoneNumberComponent extends NasComponentBase {
|
|
|
22
23
|
}
|
|
23
24
|
set model(value) {
|
|
24
25
|
this.phoneNumber = value;
|
|
26
|
+
this.valid = !!value;
|
|
25
27
|
this.modelChange.emit(this.phoneNumber);
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
@@ -41,6 +43,9 @@ export class PhoneNumberComponent extends NasComponentBase {
|
|
|
41
43
|
this.selectedValue = option;
|
|
42
44
|
this.selectedChange.emit(this.selectedValue);
|
|
43
45
|
}
|
|
46
|
+
get inputId() {
|
|
47
|
+
return this.id ? `${this.id}__number` : `nas-phone-number-${this.componentId}__number`;
|
|
48
|
+
}
|
|
44
49
|
constructor() {
|
|
45
50
|
super('nas-phone-number');
|
|
46
51
|
/**
|
|
@@ -67,21 +72,52 @@ export class PhoneNumberComponent extends NasComponentBase {
|
|
|
67
72
|
* <nas-phone-number (selectedChange)="onSelectedChange($event)"></nas-phone-number>
|
|
68
73
|
*/
|
|
69
74
|
this.selectedChange = new EventEmitter();
|
|
75
|
+
this.componentId = nextId++;
|
|
76
|
+
}
|
|
77
|
+
onKeydown(e) {
|
|
78
|
+
this.lastWasTab = e.key === 'Tab';
|
|
79
|
+
}
|
|
80
|
+
ngOnInit() {
|
|
81
|
+
if (this.nasFormGroup && this.nasFormControlName) {
|
|
82
|
+
const formControl = this.nasFormGroup.get(this.nasFormControlName);
|
|
83
|
+
formControl.valueChanges.subscribe(value => {
|
|
84
|
+
this.valid = !!value;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
ngAfterViewInit() {
|
|
89
|
+
if (this.exists(this.disabled)) {
|
|
90
|
+
const inputElement = document.getElementById(this.inputId);
|
|
91
|
+
inputElement.setAttribute('disabled', 'disabled');
|
|
92
|
+
}
|
|
70
93
|
}
|
|
71
94
|
mainClass() {
|
|
72
|
-
const { error, disabled, spaceless } = this;
|
|
95
|
+
const { error, disabled, spaceless, active, valid, focus } = this;
|
|
73
96
|
return this.getClass('', [
|
|
74
97
|
this.exists(this.error) && 'error',
|
|
75
98
|
this.exists(this.disabled) && 'disabled',
|
|
76
|
-
this.exists(this.spaceless) && 'spaceless'
|
|
99
|
+
this.exists(this.spaceless) && 'spaceless',
|
|
100
|
+
this.active && 'active',
|
|
101
|
+
this.valid && 'valid',
|
|
102
|
+
this.focus && 'focus'
|
|
77
103
|
]);
|
|
78
104
|
}
|
|
105
|
+
setActiveOnFocus(active) {
|
|
106
|
+
if (this.exists(this.error) || this.exists(this.disabled)) {
|
|
107
|
+
this.active = false;
|
|
108
|
+
this.focus = this.lastWasTab;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.active = active;
|
|
112
|
+
this.focus = active && this.lastWasTab;
|
|
113
|
+
this.lastWasTab = false;
|
|
114
|
+
}
|
|
79
115
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PhoneNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" />\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #15273F;background-color:#fff}.nas-phone-number__text[disabled]{background-color:#e9e7e4;border:0}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{opacity:.5}.nas-phone-number--spaceless{margin-bottom:0}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;background-color:#fff;line-height:24px;border:2px solid #15273F;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
81
117
|
}
|
|
82
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PhoneNumberComponent, decorators: [{
|
|
83
119
|
type: Component,
|
|
84
|
-
args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"
|
|
120
|
+
args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"] }]
|
|
85
121
|
}], ctorParameters: function () { return []; }, propDecorators: { options: [{
|
|
86
122
|
type: Input
|
|
87
123
|
}], preferredOptions: [{
|
|
@@ -139,5 +175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
139
175
|
type: Input
|
|
140
176
|
}], selectedChange: [{
|
|
141
177
|
type: Output
|
|
178
|
+
}], onKeydown: [{
|
|
179
|
+
type: HostListener,
|
|
180
|
+
args: ['document:keydown', ['$event']]
|
|
142
181
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7O0FBS3RFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFzTnhELElBQWEsS0FBSztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFXRDtRQUNFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBcE01Qjs7Ozs7O1VBTUU7UUFDTyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBb0l6Qjs7Ozs7O1VBTUU7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUF3Q25EOzs7Ozs7VUFNRTtRQUNRLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFJakUsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksV0FBVztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxTVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0MkJDbkJqQyxvbUlBb0VNOzsyRkRqRE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFhbkIsT0FBTztzQkFBZixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFTRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBU0csV0FBVztzQkFBbkIsS0FBSztnQkFTRyxFQUFFO3NCQUFWLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU3FCLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQVNoQixRQUFRO3NCQUFoQixLQUFLO2dCQVdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQWVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU0UsUUFBUTtzQkFBaEIsS0FBSztnQkFVRyxhQUFhO3NCQUFyQixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFtQkksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL25hcy1jb21wb25lbnQuYmFzZSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25Nb2RlbCB9IGZyb20gJy4uL3NlbGVjdC9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFBob25lIG51bWJlciBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtcGhvbmUtbnVtYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLW51bWJlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSB7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBjb3VudHJ5IGNvZGVzLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUHJlZmVycmVkIG9wdGlvbnMgd2lsbCBiZSBsaXN0ZWQgb24gdG9wLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbcHJlZmVycmVkLW9wdGlvbnNdPVwicHJlZmVycmVkT3B0aW9uc1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcHJlZmVycmVkT3B0aW9uczogQXJyYXk8U2VsZWN0T3B0aW9uTW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNpbmdsZSBQaG9uZSBudW1iZXIgcHJlZml4L2NvdW50cnkgY29kZSwgaWYgZXhpc3RzIHdpbGwgcmVwbGFjZSB0aGUgZHJvcGRvd24gc2VsZWN0b3IgZm9yIGNvdW50cnljb2RlXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmaXhDb3VudHJ5Q29kZV09XCInKzQ3J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcHJlZml4Q291bnRyeUNvZGU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBwaG9uZSBudW1iZXIuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtsYWJlbF09XCJwaG9uZSBudW1iZXJcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3Igb3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHByZWZlcnJlZE9wdGlvbnMuIE9ubHkgaW4gdXNlIHdoZW4gcHJlZmVycmVkT3B0aW9ucyBhcmUgdXNlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbbGFiZWxdPVwicHJlZmVycmVkT3B0aW9uc0xhYmVsXCI+Li4uPC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAqIEBwcm9wZXJ0eSBJbnB1dFxuICogQGRlc2NyaXB0aW9uXG4gKiBMYWJlbCBvdmVyIHBob25lIG51bWJlciBpbnB1dCBmaWVsZFxuICogQGV4YW1wbGVcbiAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2lucHV0TGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+Li4uPC9uYXMtcGhvbmUtbnVtYmVyPlxuKi9cbiAgQElucHV0KCkgaW5wdXRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgcGxhY2UgaG9sZGVyIGZvciBuYXRpdmUgaW5wdXQgZWxlbWVudCBvZiBwaG9uZSBudW1iZXIuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwbGFjZWhvbGRlcl09XCJwaG9uZSBudW1iZXJcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaWRdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdHlwZSBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuIERlZmF1bHQgdmFsdWUgaXMgbnVtYmVyXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFt0eXBlXT1cIid0ZXh0J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgdHlwZSA9ICdudW1iZXInO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgaW4gYW4gZXJyb3Igc3RhdGUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIGVycm9yPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgaXMgZGlzYWJsZWQgb3Igbm8sIHdpdGggZGlzYWJsZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZGlzYWJsZWQ+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgc3BhY2VsZXNzIHN0eWxpbmcgKHJlbW92aW5nIHNwYWNpbmcpXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIHNwYWNlbGVzcz48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gZXJyb3Igb2NjdXIuIEVycm9yIGF0dHJpYnV0ZSBuZWVkIHRvIGJlIHRydWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtlcnJvck1lc3NhZ2VdPVwiJ3BsZWFzZSBmaWxsIGluIHRoZSBwaG9uZSBudW1iZXIgZmllbGQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpbmZvIHRleHQgcmVsYXRlZCB0byB0aGUgaW5wdXRcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2luZm9dPVwiJ3BsZWFzZSB3cml0ZSA4IGRpZ2l0IHBob25lIG51bWJlciB3aXRob3V0IHNwYWNlcydcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGluZm86IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpY29uIG9uIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaWNvbl09XCIncmVtb3ZlJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgcmVhZG9ubHkuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIHJlYWRvbmx5PjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhcmlhIGRlc2NyaWJlZGJ5IGZvciBhY2Nlc3NpYmlsaXR5XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFthcmlhLWRlc2NyaWJlZGJ5XT1cIidwaG9uZSBudW1iZXIgZmllbGQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnk6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSByZXF1aXJlZCBhdHRyaWJ1dGUgb24gdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50LlxuICAgKiAgQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVxdWlyZWQ+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgc2VsZWN0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIidwaG9uZU51bWJlcidcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXhdPVwiJ3Bob25lTnVtYmVyUHJlZml4J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtR3JvdXBdPVwibXlGb3JtXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIG1vZGVsIGJpbmRlZCB3aXRoIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlciBjb21wb25lbnQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsobW9kZWwpXT1cIm1vZGVsXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBwcml2YXRlIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdldCBtb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5waG9uZU51bWJlcjtcbiAgfVxuICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucGhvbmVOdW1iZXIgPSB2YWx1ZTtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5waG9uZU51bWJlcik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gb3V0cHV0IGV2ZW50IHRoYXQgZmllcyB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChtb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gQ1NTIGNsYXNzIHRvIHRoZSBzZWxlY3Rvci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Nzc0NsYXNzXT1cImNzc0NsYXNzXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBjc3NDbGFzczogQ2xhc3NNb2RlbDtcblxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBkZWZhdWx0IHNlbGVjdGVkIHZhbHVlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBTZWxlY3RPcHRpb25Nb2RlbDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCk6IFNlbGVjdE9wdGlvbk1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZChvcHRpb246IFNlbGVjdE9wdGlvbk1vZGVsKSB7XG4gICAgaWYgKCFvcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb3B0aW9uO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSBhIHNlbGVjdGlvbiBpcyBkb25lLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZSgkZXZlbnQpXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wdGlvbk1vZGVsPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtcGhvbmUtbnVtYmVyJyk7XG4gIH1cblxuICBtYWluQ2xhc3MoKTogQ2xhc3NNb2RlbCB7XG4gICAgY29uc3QgeyBlcnJvciwgZGlzYWJsZWQsIHNwYWNlbGVzcyB9ID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLmdldENsYXNzKCcnLCBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VsZXNzKSAmJiAnc3BhY2VsZXNzJ1xuICAgIF0pO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3JcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlUmVhY3RpdmVcIj5cbiAgICAgICAge3twcmVmaXhDb3VudHJ5Q29kZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0Q291bnRyeUNvZGVSZWFjdGl2ZT5cbiAgICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvdW50cnktY29kZScpXCI+XG4gICAgICAgICAgPG5hcy1zZWxlY3QgKm5nSWY9XCIhcHJlZmVycmVkT3B0aW9uc1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NwYWNlbGVzc109XCJzcGFjZWxlc3NcIiBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVByZWZpeFwiXG4gICAgICAgICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVByZWZpeFwiIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgICA8bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5hcy1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbl09XCJvcHRpb25cIj48L25hcy1vcHRpb24+XG4gICAgICAgICAgICA8L25hcy1vcHRncm91cD5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ251bWJlcicpXCIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3JcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJleGlzdHMoZXJyb3IpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlJylcIj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0taWNvbicpXCI+XG4gICAgICA8bmFzLWljb24gdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8cCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLXRleHQnKVwiIFtpZF09XCJlcnJvcklkXCIgKm5nSWY9XCJleGlzdHMoZXJyb3IpICYmIGVycm9yTWVzc2FnZVwiPiB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L3A+XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7QUFLdEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQXNOeEQsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFXRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFBLENBQUMsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLFdBQVcsVUFBVSxDQUFDO0lBQ3hGLENBQUM7SUFRRDtRQUNFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBL001Qjs7Ozs7O1VBTUU7UUFDTyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBcUl6Qjs7Ozs7O1VBTUU7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUF3Q25EOzs7Ozs7VUFNRTtRQUNRLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFjL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBR0QsU0FBUyxDQUFDLENBQWdCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25FLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM5QixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRCxZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWxFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFdBQVc7WUFDMUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTztZQUNyQixJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWU7UUFDOUIsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDN0IsT0FBTTtTQUNQO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUV2QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDOzhHQW5WVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw4NkJDckJqQyx5dklBb0VNOzsyRkQvQ08sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFhbkIsT0FBTztzQkFBZixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFTRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBU0csV0FBVztzQkFBbkIsS0FBSztnQkFTRyxFQUFFO3NCQUFWLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU3FCLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQVNoQixRQUFRO3NCQUFoQixLQUFLO2dCQVdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQWdCSSxXQUFXO3NCQUFwQixNQUFNO2dCQVNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBVUcsYUFBYTtzQkFBckIsS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBbUJJLGNBQWM7c0JBQXZCLE1BQU07Z0JBa0JQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuLi9zZWxlY3QvbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gUGhvbmUgbnVtYmVyIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1waG9uZS1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGNvdW50cnkgY29kZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcmVmZXJyZWQgb3B0aW9ucyB3aWxsIGJlIGxpc3RlZCBvbiB0b3AuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmZXJyZWQtb3B0aW9uc109XCJwcmVmZXJyZWRPcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2luZ2xlIFBob25lIG51bWJlciBwcmVmaXgvY291bnRyeSBjb2RlLCBpZiBleGlzdHMgd2lsbCByZXBsYWNlIHRoZSBkcm9wZG93biBzZWxlY3RvciBmb3IgY291bnRyeWNvZGVcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3ByZWZpeENvdW50cnlDb2RlXT1cIicrNDcnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmaXhDb3VudHJ5Q29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2xhYmVsXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBvcHRpb25zLiBPbmx5IGluIHVzZSB3aGVuIHByZWZlcnJlZE9wdGlvbnMgYXJlIHVzZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPi4uLjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgb3B0aW9uc0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3IgcHJlZmVycmVkT3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHByZWZlcnJlZE9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICogQHByb3BlcnR5IElucHV0XG4gKiBAZGVzY3JpcHRpb25cbiAqIExhYmVsIG92ZXIgcGhvbmUgbnVtYmVyIGlucHV0IGZpZWxkXG4gKiBAZXhhbXBsZVxuICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbaW5wdXRMYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4qL1xuICBASW5wdXQoKSBpbnB1dExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBwbGFjZSBob2xkZXIgZm9yIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3BsYWNlaG9sZGVyXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpZF09XCIncGhvbmVOdW1iZXInXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gRGVmYXVsdCB2YWx1ZSBpcyBudW1iZXJcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3R5cGVdPVwiJ3RleHQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSB0eXBlID0gJ251bWJlcic7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBpbiBhbiBlcnJvciBzdGF0ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZXJyb3I+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBkaXNhYmxlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgc3BhY2VsZXNzPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgc3BhY2VsZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBlcnJvciBvY2N1ci4gRXJyb3IgYXR0cmlidXRlIG5lZWQgdG8gYmUgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Vycm9yTWVzc2FnZV09XCIncGxlYXNlIGZpbGwgaW4gdGhlIHBob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaW5mb109XCIncGxlYXNlIHdyaXRlIDggZGlnaXQgcGhvbmUgbnVtYmVyIHdpdGhvdXQgc3BhY2VzJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpY29uXT1cIidyZW1vdmUnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVhZG9ubHk+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ3Bob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqICBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciByZXF1aXJlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Db250cm9sTmFtZVByZWZpeF09XCIncGhvbmVOdW1iZXJQcmVmaXgnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Hcm91cF09XCJteUZvcm1cIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kZWwgYmluZGVkIHdpdGggbmF0aXZlIGlucHV0IGVsZW1lbnQgb2YgcGhvbmUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgWyhtb2RlbCldPVwibW9kZWxcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIHByaXZhdGUgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyO1xuICB9XG4gIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnBob25lTnVtYmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBvdXRwdXQgZXZlbnQgdGhhdCBmaWVzIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoKVwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdG9yLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBDbGFzc01vZGVsO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IFNlbGVjdE9wdGlvbk1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsoc2VsZWN0ZWQpXT1cInNlbGVjdGVkXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKTogU2VsZWN0T3B0aW9uTW9kZWwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uTW9kZWwpIHtcbiAgICBpZiAoIW9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIGEgc2VsZWN0aW9uIGlzIGRvbmUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IGAke3RoaXMuaWR9X19udW1iZXJgOiBgbmFzLXBob25lLW51bWJlci0ke3RoaXMuY29tcG9uZW50SWR9X19udW1iZXJgO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xuICBwdWJsaWMgdmFsaWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIGxhc3RXYXNUYWI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1waG9uZS1udW1iZXInKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkID0gISF2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnB1dElkKTtcbiAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgbWFpbkNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIGNvbnN0IHsgZXJyb3IsIGRpc2FibGVkLCBzcGFjZWxlc3MsIGFjdGl2ZSwgdmFsaWQsIGZvY3VzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgICAgdGhpcy5hY3RpdmUgJiYgJ2FjdGl2ZScsXG4gICAgICB0aGlzLnZhbGlkICYmICd2YWxpZCcsXG4gICAgICB0aGlzLmZvY3VzICYmICdmb2N1cydcbiAgICBdKTtcbiAgfVxuXG4gIHNldEFjdGl2ZU9uRm9jdXMoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7ICAgIFxuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpIHx8ICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9jdXMgPSB0aGlzLmxhc3RXYXNUYWI7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLmZvY3VzID0gYWN0aXZlICYmIHRoaXMubGFzdFdhc1RhYjtcblxuICAgIHRoaXMubGFzdFdhc1RhYiA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWxcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlZml4JylcIiAqbmdJZj1cInByZWZpeENvdW50cnlDb2RlIGVsc2Ugc2VsZWN0Q291bnRyeUNvZGVSZWFjdGl2ZVwiPlxuICAgICAgICB7e3ByZWZpeENvdW50cnlDb2RlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RDb3VudHJ5Q29kZVJlYWN0aXZlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCJcbiAgICAgICAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICAgIDxuYXMtc2VsZWN0ICpuZ0lmPVwicHJlZmVycmVkT3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzcGFjZWxlc3NdPVwic3BhY2VsZXNzXCJcbiAgICAgICAgICAgIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCIgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWwgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dC1sYWJlbCcpXCIgKm5nSWY9XCJpbnB1dExhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tpbnB1dExhYmVsfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0JylcIiBbYXR0ci5pZF09XCJpbnB1dElkXCIgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cImV4aXN0cyhlcnJvcilcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UnKVwiPlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS1pY29uJylcIj5cbiAgICAgIDxuYXMtaWNvbiB0eXBlPVwibmVnYXRpdmVcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0tdGV4dCcpXCIgW2lkXT1cImVycm9ySWRcIiAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCI+IHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvcD5cbiAgPC9zcGFuPlxuPC9kaXY+Il19
|
|
@@ -53,12 +53,18 @@ export class RadioComponent extends NasComponentBase {
|
|
|
53
53
|
this.checked = event.target.checked;
|
|
54
54
|
this.checkedChange.emit(this.checked);
|
|
55
55
|
}
|
|
56
|
+
onKeydown(event) {
|
|
57
|
+
if (event.key == 'Enter') {
|
|
58
|
+
this.checkedValue = true;
|
|
59
|
+
this.checkedChange.emit(this.checked);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
56
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: RadioComponent, selector: "nas-radio", inputs: { id: "id", value: "value", name: "name", error: "error", disabled: "disabled", strong: "strong", block: "block", spaceless: "spaceless", tabIndex: "tabIndex", required: "required", ariaLabel: ["aria-label", "ariaLabel"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], checked: "checked", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup" }, outputs: { checkedChange: "checkedChange" }, viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radio"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <label [nasClass]=\"mainClass()\">\n <input #radio type=\"radio\" [disabled]=\"exists(disabled)\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [nasClass]=\"mainClass()\" [formGroup]=\"nasFormGroup\">\n <input #radio type=\"radio\" [formControlName]=\"nasFormControlName\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-radio{-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;position:relative;display:inline-block;cursor:pointer;padding-left:30px;margin-bottom:24px;margin-right:24px;color:#15273f}.nas-radio input{position:absolute;opacity:0;z-index:-1}.nas-radio input:focus-visible+.nas-radio__indicator{outline:2px solid #0978E8;outline-offset:2px}.nas-radio input:checked+.nas-radio__indicator{border-color:#15273f;background-color:#ebf4ff}.nas-radio input:checked+.nas-radio__indicator:before{transform:scale(1.7);opacity:1}.nas-radio input[disabled]+.nas-radio__indicator{background-color:#e9e7e4;border-color:#6f6f6f}.nas-radio input[disabled]+.nas-radio__indicator:before{background-color:#6f6f6f}.nas-radio__indicator{position:absolute;display:block;-webkit-user-select:none;user-select:none;left:0;width:22px;height:22px;border-radius:50%;border:2px solid #15273F;background-color:#fff}.nas-radio__indicator:before{content:\"\";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;margin-left:-3px;margin-top:-3px;background-color:#15273f;opacity:0;transform:scale(0);transition:all .1s cubic-bezier(0,0,.1,1)}.nas-radio__indicator:focus-visible{outline:2px solid #2A5980;outline-offset:2px}.nas-radio--block{display:block}.nas-radio--spaceless{margin-bottom:0}.nas-radio--disabled{color:#6f6f6f;cursor:default}.nas-radio--disabled .nas-radio__indicator{-webkit-user-select:none;user-select:none}.nas-radio--strong{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-radio--error input:checked+.nas-radio__indicator,.nas-radio--error input+.nas-radio__indicator{border-color:#e5212d;background-color:#fff5f3}.nas-radio--error input:checked+.nas-radio__indicator:before,.nas-radio--error input+.nas-radio__indicator:before{border:2px solid #E5212D;background-color:#e5212d}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: RadioComponent, selector: "nas-radio", inputs: { id: "id", value: "value", name: "name", error: "error", disabled: "disabled", strong: "strong", block: "block", spaceless: "spaceless", tabIndex: "tabIndex", required: "required", ariaLabel: ["aria-label", "ariaLabel"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], checked: "checked", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup" }, outputs: { checkedChange: "checkedChange" }, viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radio"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <label [nasClass]=\"mainClass()\">\n <input #radio type=\"radio\" [disabled]=\"exists(disabled)\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" (keydown)=\"onKeydown($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [nasClass]=\"mainClass()\" [formGroup]=\"nasFormGroup\">\n <input #radio type=\"radio\" [formControlName]=\"nasFormControlName\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" (keydown)=\"onKeydown($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-radio{-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;position:relative;display:inline-block;cursor:pointer;padding-left:30px;margin-bottom:24px;margin-right:24px;color:#15273f}.nas-radio input{position:absolute;opacity:0;z-index:-1}.nas-radio input:focus-visible+.nas-radio__indicator{outline:2px solid #0978E8;outline-offset:2px}.nas-radio input:checked+.nas-radio__indicator{border-color:#15273f;background-color:#ebf4ff}.nas-radio input:checked+.nas-radio__indicator:before{transform:scale(1.7);opacity:1}.nas-radio input[disabled]+.nas-radio__indicator{background-color:#e9e7e4;border-color:#6f6f6f}.nas-radio input[disabled]+.nas-radio__indicator:before{background-color:#6f6f6f}.nas-radio__indicator{position:absolute;display:block;-webkit-user-select:none;user-select:none;left:0;width:22px;height:22px;border-radius:50%;border:2px solid #15273F;background-color:#fff}.nas-radio__indicator:before{content:\"\";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;margin-left:-3px;margin-top:-3px;background-color:#15273f;opacity:0;transform:scale(0);transition:all .1s cubic-bezier(0,0,.1,1)}.nas-radio__indicator:focus-visible{outline:2px solid #2A5980;outline-offset:2px}.nas-radio--block{display:block}.nas-radio--spaceless{margin-bottom:0}.nas-radio--disabled{color:#6f6f6f;cursor:default}.nas-radio--disabled .nas-radio__indicator{-webkit-user-select:none;user-select:none}.nas-radio--strong{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-radio--error input:checked+.nas-radio__indicator,.nas-radio--error input+.nas-radio__indicator{border-color:#e5212d;background-color:#fff5f3}.nas-radio--error input:checked+.nas-radio__indicator:before,.nas-radio--error input+.nas-radio__indicator:before{border:2px solid #E5212D;background-color:#e5212d}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
58
64
|
}
|
|
59
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: RadioComponent, decorators: [{
|
|
60
66
|
type: Component,
|
|
61
|
-
args: [{ selector: 'nas-radio', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <label [nasClass]=\"mainClass()\">\n <input #radio type=\"radio\" [disabled]=\"exists(disabled)\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [nasClass]=\"mainClass()\" [formGroup]=\"nasFormGroup\">\n <input #radio type=\"radio\" [formControlName]=\"nasFormControlName\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-radio{-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;position:relative;display:inline-block;cursor:pointer;padding-left:30px;margin-bottom:24px;margin-right:24px;color:#15273f}.nas-radio input{position:absolute;opacity:0;z-index:-1}.nas-radio input:focus-visible+.nas-radio__indicator{outline:2px solid #0978E8;outline-offset:2px}.nas-radio input:checked+.nas-radio__indicator{border-color:#15273f;background-color:#ebf4ff}.nas-radio input:checked+.nas-radio__indicator:before{transform:scale(1.7);opacity:1}.nas-radio input[disabled]+.nas-radio__indicator{background-color:#e9e7e4;border-color:#6f6f6f}.nas-radio input[disabled]+.nas-radio__indicator:before{background-color:#6f6f6f}.nas-radio__indicator{position:absolute;display:block;-webkit-user-select:none;user-select:none;left:0;width:22px;height:22px;border-radius:50%;border:2px solid #15273F;background-color:#fff}.nas-radio__indicator:before{content:\"\";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;margin-left:-3px;margin-top:-3px;background-color:#15273f;opacity:0;transform:scale(0);transition:all .1s cubic-bezier(0,0,.1,1)}.nas-radio__indicator:focus-visible{outline:2px solid #2A5980;outline-offset:2px}.nas-radio--block{display:block}.nas-radio--spaceless{margin-bottom:0}.nas-radio--disabled{color:#6f6f6f;cursor:default}.nas-radio--disabled .nas-radio__indicator{-webkit-user-select:none;user-select:none}.nas-radio--strong{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-radio--error input:checked+.nas-radio__indicator,.nas-radio--error input+.nas-radio__indicator{border-color:#e5212d;background-color:#fff5f3}.nas-radio--error input:checked+.nas-radio__indicator:before,.nas-radio--error input+.nas-radio__indicator:before{border:2px solid #E5212D;background-color:#e5212d}\n"] }]
|
|
67
|
+
args: [{ selector: 'nas-radio', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <label [nasClass]=\"mainClass()\">\n <input #radio type=\"radio\" [disabled]=\"exists(disabled)\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" (keydown)=\"onKeydown($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [nasClass]=\"mainClass()\" [formGroup]=\"nasFormGroup\">\n <input #radio type=\"radio\" [formControlName]=\"nasFormControlName\" [attr.id]=\"inputId\" [attr.name]=\"name\" [value]=\"value\"\n [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel\" [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\" [required]=\"required\" [checked]=\"exists(checked)\"\n (change)=\"onChange($event)\" (keydown)=\"onKeydown($event)\" />\n <span [nasClass]=\"getClass('indicator')\"></span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </label>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-radio{-webkit-user-select:none;-o-user-select:none;user-select:none;-webkit-user-drag:none;-moz-user-drag:none;user-drag:none;position:relative;display:inline-block;cursor:pointer;padding-left:30px;margin-bottom:24px;margin-right:24px;color:#15273f}.nas-radio input{position:absolute;opacity:0;z-index:-1}.nas-radio input:focus-visible+.nas-radio__indicator{outline:2px solid #0978E8;outline-offset:2px}.nas-radio input:checked+.nas-radio__indicator{border-color:#15273f;background-color:#ebf4ff}.nas-radio input:checked+.nas-radio__indicator:before{transform:scale(1.7);opacity:1}.nas-radio input[disabled]+.nas-radio__indicator{background-color:#e9e7e4;border-color:#6f6f6f}.nas-radio input[disabled]+.nas-radio__indicator:before{background-color:#6f6f6f}.nas-radio__indicator{position:absolute;display:block;-webkit-user-select:none;user-select:none;left:0;width:22px;height:22px;border-radius:50%;border:2px solid #15273F;background-color:#fff}.nas-radio__indicator:before{content:\"\";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;margin-left:-3px;margin-top:-3px;background-color:#15273f;opacity:0;transform:scale(0);transition:all .1s cubic-bezier(0,0,.1,1)}.nas-radio__indicator:focus-visible{outline:2px solid #2A5980;outline-offset:2px}.nas-radio--block{display:block}.nas-radio--spaceless{margin-bottom:0}.nas-radio--disabled{color:#6f6f6f;cursor:default}.nas-radio--disabled .nas-radio__indicator{-webkit-user-select:none;user-select:none}.nas-radio--strong{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-radio--error input:checked+.nas-radio__indicator,.nas-radio--error input+.nas-radio__indicator{border-color:#e5212d;background-color:#fff5f3}.nas-radio--error input:checked+.nas-radio__indicator:before,.nas-radio--error input+.nas-radio__indicator:before{border:2px solid #E5212D;background-color:#e5212d}\n"] }]
|
|
62
68
|
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
|
63
69
|
type: Input
|
|
64
70
|
}], value: [{
|
|
@@ -100,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
100
106
|
type: ViewChild,
|
|
101
107
|
args: ['radio']
|
|
102
108
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFjLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFbEgsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQThGbEQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFxQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7UUFDRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFsQnJCOzs7Ozs7V0FNRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVlwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxXQUFXO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVE7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsT0FBTyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQXRLVSxjQUFjO2tHQUFkLGNBQWMsaXBCQ2xCM0IscTBDQXVCYzs7MkZETEQsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUk7MEVBVTVCLEVBQUU7c0JBQVYsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLE1BQU07c0JBQWQsS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT2UsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQU9RLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQU9DLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQVVwQixPQUFPO3NCQURWLEtBQUs7Z0JBaUJHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRWEsWUFBWTtzQkFBL0IsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSwgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdFbmNhcHN1bGF0aW9uLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gcmFkaW8gYnV0dG9uIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSB7XG4gIHByaXZhdGUgY2hlY2tlZFZhbHVlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gYnV0dG9uLCByZXByZXNlbnRlZCBhcyBhIHN0cmluZ1xuICAqL1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBuYXRpdmUgcmFkaW8gaW5wdXRcbiAgKi9cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgZXJyb3Igc3R5bGluZyBvZiB0aGUgcmFkaW8gaW5wdXRcbiAgKi9cbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgcmFkaW8gaW5wdXQgZGlzYWJsZWQgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLiBUaGlzIHdpbGwgbm90IHdvcmsgaW4gY29tYmluYXRpb24gd2l0aCByZWFjdGl2ZSBmb3Jtcy5cbiAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgcmFkaW8gY29tcG9uZW50IHRvIHN0cm9uZyBzdHlsaW5nXG4gICovXG4gIEBJbnB1dCgpIHN0cm9uZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBkaXNwbGF5IGNzcyBwcm9wZXJ0eSB0byBibG9ja1xuICAqL1xuICBASW5wdXQoKSBibG9jazogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZW1vdmVkIHRoZSBib3R0b20gbWFyZ2luXG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTdHJpbmcgdG8gc2V0IHRhYkluZGV4IG9uIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICovXG4gIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyByZXF1aXJlZCBhdHRyaWJ1dGUgb24gbmF0aXZlIHJhZGlvIGlucHV0IGVsZW1lbnRcbiAgKi9cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVXNlZCB0byBzZXQgdGhlICdhcmlhLWxhYmVsJyBhdHRyaWJ1dGUgb24gdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudC5cbiAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlICdhcmlhLWxhYmVsbGVkYnknIGF0dHJpYnV0ZSB0YWtlcyBwcmVjZWRlbmNlIGFzIHRoZSBlbGVtZW50J3MgdGV4dCBhbHRlcm5hdGl2ZS5cbiAgKi9cbiAgQElucHV0KCdhcmlhLWRlc2NyaWJlZGJ5JykgYXJpYURlc2NyaWJlZGJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlICdhcmlhLWRlc2NyaWJlZGJ5JyBhdHRyaWJ1dGUgaXMgcmVhZCBhZnRlciB0aGUgZWxlbWVudCdzIGxhYmVsIGFuZCBmaWVsZCB0eXBlLlxuICAqL1xuICBASW5wdXQoJ2FyaWEtbGFiZWxsZWRieScpIGFyaWFMYWJlbGxlZGJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0IHRoZSByYWRpbyBidXR0b24gY2hlY2tlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1yYWRpbyBjaGVja2VkPjwvbmFzLXJhZGlvPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkVmFsdWU7XG4gIH1cbiAgc2V0IGNoZWNrZWQoaW5wdXQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoZWNrZWRWYWx1ZSA9IGlucHV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIGlucHV0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWlucHV0IFtuYXNGb3JtQ29udHJvbE5hbWVdPVwiJ3VzZXJuYW1lJ1wiPjwvbmFzLWlucHV0PlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbmFzRm9ybUdyb3VwXT1cImxvZ2luR3JvdXBcIj48L25hcy1pbnB1dD5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIExpc3RlbiBmb3IgY2hlY2tlZCBjaGFuZ2UgZXZlbnRzLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXJhZGlvIChjaGVja2VkQ2hhbmdlKT1cIm9uQ2hlY2tlZENoYW5nZSgkZXZlbnQpXCI+PC9uYXMtcmFkaW8+XG4gICAqL1xuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdyYWRpbycpIHJhZGlvRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHRoaXMuaWQgOiBgbmFzLXJhZGlvLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1yYWRpbycpO1xuICAgIHRoaXMuY29tcG9uZW50SWQgPSBuZXh0SWQrKztcbiAgfVxuXG4gIG1haW5DbGFzcygpOiBDbGFzc01vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygnJywgW1xuICAgICAgdGhpcy5leGlzdHModGhpcy5lcnJvcikgJiYgJ2Vycm9yJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpICYmICdkaXNhYmxlZCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmJsb2NrKSAmJiAnYmxvY2snLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zdHJvbmcpICYmICdzdHJvbmcnXG4gICAgXSk7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuYXNGb3JtR3JvdXAgfHwgIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtuYXNDbGFzc109XCJtYWluQ2xhc3MoKVwiPlxuICAgIDxpbnB1dCAjcmFkaW8gdHlwZT1cInJhZGlvXCIgW2Rpc2FibGVkXT1cImV4aXN0cyhkaXNhYmxlZClcIiBbYXR0ci5pZF09XCJpbnB1dElkXCIgW2F0dHIubmFtZV09XCJuYW1lXCIgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2NoZWNrZWRdPVwiZXhpc3RzKGNoZWNrZWQpXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpbmRpY2F0b3InKVwiPjwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlYWN0aXZlRm9ybT5cbiAgPGxhYmVsIFtuYXNDbGFzc109XCJtYWluQ2xhc3MoKVwiIFtmb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0ICNyYWRpbyB0eXBlPVwicmFkaW9cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiIFthdHRyLmlkXT1cImlucHV0SWRcIiBbYXR0ci5uYW1lXT1cIm5hbWVcIiBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbY2hlY2tlZF09XCJleGlzdHMoY2hlY2tlZClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2luZGljYXRvcicpXCI+PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+Il19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFjLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFbEgsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQThGbEQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFxQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7UUFDRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFsQnJCOzs7Ozs7V0FNRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVlwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxXQUFXO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVE7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsT0FBTyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQzs4R0E3S1UsY0FBYztrR0FBZCxjQUFjLGlwQkNsQjNCLHE0Q0F1QmM7OzJGRExELGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxpQkFHTixpQkFBaUIsQ0FBQyxJQUFJOzBFQVU1QixFQUFFO3NCQUFWLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9lLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFPUSxlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFPQyxjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFVcEIsT0FBTztzQkFEVixLQUFLO2dCQWlCRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFTSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVhLFlBQVk7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hc0NvbXBvbmVudEJhc2UsIENsYXNzTW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3RW5jYXBzdWxhdGlvbiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIHJhZGlvIGJ1dHRvbiBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2Uge1xuICBwcml2YXRlIGNoZWNrZWRWYWx1ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBJRCBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnRcbiAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGJ1dHRvbiwgcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmdcbiAgKi9cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBuYW1lIGF0dHJpYnV0ZSBvZiB0aGUgbmF0aXZlIHJhZGlvIGlucHV0XG4gICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGVycm9yIHN0eWxpbmcgb2YgdGhlIHJhZGlvIGlucHV0XG4gICovXG4gIEBJbnB1dCgpIGVycm9yOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJhZGlvIGlucHV0IGRpc2FibGVkIHdpdGggZGlzYWJsZWQgc3R5bGluZy4gVGhpcyB3aWxsIG5vdCB3b3JrIGluIGNvbWJpbmF0aW9uIHdpdGggcmVhY3RpdmUgZm9ybXMuXG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJhZGlvIGNvbXBvbmVudCB0byBzdHJvbmcgc3R5bGluZ1xuICAqL1xuICBASW5wdXQoKSBzdHJvbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgZGlzcGxheSBjc3MgcHJvcGVydHkgdG8gYmxvY2tcbiAgKi9cbiAgQElucHV0KCkgYmxvY2s6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlZCB0aGUgYm90dG9tIG1hcmdpblxuICAqL1xuICBASW5wdXQoKSBzcGFjZWxlc3M6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3RyaW5nIHRvIHNldCB0YWJJbmRleCBvbiBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAqL1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgcmVxdWlyZWQgYXR0cmlidXRlIG9uIG5hdGl2ZSByYWRpbyBpbnB1dCBlbGVtZW50XG4gICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFVzZWQgdG8gc2V0IHRoZSAnYXJpYS1sYWJlbCcgYXR0cmlidXRlIG9uIHRoZSB1bmRlcmx5aW5nIGlucHV0IGVsZW1lbnQuXG4gICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSAnYXJpYS1sYWJlbGxlZGJ5JyBhdHRyaWJ1dGUgdGFrZXMgcHJlY2VkZW5jZSBhcyB0aGUgZWxlbWVudCdzIHRleHQgYWx0ZXJuYXRpdmUuXG4gICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSAnYXJpYS1kZXNjcmliZWRieScgYXR0cmlidXRlIGlzIHJlYWQgYWZ0ZXIgdGhlIGVsZW1lbnQncyBsYWJlbCBhbmQgZmllbGQgdHlwZS5cbiAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsbGVkYnknKSBhcmlhTGFiZWxsZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCB0aGUgcmFkaW8gYnV0dG9uIGNoZWNrZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcmFkaW8gY2hlY2tlZD48L25hcy1yYWRpbz5cbiAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tlZFZhbHVlO1xuICB9XG4gIHNldCBjaGVja2VkKGlucHV0OiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGVja2VkVmFsdWUgPSBpbnB1dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBpbnB1dC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIid1c2VybmFtZSdcIj48L25hcy1pbnB1dD5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtaW5wdXQgW25hc0Zvcm1Hcm91cF09XCJsb2dpbkdyb3VwXCI+PC9uYXMtaW5wdXQ+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBMaXN0ZW4gZm9yIGNoZWNrZWQgY2hhbmdlIGV2ZW50cy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1yYWRpbyAoY2hlY2tlZENoYW5nZSk9XCJvbkNoZWNrZWRDaGFuZ2UoJGV2ZW50KVwiPjwvbmFzLXJhZGlvPlxuICAgKi9cbiAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgncmFkaW8nKSByYWRpb0VsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyB0aGlzLmlkIDogYG5hcy1yYWRpby0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtcmFkaW8nKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBtYWluQ2xhc3MoKTogQ2xhc3NNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5ibG9jaykgJiYgJ2Jsb2NrJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VsZXNzKSAmJiAnc3BhY2VsZXNzJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3Ryb25nKSAmJiAnc3Ryb25nJ1xuICAgIF0pO1xuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHRoaXMuY2hlY2tlZCk7XG4gIH1cblxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZihldmVudC5rZXkgPT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5jaGVja2VkVmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhbmFzRm9ybUdyb3VwIHx8ICFuYXNGb3JtQ29udHJvbE5hbWU7IGVsc2UgcmVhY3RpdmVGb3JtXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwibWFpbkNsYXNzKClcIj5cbiAgICA8aW5wdXQgI3JhZGlvIHR5cGU9XCJyYWRpb1wiIFtkaXNhYmxlZF09XCJleGlzdHMoZGlzYWJsZWQpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLm5hbWVdPVwibmFtZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtjaGVja2VkXT1cImV4aXN0cyhjaGVja2VkKVwiXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiIC8+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpbmRpY2F0b3InKVwiPjwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlYWN0aXZlRm9ybT5cbiAgPGxhYmVsIFtuYXNDbGFzc109XCJtYWluQ2xhc3MoKVwiIFtmb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgPGlucHV0ICNyYWRpbyB0eXBlPVwicmFkaW9cIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiIFthdHRyLmlkXT1cImlucHV0SWRcIiBbYXR0ci5uYW1lXT1cIm5hbWVcIiBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbY2hlY2tlZF09XCJleGlzdHMoY2hlY2tlZClcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5kaWNhdG9yJylcIj48L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|