@skyux/forms 11.0.0-alpha.0 → 11.0.0-alpha.10
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/documentation.json +4498 -4939
- package/esm2022/index.mjs +14 -11
- package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +3 -3
- package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +3 -3
- package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +3 -3
- package/esm2022/lib/modules/character-counter/character-counter.module.mjs +4 -4
- package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +18 -15
- package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +4 -4
- package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
- package/esm2022/lib/modules/checkbox/checkbox.component.mjs +27 -34
- package/esm2022/lib/modules/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/modules/field-group/field-group.component.mjs +9 -6
- package/esm2022/lib/modules/field-group/field-group.module.mjs +4 -4
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-change.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-click.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.mjs +22 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.mjs +32 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +485 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.mjs +24 -0
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.mjs +103 -0
- package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +12 -75
- package/esm2022/lib/modules/file-attachment/file-drop/file-drop-change.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/file-drop/file-drop.component.mjs +336 -0
- package/esm2022/lib/modules/file-attachment/file-drop/file-drop.module.mjs +18 -0
- package/esm2022/lib/modules/file-attachment/file-drop/file-item.component.mjs +163 -0
- package/esm2022/lib/modules/file-attachment/file-drop/file-link.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/shared/file-item-error-type.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/shared/file-item.mjs +2 -0
- package/esm2022/lib/modules/file-attachment/shared/file-item.service.mjs +71 -0
- package/esm2022/lib/modules/file-attachment/shared/file-size.pipe.mjs +61 -0
- package/esm2022/lib/modules/file-attachment/shared/file-validate-function.mjs +2 -0
- package/esm2022/lib/modules/form-error/form-error.component.mjs +3 -3
- package/esm2022/lib/modules/form-error/form-error.module.mjs +4 -4
- package/esm2022/lib/modules/form-error/form-errors.component.mjs +5 -5
- package/esm2022/lib/modules/form-error/form-errors.module.mjs +4 -4
- package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +3 -3
- package/esm2022/lib/modules/input-box/input-box-host.service.mjs +7 -4
- package/esm2022/lib/modules/input-box/input-box.component.mjs +22 -26
- package/esm2022/lib/modules/input-box/input-box.module.mjs +4 -4
- package/esm2022/lib/modules/radio/radio-group-id.service.mjs +3 -3
- package/esm2022/lib/modules/radio/radio-group.component.mjs +41 -48
- package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
- package/esm2022/lib/modules/radio/radio.component.mjs +23 -30
- package/esm2022/lib/modules/radio/radio.module.mjs +4 -4
- package/esm2022/lib/modules/required-state/required-state.directive.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +4 -4
- package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box.component.mjs +3 -3
- package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
- package/esm2022/lib/modules/shared/form-field-label-text-required.directive.mjs +37 -0
- package/esm2022/lib/modules/shared/form-field-label-text-required.service.mjs +9 -7
- package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +11 -13
- package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
- package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +16 -23
- package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
- package/esm2022/testing/checkbox/checkbox-harness.mjs +5 -4
- package/fesm2022/skyux-forms-testing.mjs +4 -3
- package/fesm2022/skyux-forms-testing.mjs.map +1 -1
- package/fesm2022/skyux-forms.mjs +506 -474
- package/fesm2022/skyux-forms.mjs.map +1 -1
- package/index.d.ts +21 -18
- package/lib/modules/checkbox/checkbox-group.component.d.ts +2 -2
- package/lib/modules/checkbox/checkbox.component.d.ts +6 -6
- package/lib/modules/file-attachment/{types → file-attachment}/file-attachment-change.d.ts +1 -1
- package/lib/modules/file-attachment/{types → file-attachment}/file-attachment-click.d.ts +1 -1
- package/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.d.ts +11 -0
- package/lib/modules/file-attachment/{file-attachment-label.component.d.ts → file-attachment/file-attachment-label.component.d.ts} +7 -5
- package/lib/modules/file-attachment/{file-attachment.component.d.ts → file-attachment/file-attachment.component.d.ts} +24 -18
- package/lib/modules/file-attachment/file-attachment/file-attachment.module.d.ts +9 -0
- package/lib/modules/file-attachment/{file-attachment.service.d.ts → file-attachment/file-attachment.service.d.ts} +2 -2
- package/lib/modules/file-attachment/file-attachments.module.d.ts +6 -15
- package/lib/modules/file-attachment/{types → file-drop}/file-drop-change.d.ts +1 -1
- package/lib/modules/file-attachment/{file-drop.component.d.ts → file-drop/file-drop.component.d.ts} +12 -8
- package/lib/modules/file-attachment/file-drop/file-drop.module.d.ts +9 -0
- package/lib/modules/file-attachment/{file-item.component.d.ts → file-drop/file-item.component.d.ts} +3 -3
- package/lib/modules/file-attachment/{file-size.pipe.d.ts → shared/file-size.pipe.d.ts} +3 -4
- package/lib/modules/input-box/input-box-host.service.d.ts +1 -0
- package/lib/modules/input-box/input-box.component.d.ts +3 -3
- package/lib/modules/radio/radio-group.component.d.ts +11 -10
- package/lib/modules/radio/radio.component.d.ts +6 -6
- package/lib/modules/shared/form-field-label-text-required.directive.d.ts +14 -0
- package/lib/modules/shared/form-field-label-text-required.service.d.ts +2 -1
- package/lib/modules/toggle-switch/toggle-switch.component.d.ts +4 -5
- package/package.json +14 -14
- package/esm2022/lib/modules/file-attachment/file-attachment-label.component.mjs +0 -28
- package/esm2022/lib/modules/file-attachment/file-attachment.component.mjs +0 -478
- package/esm2022/lib/modules/file-attachment/file-attachment.service.mjs +0 -93
- package/esm2022/lib/modules/file-attachment/file-drop.component.mjs +0 -325
- package/esm2022/lib/modules/file-attachment/file-item-error-type.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/file-item.component.mjs +0 -155
- package/esm2022/lib/modules/file-attachment/file-item.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/file-item.service.mjs +0 -70
- package/esm2022/lib/modules/file-attachment/file-link.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/file-size.pipe.mjs +0 -58
- package/esm2022/lib/modules/file-attachment/file-validate-function.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/types/file-attachment-change.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/types/file-attachment-click.mjs +0 -2
- package/esm2022/lib/modules/file-attachment/types/file-drop-change.mjs +0 -2
- /package/lib/modules/file-attachment/{file-link.d.ts → file-drop/file-link.d.ts} +0 -0
- /package/lib/modules/file-attachment/{file-item-error-type.d.ts → shared/file-item-error-type.d.ts} +0 -0
- /package/lib/modules/file-attachment/{file-item.d.ts → shared/file-item.d.ts} +0 -0
- /package/lib/modules/file-attachment/{file-item.service.d.ts → shared/file-item.service.d.ts} +0 -0
- /package/lib/modules/file-attachment/{file-validate-function.d.ts → shared/file-validate-function.d.ts} +0 -0
|
@@ -41,10 +41,10 @@ export class SkyRadioGroupIdService {
|
|
|
41
41
|
#emitRadioIds() {
|
|
42
42
|
this.#radioIds$.next(Array.from(this.#radioIds.values()));
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioGroupIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioGroupIdService }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioGroupIdService, decorators: [{
|
|
48
48
|
type: Injectable
|
|
49
49
|
}], ctorParameters: () => [] });
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBRW5EOzs7R0FHRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFzQjtJQUMvQixVQUFVLENBQTRCO0lBQ3RDLFlBQVksQ0FBdUI7SUFFbkM7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsRUFBVSxFQUFFLGNBQXNCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBeENVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUcmFja3MgdGhlIGVsZW1lbnQgSURzIGZvciBhbGwgcmFkaW9zIHdpdGhpbiBhIHJhZGlvIGdyb3VwLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIHtcbiAgcHVibGljIGdldCByYWRpb0lkcygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuI3JhZGlvSWRzT2JzO1xuICB9XG5cbiAgI3JhZGlvSWRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAjcmFkaW9JZHMkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+O1xuICAjcmFkaW9JZHNPYnM6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3JhZGlvSWRzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuI3JhZGlvSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcbiAgICB0aGlzLiNyYWRpb0lkc09icyA9IHRoaXMuI3JhZGlvSWRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVzIGEgcmFkaW8gaW5wdXQncyBJRCB3aXRoIGl0cyBwYXJlbnQgcmFkaW8gZ3JvdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBBIHVuaXF1ZSBJRCBmb3IgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0RWxlbWVudElkIFRoZSBJRCBhcHBsaWVkIHRvIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGlucHV0RWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3JhZGlvSWRzLmhhcyhpZCkgfHwgdGhpcy4jcmFkaW9JZHMuZ2V0KGlkKSAhPT0gaW5wdXRFbGVtZW50SWQpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLnNldChpZCwgaW5wdXRFbGVtZW50SWQpO1xuICAgICAgdGhpcy4jZW1pdFJhZGlvSWRzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc2Fzc29jaWF0ZXMgYSByYWRpbyBpbnB1dCdzIElEIHdpdGggaXRzIHBhcmVudCByYWRpbyBncm91cC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIFRoZSBJRCB1c2VkIHRvIHJlZ2lzdGVyIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3JhZGlvSWRzLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLmRlbGV0ZShpZCk7XG4gICAgICB0aGlzLiNlbWl0UmFkaW9JZHMoKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFJhZGlvSWRzKCk6IHZvaWQge1xuICAgIHRoaXMuI3JhZGlvSWRzJC5uZXh0KEFycmF5LmZyb20odGhpcy4jcmFkaW9JZHMudmFsdWVzKCkpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { Component, ContentChildren, HostBinding, Input, Optional, Self, booleanAttribute, inject, numberAttribute, } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { SkyIdService, SkyLogService } from '@skyux/core';
|
|
3
4
|
import { Subject } from 'rxjs';
|
|
4
5
|
import { takeUntil } from 'rxjs/operators';
|
|
5
6
|
import { SKY_FORM_ERRORS_ENABLED } from '../form-error/form-errors-enabled-token';
|
|
6
|
-
import {
|
|
7
|
+
import { SkyFormFieldLabelTextRequiredDirective } from '../shared/form-field-label-text-required.directive';
|
|
7
8
|
import { SkyRadioGroupIdService } from './radio-group-id.service';
|
|
8
9
|
import { SkyRadioComponent } from './radio.component';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "./radio-group-id.service";
|
|
11
12
|
import * as i2 from "@angular/forms";
|
|
12
|
-
import * as i3 from "
|
|
13
|
-
import * as i4 from "
|
|
14
|
-
import * as i5 from "
|
|
15
|
-
import * as i6 from "@skyux/
|
|
16
|
-
import * as i7 from "@skyux/
|
|
13
|
+
import * as i3 from "../shared/form-field-label-text-required.directive";
|
|
14
|
+
import * as i4 from "@angular/common";
|
|
15
|
+
import * as i5 from "../form-error/form-errors.component";
|
|
16
|
+
import * as i6 from "@skyux/help-inline";
|
|
17
|
+
import * as i7 from "@skyux/core";
|
|
17
18
|
let nextUniqueId = 0;
|
|
19
|
+
function numberAttribute4(value) {
|
|
20
|
+
return numberAttribute(value, 4);
|
|
21
|
+
}
|
|
18
22
|
/**
|
|
19
23
|
* Organizes radio buttons into a group. It is required for radio
|
|
20
24
|
* buttons on Angular reactive forms, and we recommend using it with all radio buttons.
|
|
@@ -66,9 +70,8 @@ export class SkyRadioGroupComponent {
|
|
|
66
70
|
* @default false
|
|
67
71
|
*/
|
|
68
72
|
set disabled(value) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.#_disabled = newDisabledState;
|
|
73
|
+
if (this.#_disabled !== value) {
|
|
74
|
+
this.#_disabled = value;
|
|
72
75
|
this.#updateRadioButtonDisabled();
|
|
73
76
|
}
|
|
74
77
|
}
|
|
@@ -85,6 +88,13 @@ export class SkyRadioGroupComponent {
|
|
|
85
88
|
get headingLevel() {
|
|
86
89
|
return this.#_headingLevel;
|
|
87
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).
|
|
93
|
+
* @default 4
|
|
94
|
+
*/
|
|
95
|
+
set headingStyle(value) {
|
|
96
|
+
this.headingClass = `sky-font-heading-${value}`;
|
|
97
|
+
}
|
|
88
98
|
/**
|
|
89
99
|
* The name for the collection of radio buttons that the component groups together.
|
|
90
100
|
* This property overwrites the deprecated `name` property on individual `sky-radio` elements,
|
|
@@ -145,8 +155,9 @@ export class SkyRadioGroupComponent {
|
|
|
145
155
|
get tabIndex() {
|
|
146
156
|
return this.#_tabIndex;
|
|
147
157
|
}
|
|
148
|
-
get
|
|
149
|
-
return
|
|
158
|
+
get isRequired() {
|
|
159
|
+
return (this.required ||
|
|
160
|
+
(this.ngControl?.control?.hasValidator(Validators.required) ?? false));
|
|
150
161
|
}
|
|
151
162
|
#controlValue;
|
|
152
163
|
#defaultName;
|
|
@@ -162,13 +173,7 @@ export class SkyRadioGroupComponent {
|
|
|
162
173
|
#radioGroupIdSvc;
|
|
163
174
|
#logger;
|
|
164
175
|
#idService;
|
|
165
|
-
#headingTextRequired;
|
|
166
176
|
constructor(changeDetector, radioGroupIdSvc, ngControl) {
|
|
167
|
-
/**
|
|
168
|
-
* The heading [font style](https://developer.blackbaud.com/skyux/design/styles/typography#headings).
|
|
169
|
-
* @default 4
|
|
170
|
-
*/
|
|
171
|
-
this.headingStyle = 4;
|
|
172
177
|
/**
|
|
173
178
|
* Whether the input is required for form validation.
|
|
174
179
|
* When you set this property to `true`, the component adds `aria-required` and `required`
|
|
@@ -184,6 +189,7 @@ export class SkyRadioGroupComponent {
|
|
|
184
189
|
this.headingHidden = false;
|
|
185
190
|
this.stackedLg = false;
|
|
186
191
|
this.stackedXL = false;
|
|
192
|
+
this.headingClass = 'sky-font-heading-4';
|
|
187
193
|
this.#defaultName = `sky-radio-group-${nextUniqueId++}`;
|
|
188
194
|
this.#ngUnsubscribe = new Subject();
|
|
189
195
|
this.#_disabled = false;
|
|
@@ -191,9 +197,6 @@ export class SkyRadioGroupComponent {
|
|
|
191
197
|
this.#_stacked = false;
|
|
192
198
|
this.#logger = inject(SkyLogService);
|
|
193
199
|
this.#idService = inject(SkyIdService);
|
|
194
|
-
this.#headingTextRequired = inject(SkyFormFieldLabelTextRequiredService, {
|
|
195
|
-
optional: true,
|
|
196
|
-
});
|
|
197
200
|
this.errorId = this.#idService.generateId();
|
|
198
201
|
/* istanbul ignore next */
|
|
199
202
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -234,14 +237,6 @@ export class SkyRadioGroupComponent {
|
|
|
234
237
|
});
|
|
235
238
|
}
|
|
236
239
|
}
|
|
237
|
-
ngAfterViewInit() {
|
|
238
|
-
if (this.ngControl) {
|
|
239
|
-
this.required =
|
|
240
|
-
this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);
|
|
241
|
-
// Avoid an ExpressionChangedAfterItHasBeenCheckedError.
|
|
242
|
-
this.#changeDetector.detectChanges();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
240
|
watchForSelections() {
|
|
246
241
|
/* istanbul ignore else */
|
|
247
242
|
if (this.radios) {
|
|
@@ -259,12 +254,6 @@ export class SkyRadioGroupComponent {
|
|
|
259
254
|
});
|
|
260
255
|
}
|
|
261
256
|
}
|
|
262
|
-
ngOnInit() {
|
|
263
|
-
if (this.#headingTextRequired && !this.headingText) {
|
|
264
|
-
this.display = 'none';
|
|
265
|
-
}
|
|
266
|
-
this.#headingTextRequired?.validateLabelText(this.headingText);
|
|
267
|
-
}
|
|
268
257
|
ngOnDestroy() {
|
|
269
258
|
this.#ngUnsubscribe.next();
|
|
270
259
|
this.#ngUnsubscribe.complete();
|
|
@@ -333,18 +322,23 @@ export class SkyRadioGroupComponent {
|
|
|
333
322
|
this.stackedLg = !this.headingLevel && this.stacked;
|
|
334
323
|
this.stackedXL = !!this.headingLevel && this.stacked;
|
|
335
324
|
}
|
|
336
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
337
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyRadioGroupIdService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.2", type: SkyRadioGroupComponent, selector: "sky-radio-group", inputs: { ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", disabled: ["disabled", "disabled", booleanAttribute], headingLevel: ["headingLevel", "headingLevel", numberAttribute], headingStyle: ["headingStyle", "headingStyle", numberAttribute4], name: "name", required: ["required", "required", booleanAttribute], stacked: ["stacked", "stacked", booleanAttribute], value: "value", tabIndex: "tabIndex", headingText: "headingText", headingHidden: ["headingHidden", "headingHidden", booleanAttribute], hintText: "hintText", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", helpKey: "helpKey" }, host: { properties: { "class.sky-margin-stacked-lg": "this.stackedLg", "class.sky-margin-stacked-xl": "this.stackedXL" } }, providers: [
|
|
338
327
|
SkyRadioGroupIdService,
|
|
339
328
|
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
|
340
|
-
], queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], ngImport: i0, template: "<fieldset\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"headingText ? undefined : ariaLabel\"\n [attr.aria-labelledby]=\"headingText ? undefined : ariaLabelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"
|
|
329
|
+
], queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], hostDirectives: [{ directive: i3.SkyFormFieldLabelTextRequiredDirective, inputs: ["labelText", "headingText"] }], ngImport: i0, template: "<fieldset\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"headingText ? undefined : ariaLabel\"\n [attr.aria-labelledby]=\"headingText ? undefined : ariaLabelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"isRequired ? true : null\"\n [attr.required]=\"isRequired ? '' : null\"\n [attr.aria-invalid]=\"!!ngControl?.errors\"\n [attr.aria-errormessage]=\"\n headingText && ngControl?.errors ? errorId : undefined\n \"\n>\n <span class=\"sky-radio-group-label-wrapper\">\n <legend\n *ngIf=\"headingText\"\n class=\"sky-control-label\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden,\n 'sky-margin-stacked-sm': !hintText,\n 'sky-control-label-required': isRequired,\n 'sky-margin-inline-xs': helpPopoverContent\n }\"\n >\n <span *ngIf=\"!headingLevel\" [class]=\"headingClass\">\n {{ headingText }}\n </span>\n <h3 *ngIf=\"headingLevel === 3\" [class]=\"headingClass\">\n {{ headingText }}\n </h3>\n <h4 *ngIf=\"headingLevel === 4\" [class]=\"headingClass\">\n {{ headingText }}\n </h4>\n <h5 *ngIf=\"headingLevel === 5\" [class]=\"headingClass\">\n {{ headingText }}\n </h5>\n </legend>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && headingText\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n\n <div skyId #hintTextEl=\"skyId\">\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-radio-group-hint-text\"\n >\n {{ hintText }}\n </div>\n </div>\n <ng-content />\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"headingText\"\n [showErrors]=\"ngControl?.touched || ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg,:host.sky-margin-stacked-xl{display:block}.sky-radio-group-hint-text{margin-bottom:var(--sky-margin-stacked-lg)}.sky-radio-group-label-wrapper{display:flex}h3,h4,h5{margin:0;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }, { kind: "component", type: i6.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "directive", type: i7.λ2, selector: "[skyId]", exportAs: ["skyId"] }] }); }
|
|
341
330
|
}
|
|
342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{
|
|
343
332
|
type: Component,
|
|
344
|
-
args: [{ selector: 'sky-radio-group',
|
|
333
|
+
args: [{ selector: 'sky-radio-group', hostDirectives: [
|
|
334
|
+
{
|
|
335
|
+
directive: SkyFormFieldLabelTextRequiredDirective,
|
|
336
|
+
inputs: ['labelText: headingText'],
|
|
337
|
+
},
|
|
338
|
+
], providers: [
|
|
345
339
|
SkyRadioGroupIdService,
|
|
346
340
|
{ provide: SKY_FORM_ERRORS_ENABLED, useValue: true },
|
|
347
|
-
], template: "<fieldset\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"headingText ? undefined : ariaLabel\"\n [attr.aria-labelledby]=\"headingText ? undefined : ariaLabelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"
|
|
341
|
+
], template: "<fieldset\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"headingText ? undefined : ariaLabel\"\n [attr.aria-labelledby]=\"headingText ? undefined : ariaLabelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"isRequired ? true : null\"\n [attr.required]=\"isRequired ? '' : null\"\n [attr.aria-invalid]=\"!!ngControl?.errors\"\n [attr.aria-errormessage]=\"\n headingText && ngControl?.errors ? errorId : undefined\n \"\n>\n <span class=\"sky-radio-group-label-wrapper\">\n <legend\n *ngIf=\"headingText\"\n class=\"sky-control-label\"\n [ngClass]=\"{\n 'sky-screen-reader-only': headingHidden,\n 'sky-margin-stacked-sm': !hintText,\n 'sky-control-label-required': isRequired,\n 'sky-margin-inline-xs': helpPopoverContent\n }\"\n >\n <span *ngIf=\"!headingLevel\" [class]=\"headingClass\">\n {{ headingText }}\n </span>\n <h3 *ngIf=\"headingLevel === 3\" [class]=\"headingClass\">\n {{ headingText }}\n </h3>\n <h4 *ngIf=\"headingLevel === 4\" [class]=\"headingClass\">\n {{ headingText }}\n </h4>\n <h5 *ngIf=\"headingLevel === 5\" [class]=\"headingClass\">\n {{ headingText }}\n </h5>\n </legend>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && headingText\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n </span>\n\n <div skyId #hintTextEl=\"skyId\">\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-radio-group-hint-text\"\n >\n {{ hintText }}\n </div>\n </div>\n <ng-content />\n</fieldset>\n<sky-form-errors\n [id]=\"errorId\"\n [errors]=\"ngControl?.errors\"\n [labelText]=\"headingText\"\n [showErrors]=\"ngControl?.touched || ngControl?.dirty\"\n>\n <ng-content select=\"sky-form-error\" />\n</sky-form-errors>\n", styles: [":host.sky-margin-stacked-lg,:host.sky-margin-stacked-xl{display:block}.sky-radio-group-hint-text{margin-bottom:var(--sky-margin-stacked-lg)}.sky-radio-group-label-wrapper{display:flex}h3,h4,h5{margin:0;display:inline-block}\n"] }]
|
|
348
342
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRadioGroupIdService }, { type: i2.NgControl, decorators: [{
|
|
349
343
|
type: Self
|
|
350
344
|
}, {
|
|
@@ -354,17 +348,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
|
|
|
354
348
|
}], ariaLabel: [{
|
|
355
349
|
type: Input
|
|
356
350
|
}], disabled: [{
|
|
357
|
-
type: Input
|
|
351
|
+
type: Input,
|
|
352
|
+
args: [{ transform: booleanAttribute }]
|
|
358
353
|
}], headingLevel: [{
|
|
359
354
|
type: Input,
|
|
360
355
|
args: [{ transform: numberAttribute }]
|
|
361
356
|
}], headingStyle: [{
|
|
362
357
|
type: Input,
|
|
363
|
-
args: [{ transform:
|
|
358
|
+
args: [{ transform: numberAttribute4 }]
|
|
364
359
|
}], name: [{
|
|
365
360
|
type: Input
|
|
366
361
|
}], required: [{
|
|
367
|
-
type: Input
|
|
362
|
+
type: Input,
|
|
363
|
+
args: [{ transform: booleanAttribute }]
|
|
368
364
|
}], stacked: [{
|
|
369
365
|
type: Input,
|
|
370
366
|
args: [{ transform: booleanAttribute }]
|
|
@@ -388,9 +384,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
|
|
|
388
384
|
}], radios: [{
|
|
389
385
|
type: ContentChildren,
|
|
390
386
|
args: [SkyRadioComponent, { descendants: true }]
|
|
391
|
-
}], display: [{
|
|
392
|
-
type: HostBinding,
|
|
393
|
-
args: ['style.display']
|
|
394
387
|
}], stackedLg: [{
|
|
395
388
|
type: HostBinding,
|
|
396
389
|
args: ['class.sky-margin-stacked-lg']
|
|
@@ -398,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
|
|
|
398
391
|
type: HostBinding,
|
|
399
392
|
args: ['class.sky-margin-stacked-xl']
|
|
400
393
|
}] } });
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBR0wsUUFBUSxFQUVSLElBQUksRUFFSixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7QUFLdEQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCOzs7OztHQUtHO0FBVUgsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQzs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxjQUFjLENBQUMsS0FBeUI7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5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O3NCQURkLEtBQUs7Z0JBc0JDLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWlCM0IsS0FBSztzQkFEZixLQUFLO2dCQW9CSyxRQUFRO3NCQURsQixLQUFLO2dCQWVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFRQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsT0FBTztzQkFEYixLQUFLO2dCQWlCQyxNQUFNO3NCQURaLGVBQWU7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUlsRCxPQUFPO3NCQURiLFdBQVc7dUJBQUMsZUFBZTtnQkFJckIsU0FBUztzQkFEZixXQUFXO3VCQUFDLDZCQUE2QjtnQkFJbkMsU0FBUztzQkFEZixXQUFXO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSwgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWZpZWxkLWxhYmVsLXRleHQtcmVxdWlyZWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UgfSBmcm9tICcuL3JhZGlvLWdyb3VwLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmFkaW9Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSYWRpb0NoYW5nZSB9IGZyb20gJy4vdHlwZXMvcmFkaW8tY2hhbmdlJztcbmltcG9ydCB7IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWdyb3VwLWhlYWRpbmctbGV2ZWwnO1xuaW1wb3J0IHsgU2t5UmFkaW9Hcm91cEhlYWRpbmdTdHlsZSB9IGZyb20gJy4vdHlwZXMvcmFkaW8tZ3JvdXAtaGVhZGluZy1zdHlsZSc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIE9yZ2FuaXplcyByYWRpbyBidXR0b25zIGludG8gYSBncm91cC4gSXQgaXMgcmVxdWlyZWQgZm9yIHJhZGlvXG4gKiBidXR0b25zIG9uIEFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMsIGFuZCB3ZSByZWNvbW1lbmQgdXNpbmcgaXQgd2l0aCBhbGwgcmFkaW8gYnV0dG9ucy5cbiAqIE9uIEFuZ3VsYXIgZm9ybXMsIHRoZSBjb21wb25lbnQgbWFuYWdlcyB0aGUgc2VsZWN0ZWQgdmFsdWVzIGFuZCBrZWVwcyB0aGUgZm9ybXMgdXAtdG8tZGF0ZS5cbiAqIFdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLCBpdHMgdmFsdWUgaXMgZHJpdmVuIHRocm91Z2ggYW4gYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlLFxuICAgIHsgcHJvdmlkZTogU0tZX0ZPUk1fRVJST1JTX0VOQUJMRUQsIHVzZVZhbHVlOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIEhUTUwgZWxlbWVudCBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVsc1xuICAgKiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBUaGlzIHNldHMgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCdzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGAgaW5zdGVhZC5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsbGVkYnkpLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGhlYWRpbmdUZXh0YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWxsZWRCeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFMYWJlbGxlZEJ5ID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0dyb3VwQ29tcG9uZW50LmFyaWFMYWJlbGxlZEJ5Jywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFMYWJlbGxlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBUaGlzIHNldHMgdGhlXG4gICAqIHJhZGlvIGJ1dHRvbiBncm91cCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGhlYWRpbmdUZXh0YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhTGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhTGFiZWwgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreVJhZGlvR3JvdXBDb21wb25lbnQuYXJpYUxhYmVsJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19hcmlhTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3RGlzYWJsZWRTdGF0ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNfZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIGluIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEJ5IGRlZmF1bHQsIHRoZSBoZWFkaW5nIHRleHQgaXMgbm90IHdyYXBwZWQgaW4gYSBoZWFkaW5nIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogU2t5UmFkaW9Hcm91cEhlYWRpbmdMZXZlbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oZWFkaW5nTGV2ZWwgPSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy4jdXBkYXRlU3RhY2tlZENsYXNzZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVhZGluZ0xldmVsKCk6IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfaGVhZGluZ0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkaW5nIFtmb250IHN0eWxlXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9zdHlsZXMvdHlwb2dyYXBoeSNoZWFkaW5ncykuXG4gICAqIEBkZWZhdWx0IDRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBoZWFkaW5nU3R5bGU6IFNreVJhZGlvR3JvdXBIZWFkaW5nU3R5bGUgPSA0O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBmb3IgdGhlIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucyB0aGF0IHRoZSBjb21wb25lbnQgZ3JvdXBzIHRvZ2V0aGVyLlxuICAgKiBUaGlzIHByb3BlcnR5IG92ZXJ3cml0ZXMgdGhlIGRlcHJlY2F0ZWQgYG5hbWVgIHByb3BlcnR5IG9uIGluZGl2aWR1YWwgYHNreS1yYWRpb2AgZWxlbWVudHMsXG4gICAqIGFuZCBpdCBpcyByZXF1aXJlZCB1bmxlc3MgdGhlIGBuYW1lYCBwcm9wZXJ0eSBpcyBzZXQgb24gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50cy5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX25hbWUgPSB0aGlzLiNkZWZhdWx0TmFtZTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLXJlcXVpcmVkYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1yZXF1aXJlZCkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGlzIHN0YWNrZWQgb24gYW5vdGhlciBmb3JtIGNvbXBvbmVudC4gV2hlbiBzcGVjaWZpZWQsXG4gICAqIHRoZSBhcHByb3ByaWF0ZSB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHN0YWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfc3RhY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19zdGFja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gYnV0dG9uIHRvIHNlbGVjdCBieSBkZWZhdWx0IHdoZW4gdGhlIGdyb3VwIGxvYWRzLlxuICAgKiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGB2YWx1ZWAgcHJvcGVydHkgb2YgYW4gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50IHdpdGhpbiB0aGVcbiAgICogZ3JvdXAuXG4gICAqL1xuICAvLyBUT0RPOiBMb29rIGludG8gbW9yZSBzdHJvbmdseSB0eXBpbmcgaW4gYSBicmVha2luZyBjaGFuZ2VcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9IHZhbHVlICE9PSB0aGlzLiNjb250cm9sVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggZm9yIGFsbCB0aGUgcmFkaW8gYnV0dG9ucyBpbiB0aGUgZ3JvdXAuIElmIHRoZSBpbmRleCBpcyBub3QgZGVmaW5lZCxcbiAgICogdGhlIGluZGljZXMgZm9yIGluZGl2aWR1YWwgcmFkaW8gYnV0dG9ucyBhcmUgc2V0IHRvIHRoZWlyIHBvc2l0aW9ucyBvbiBsb2FkLlxuICAgKiBUaGlzIHByb3BlcnR5IHN1cHBvcnRzIGFjY2Vzc2liaWxpdHkgYnkgcGxhY2luZyBmb2N1cyBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgbm8gcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLCBpdCBwbGFjZXMgZm9jdXMgb24gdGhlIGZpcnN0IG9yIGxhc3QgYnV0dG9uXG4gICAqIGRlcGVuZGluZyBvbiBob3cgdXNlcnMgbmF2aWdhdGUgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLiNfdGFiSW5kZXggIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSByYWRpbyBncm91cCdzIGhlYWRpbmcuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVhZGluZ1RleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlkZSB0aGUgYGhlYWRpbmdUZXh0YC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaGVhZGluZ0hpZGRlbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBbUGVyc2lzdGVudCBpbmxpbmUgaGVscCB0ZXh0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2Rlc2lnbi9ndWlkZWxpbmVzL3VzZXItYXNzaXN0YW5jZSNpbmxpbmUtaGVscCkgdGhhdCBwcm92aWRlc1xuICAgKiBhZGRpdGlvbmFsIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGludFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQgYWxvbmcgd2l0aCBgaGVhZGluZ1RleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gcmFkaW8gZ3JvdXAuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSByYWRpbyBncm91cCBoZWFkaW5nLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZ2V0IGhlYWRpbmdDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2t5LWZvbnQtaGVhZGluZy0ke3RoaXMuaGVhZGluZ1N0eWxlfWA7XG4gIH1cblxuICAvKipcbiAgICogT3VyIHJhZGlvIGNvbXBvbmVudHMgYXJlIHVzdWFsbHkgaW1wbGVtZW50ZWQgdXNpbmcgYW4gdW5vcmRlcmVkIGxpc3QuIFRoaXMgaXMgYW5cbiAgICogYWNjZXNzaWJpbGl0eSB2aW9sYXRpb24gYmVjYXVzZSB0aGUgdW5vcmRlcmVkIGxpc3QgaGFzIGFuIGltcGxpY2l0IHJvbGUgd2hpY2hcbiAgICogaW50ZXJydXB0cyB0aGUgJ3JhZGlvZ3JvdXAnIGFuZCAncmFkaW8nIHJlbGF0aW9uc2hpcC4gVG8gY29ycmVjdCB0aGlzLCB3ZSBjYW4gc2V0IHRoZVxuICAgKiByYWRpbyBncm91cCdzICdhcmlhLW93bnMnIGF0dHJpYnV0ZSB0byBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHJhZGlvIElEcy5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLW93bnNgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLW93bnMpLCBhbmQgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGByYWRpb2Agcm9sZSwgc2VlIFtpdHMgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNyYWRpbykuXG4gICAqL1xuICBwdWJsaWMgYXJpYU93bnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVJhZGlvQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHB1YmxpYyByYWRpb3M6IFF1ZXJ5TGlzdDxTa3lSYWRpb0NvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgcHVibGljIGRpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC1sZycpXG4gIHB1YmxpYyBzdGFja2VkTGcgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1tYXJnaW4tc3RhY2tlZC14bCcpXG4gIHB1YmxpYyBzdGFja2VkWEwgPSBmYWxzZTtcblxuICAjY29udHJvbFZhbHVlOiBhbnk7XG5cbiAgI2RlZmF1bHROYW1lID0gYHNreS1yYWRpby1ncm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAjX25hbWUgPSAnJztcblxuICAjX3RhYkluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI19hcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2FyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19oZWFkaW5nTGV2ZWw6IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQ7XG5cbiAgI19zdGFja2VkID0gZmFsc2U7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI3JhZGlvR3JvdXBJZFN2YzogU2t5UmFkaW9Hcm91cElkU2VydmljZTtcblxuICByZWFkb25seSAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjaWRTZXJ2aWNlID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgI2hlYWRpbmdUZXh0UmVxdWlyZWQgPSBpbmplY3QoU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWRTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBlcnJvcklkID0gdGhpcy4jaWRTZXJ2aWNlLmdlbmVyYXRlSWQoKTtcbiAgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICByYWRpb0dyb3VwSWRTdmM6IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2YyA9IHJhZGlvR3JvdXBJZFN2YztcbiAgICB0aGlzLm5nQ29udHJvbCA9IG5nQ29udHJvbDtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLiNkZWZhdWx0TmFtZTtcblxuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2Yy5yYWRpb0lkc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaWRzKSA9PiB7XG4gICAgICAgIHRoaXMuYXJpYU93bnMgPSBpZHMuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gTGV0IGNoaWxkIHJhZGlvIGNvbXBvbmVudHMgcmVuZGVyIGJlZm9yZSB1cGRhdGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuI3Jlc2V0UmFkaW9CdXR0b25zKCk7XG4gICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3IgcmFkaW8gc2VsZWN0aW9ucy5cbiAgICB0aGlzLndhdGNoRm9yU2VsZWN0aW9ucygpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIFdhaXQgZm9yIGNoaWxkIHJhZGlvIGNvbXBvbmVudHMgdG8gZmluaXNoIGFueSByZW5kZXJpbmcgdXBkYXRlcy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcmVzZXRSYWRpb0J1dHRvbnMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBuZXcgcmFkaW8gYnV0dG9uc1xuICAgICAgICB0aGlzLndhdGNoRm9yU2VsZWN0aW9ucygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMucmVxdWlyZWQgPVxuICAgICAgICB0aGlzLnJlcXVpcmVkIHx8IFNreUZvcm1zVXRpbGl0eS5oYXNSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5uZ0NvbnRyb2wpO1xuXG4gICAgICAvLyBBdm9pZCBhbiBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yLlxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3YXRjaEZvclNlbGVjdGlvbnMoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLmNoYW5nZVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChjaGFuZ2U6IFNreVJhZGlvQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2UudmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHJhZGlvLmJsdXIucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNoZWFkaW5nVGV4dFJlcXVpcmVkICYmICF0aGlzLmhlYWRpbmdUZXh0KSB7XG4gICAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICAgIHRoaXMuI2hlYWRpbmdUZXh0UmVxdWlyZWQ/LnZhbGlkYXRlTGFiZWxUZXh0KHRoaXMuaGVhZGluZ1RleHQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9IHZhbHVlICE9PSB0aGlzLiNjb250cm9sVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjb250cm9sLiBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge307XG5cbiAgI3VwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT5cbiAgICAgICAgcmFkaW8uc2V0R3JvdXBEaXNhYmxlZFN0YXRlKHRoaXMuZGlzYWJsZWQpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uZ3JvdXBUYWJJbmRleCA9IHRoaXMudGFiSW5kZXg7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yYWRpb3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgcmFkaW8uY2hlY2tlZCA9IHRoaXMuI2NvbnRyb2xWYWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICAjcmVzZXRSYWRpb0J1dHRvbnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpO1xuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTtcbiAgfVxuXG4gICN1cGRhdGVTdGFja2VkQ2xhc3NlcygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YWNrZWRMZyA9ICF0aGlzLmhlYWRpbmdMZXZlbCAmJiB0aGlzLnN0YWNrZWQ7XG4gICAgdGhpcy5zdGFja2VkWEwgPSAhIXRoaXMuaGVhZGluZ0xldmVsICYmIHRoaXMuc3RhY2tlZDtcbiAgfVxufVxuIiwiPGZpZWxkc2V0XG4gIGNsYXNzPVwic2t5LXJhZGlvLWdyb3VwXCJcbiAgcm9sZT1cInJhZGlvZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImhlYWRpbmdUZXh0ID8gdW5kZWZpbmVkIDogYXJpYUxhYmVsXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImhlYWRpbmdUZXh0ID8gdW5kZWZpbmVkIDogYXJpYUxhYmVsbGVkQnlcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnRUZXh0ID8gaGludFRleHRFbC5pZCA6IHVuZGVmaW5lZFwiXG4gIFthdHRyLmFyaWEtb3duc109XCJhcmlhT3duc1wiXG4gIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkID8gJycgOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhbmdDb250cm9sPy5lcnJvcnNcIlxuICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJcbiAgICBoZWFkaW5nVGV4dCAmJiBuZ0NvbnRyb2w/LmVycm9ycyA/IGVycm9ySWQgOiB1bmRlZmluZWRcbiAgXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJza3ktcmFkaW8tZ3JvdXAtbGFiZWwtd3JhcHBlclwiPlxuICAgIDxsZWdlbmRcbiAgICAgICpuZ0lmPVwiaGVhZGluZ1RleHRcIlxuICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktc2NyZWVuLXJlYWRlci1vbmx5JzogaGVhZGluZ0hpZGRlbixcbiAgICAgICAgJ3NreS1tYXJnaW4tc3RhY2tlZC1zbSc6ICFoaW50VGV4dCxcbiAgICAgICAgJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJzogcmVxdWlyZWQsXG4gICAgICAgICdza3ktbWFyZ2luLWlubGluZS14cyc6IGhlbHBQb3BvdmVyQ29udGVudFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGluZ0xldmVsXCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGgzICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSAzXCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oMz5cbiAgICAgIDxoNCAqbmdJZj1cImhlYWRpbmdMZXZlbCA9PT0gNFwiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvaDQ+XG4gICAgICA8aDUgKm5nSWY9XCJoZWFkaW5nTGV2ZWwgPT09IDVcIiBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+XG4gICAgICAgIHt7IGhlYWRpbmdUZXh0IH19XG4gICAgICA8L2g1PlxuICAgIDwvbGVnZW5kPlxuICAgIDxza3ktaGVscC1pbmxpbmVcbiAgICAgICpuZ0lmPVwiKGhlbHBQb3BvdmVyQ29udGVudCB8fCBoZWxwS2V5KSAmJiBoZWFkaW5nVGV4dFwiXG4gICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIC8+XG4gIDwvc3Bhbj5cblxuICA8ZGl2IHNreUlkICNoaW50VGV4dEVsPVwic2t5SWRcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImhpbnRUZXh0XCJcbiAgICAgIGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1yYWRpby1ncm91cC1oaW50LXRleHRcIlxuICAgID5cbiAgICAgIHt7IGhpbnRUZXh0IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGVudCAvPlxuPC9maWVsZHNldD5cbjxza3ktZm9ybS1lcnJvcnNcbiAgKm5nSWY9XCJoZWFkaW5nVGV4dCAmJiBuZ0NvbnRyb2w/LmVycm9yc1wiXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2Vycm9yc109XCJuZ0NvbnRyb2w/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwiJ3NreXV4X3JhZGlvX2dyb3VwX3JlcXVpcmVkX2xhYmVsX3RleHQnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgW3Nob3dFcnJvcnNdPVwibmdDb250cm9sPy50b3VjaGVkIHx8IG5nQ29udHJvbD8uZGlydHlcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZm9ybS1lcnJvclwiIC8+XG48L3NreS1mb3JtLWVycm9ycz5cbiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUVSLElBQUksRUFFSixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7QUFLdEQsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCLFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUN0QyxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVE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SztzQkFEZixLQUFLO2dCQW9CSyxRQUFRO3NCQURsQixLQUFLO2dCQWVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFRQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsT0FBTztzQkFEYixLQUFLO2dCQWFDLE1BQU07c0JBRFosZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSWxELFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSW5DLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNLWV9GT1JNX0VSUk9SU19FTkFCTEVEIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1lbmFibGVkLXRva2VuJztcbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm0tZmllbGQtbGFiZWwtdGV4dC1yZXF1aXJlZC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIH0gZnJvbSAnLi9yYWRpby1ncm91cC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSGVhZGluZ0xldmVsIH0gZnJvbSAnLi90eXBlcy9yYWRpby1ncm91cC1oZWFkaW5nLWxldmVsJztcbmltcG9ydCB7IFNreVJhZGlvR3JvdXBIZWFkaW5nU3R5bGUgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWdyb3VwLWhlYWRpbmctc3R5bGUnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuZnVuY3Rpb24gbnVtYmVyQXR0cmlidXRlNCh2YWx1ZTogdW5rbm93bik6IG51bWJlciB7XG4gIHJldHVybiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIDQpO1xufVxuXG4vKipcbiAqIE9yZ2FuaXplcyByYWRpbyBidXR0b25zIGludG8gYSBncm91cC4gSXQgaXMgcmVxdWlyZWQgZm9yIHJhZGlvXG4gKiBidXR0b25zIG9uIEFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMsIGFuZCB3ZSByZWNvbW1lbmQgdXNpbmcgaXQgd2l0aCBhbGwgcmFkaW8gYnV0dG9ucy5cbiAqIE9uIEFuZ3VsYXIgZm9ybXMsIHRoZSBjb21wb25lbnQgbWFuYWdlcyB0aGUgc2VsZWN0ZWQgdmFsdWVzIGFuZCBrZWVwcyB0aGUgZm9ybXMgdXAtdG8tZGF0ZS5cbiAqIFdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLCBpdHMgdmFsdWUgaXMgZHJpdmVuIHRocm91Z2ggYW4gYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWREaXJlY3RpdmUsXG4gICAgICBpbnB1dHM6IFsnbGFiZWxUZXh0OiBoZWFkaW5nVGV4dCddLFxuICAgIH0sXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVJhZGlvR3JvdXBJZFNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBTS1lfRk9STV9FUlJPUlNfRU5BQkxFRCwgdXNlVmFsdWU6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgSFRNTCBlbGVtZW50IElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzXG4gICAqIHRoZSByYWRpbyBidXR0b24gZ3JvdXAuIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwJ3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgYXJpYUxhYmVsYCBpbnN0ZWFkLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWxsZWRieSkuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgaGVhZGluZ1RleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFMYWJlbGxlZEJ5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXJpYUxhYmVsbGVkQnkgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NreVJhZGlvR3JvdXBDb21wb25lbnQuYXJpYUxhYmVsbGVkQnknLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhcmlhTGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYUxhYmVsbGVkQnk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByYWRpbyBidXR0b24gZ3JvdXAuIFRoaXMgc2V0cyB0aGVcbiAgICogcmFkaW8gYnV0dG9uIGdyb3VwJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluY2x1ZGVzIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgaGVhZGluZ1RleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFMYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFMYWJlbCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5UmFkaW9Hcm91cENvbXBvbmVudC5hcmlhTGFiZWwnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhcmlhTGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGlucHV0IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuI19kaXNhYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25EaXNhYmxlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgaGVhZGluZyBsZXZlbCBpbiB0aGUgZG9jdW1lbnQgc3RydWN0dXJlLiBCeSBkZWZhdWx0LCB0aGUgaGVhZGluZyB0ZXh0IGlzIG5vdCB3cmFwcGVkIGluIGEgaGVhZGluZyBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBoZWFkaW5nTGV2ZWwodmFsdWU6IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaGVhZGluZ0xldmVsID0gdmFsdWUgJiYgIWlzTmFOKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuI3VwZGF0ZVN0YWNrZWRDbGFzc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhlYWRpbmdMZXZlbCgpOiBTa3lSYWRpb0dyb3VwSGVhZGluZ0xldmVsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2hlYWRpbmdMZXZlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBbZm9udCBzdHlsZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vc3R5bGVzL3R5cG9ncmFwaHkjaGVhZGluZ3MpLlxuICAgKiBAZGVmYXVsdCA0XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZTQgfSlcbiAgcHVibGljIHNldCBoZWFkaW5nU3R5bGUodmFsdWU6IFNreVJhZGlvR3JvdXBIZWFkaW5nU3R5bGUpIHtcbiAgICB0aGlzLmhlYWRpbmdDbGFzcyA9IGBza3ktZm9udC1oZWFkaW5nLSR7dmFsdWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBmb3IgdGhlIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucyB0aGF0IHRoZSBjb21wb25lbnQgZ3JvdXBzIHRvZ2V0aGVyLlxuICAgKiBUaGlzIHByb3BlcnR5IG92ZXJ3cml0ZXMgdGhlIGRlcHJlY2F0ZWQgYG5hbWVgIHByb3BlcnR5IG9uIGluZGl2aWR1YWwgYHNreS1yYWRpb2AgZWxlbWVudHMsXG4gICAqIGFuZCBpdCBpcyByZXF1aXJlZCB1bmxlc3MgdGhlIGBuYW1lYCBwcm9wZXJ0eSBpcyBzZXQgb24gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50cy5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX25hbWUgPSB0aGlzLiNkZWZhdWx0TmFtZTtcbiAgICB9XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLXJlcXVpcmVkYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1yZXF1aXJlZCkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpcyBzdGFja2VkIG9uIGFub3RoZXIgZm9ybSBjb21wb25lbnQuIFdoZW4gc3BlY2lmaWVkLFxuICAgKiB0aGUgYXBwcm9wcmlhdGUgdmVydGljYWwgc3BhY2luZyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBzdGFja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX3N0YWNrZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVTdGFja2VkQ2xhc3NlcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfc3RhY2tlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGJ1dHRvbiB0byBzZWxlY3QgYnkgZGVmYXVsdCB3aGVuIHRoZSBncm91cCBsb2Fkcy5cbiAgICogVGhlIHZhbHVlIGNvcnJlc3BvbmRzIHRvIHRoZSBgdmFsdWVgIHByb3BlcnR5IG9mIGFuIGluZGl2aWR1YWwgYHNreS1yYWRpb2AgZWxlbWVudCB3aXRoaW4gdGhlXG4gICAqIGdyb3VwLlxuICAgKi9cbiAgLy8gVE9ETzogTG9vayBpbnRvIG1vcmUgc3Ryb25nbHkgdHlwaW5nIGluIGEgYnJlYWtpbmcgY2hhbmdlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy4jY29udHJvbFZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLiN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluZGV4IGZvciBhbGwgdGhlIHJhZGlvIGJ1dHRvbnMgaW4gdGhlIGdyb3VwLiBJZiB0aGUgaW5kZXggaXMgbm90IGRlZmluZWQsXG4gICAqIHRoZSBpbmRpY2VzIGZvciBpbmRpdmlkdWFsIHJhZGlvIGJ1dHRvbnMgYXJlIHNldCB0byB0aGVpciBwb3NpdGlvbnMgb24gbG9hZC5cbiAgICogVGhpcyBwcm9wZXJ0eSBzdXBwb3J0cyBhY2Nlc3NpYmlsaXR5IGJ5IHBsYWNpbmcgZm9jdXMgb24gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCByYWRpb1xuICAgKiBidXR0b24uIElmIG5vIHJhZGlvIGJ1dHRvbiBpcyBzZWxlY3RlZCwgaXQgcGxhY2VzIGZvY3VzIG9uIHRoZSBmaXJzdCBvciBsYXN0IGJ1dHRvblxuICAgKiBkZXBlbmRpbmcgb24gaG93IHVzZXJzIG5hdmlnYXRlIHRvIHRoZSByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRhYkluZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy4jX3RhYkluZGV4ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4jX3RhYkluZGV4ID0gdmFsdWU7XG4gICAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfdGFiSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgcmFkaW8gZ3JvdXAncyBoZWFkaW5nLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRpbmdUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGhpZGUgdGhlIGBoZWFkaW5nVGV4dGAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGhlYWRpbmdIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGhlYWRpbmdUZXh0YCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHJhZGlvIGdyb3VwLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgcmFkaW8gZ3JvdXAgaGVhZGluZy4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE91ciByYWRpbyBjb21wb25lbnRzIGFyZSB1c3VhbGx5IGltcGxlbWVudGVkIHVzaW5nIGFuIHVub3JkZXJlZCBsaXN0LiBUaGlzIGlzIGFuXG4gICAqIGFjY2Vzc2liaWxpdHkgdmlvbGF0aW9uIGJlY2F1c2UgdGhlIHVub3JkZXJlZCBsaXN0IGhhcyBhbiBpbXBsaWNpdCByb2xlIHdoaWNoXG4gICAqIGludGVycnVwdHMgdGhlICdyYWRpb2dyb3VwJyBhbmQgJ3JhZGlvJyByZWxhdGlvbnNoaXAuIFRvIGNvcnJlY3QgdGhpcywgd2UgY2FuIHNldCB0aGVcbiAgICogcmFkaW8gZ3JvdXAncyAnYXJpYS1vd25zJyBhdHRyaWJ1dGUgdG8gYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiByYWRpbyBJRHMuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1vd25zYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1vd25zKSwgYW5kIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgcmFkaW9gIHJvbGUsIHNlZSBbaXRzIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jcmFkaW8pLlxuICAgKi9cbiAgcHVibGljIGFyaWFPd25zOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lSYWRpb0NvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwdWJsaWMgcmFkaW9zOiBRdWVyeUxpc3Q8U2t5UmFkaW9Db21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LW1hcmdpbi1zdGFja2VkLWxnJylcbiAgcHVibGljIHN0YWNrZWRMZyA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2t5LW1hcmdpbi1zdGFja2VkLXhsJylcbiAgcHVibGljIHN0YWNrZWRYTCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5yZXF1aXJlZCB8fFxuICAgICAgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz8gZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoZWFkaW5nQ2xhc3MgPSAnc2t5LWZvbnQtaGVhZGluZy00JztcblxuICAjY29udHJvbFZhbHVlOiBhbnk7XG5cbiAgI2RlZmF1bHROYW1lID0gYHNreS1yYWRpby1ncm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAjX25hbWUgPSAnJztcblxuICAjX3RhYkluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI19hcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2FyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19oZWFkaW5nTGV2ZWw6IFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWQ7XG5cbiAgI19zdGFja2VkID0gZmFsc2U7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI3JhZGlvR3JvdXBJZFN2YzogU2t5UmFkaW9Hcm91cElkU2VydmljZTtcblxuICByZWFkb25seSAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuICByZWFkb25seSAjaWRTZXJ2aWNlID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGVycm9ySWQgPSB0aGlzLiNpZFNlcnZpY2UuZ2VuZXJhdGVJZCgpO1xuICBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHJhZGlvR3JvdXBJZFN2YzogU2t5UmFkaW9Hcm91cElkU2VydmljZSxcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICApIHtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICBuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjID0gcmFkaW9Hcm91cElkU3ZjO1xuICAgIHRoaXMubmdDb250cm9sID0gbmdDb250cm9sO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuI2RlZmF1bHROYW1lO1xuXG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjLnJhZGlvSWRzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpZHMpID0+IHtcbiAgICAgICAgdGhpcy5hcmlhT3ducyA9IGlkcy5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBMZXQgY2hpbGQgcmFkaW8gY29tcG9uZW50cyByZW5kZXIgYmVmb3JlIHVwZGF0aW5nLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jcmVzZXRSYWRpb0J1dHRvbnMoKTtcbiAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciByYWRpbyBzZWxlY3Rpb25zLlxuICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gV2FpdCBmb3IgY2hpbGQgcmFkaW8gY29tcG9uZW50cyB0byBmaW5pc2ggYW55IHJlbmRlcmluZyB1cGRhdGVzLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNyZXNldFJhZGlvQnV0dG9ucygpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG5ldyByYWRpbyBidXR0b25zXG4gICAgICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hGb3JTZWxlY3Rpb25zKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICByYWRpby5jaGFuZ2VcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlOiBTa3lSYWRpb0NoYW5nZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gY2hhbmdlLnZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICByYWRpby5ibHVyLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy4jY29udHJvbFZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLiN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgY29udHJvbC4gSW1wbGVtZW50ZWQgYXMgYSBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHt9O1xuXG4gICN1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+XG4gICAgICAgIHJhZGlvLnNldEdyb3VwRGlzYWJsZWRTdGF0ZSh0aGlzLmRpc2FibGVkKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICByYWRpby5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLmdyb3VwVGFiSW5kZXggPSB0aGlzLnRhYkluZGV4O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmFkaW9zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgIHJhZGlvLmNoZWNrZWQgPSB0aGlzLiNjb250cm9sVmFsdWUgPT09IHJhZGlvLnZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgI3Jlc2V0UmFkaW9CdXR0b25zKCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTtcbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTtcbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk7XG4gIH1cblxuICAjdXBkYXRlU3RhY2tlZENsYXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFja2VkTGcgPSAhdGhpcy5oZWFkaW5nTGV2ZWwgJiYgdGhpcy5zdGFja2VkO1xuICAgIHRoaXMuc3RhY2tlZFhMID0gISF0aGlzLmhlYWRpbmdMZXZlbCAmJiB0aGlzLnN0YWNrZWQ7XG4gIH1cbn1cbiIsIjxmaWVsZHNldFxuICBjbGFzcz1cInNreS1yYWRpby1ncm91cFwiXG4gIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJoZWFkaW5nVGV4dCA/IHVuZGVmaW5lZCA6IGFyaWFMYWJlbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkaW5nVGV4dCA/IHVuZGVmaW5lZCA6IGFyaWFMYWJlbGxlZEJ5XCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJoaW50VGV4dCA/IGhpbnRUZXh0RWwuaWQgOiB1bmRlZmluZWRcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cImlzUmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gIFthdHRyLnJlcXVpcmVkXT1cImlzUmVxdWlyZWQgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiISFuZ0NvbnRyb2w/LmVycm9yc1wiXG4gIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIlxuICAgIGhlYWRpbmdUZXh0ICYmIG5nQ29udHJvbD8uZXJyb3JzID8gZXJyb3JJZCA6IHVuZGVmaW5lZFxuICBcIlxuPlxuICA8c3BhbiBjbGFzcz1cInNreS1yYWRpby1ncm91cC1sYWJlbC13cmFwcGVyXCI+XG4gICAgPGxlZ2VuZFxuICAgICAgKm5nSWY9XCJoZWFkaW5nVGV4dFwiXG4gICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknOiBoZWFkaW5nSGlkZGVuLFxuICAgICAgICAnc2t5LW1hcmdpbi1zdGFja2VkLXNtJzogIWhpbnRUZXh0LFxuICAgICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiBpc1JlcXVpcmVkLFxuICAgICAgICAnc2t5LW1hcmdpbi1pbmxpbmUteHMnOiBoZWxwUG9wb3ZlckNvbnRlbnRcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRpbmdMZXZlbFwiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxoMyAqbmdJZj1cImhlYWRpbmdMZXZlbCA9PT0gM1wiIFtjbGFzc109XCJoZWFkaW5nQ2xhc3NcIj5cbiAgICAgICAge3sgaGVhZGluZ1RleHQgfX1cbiAgICAgIDwvaDM+XG4gICAgICA8aDQgKm5nSWY9XCJoZWFkaW5nTGV2ZWwgPT09IDRcIiBbY2xhc3NdPVwiaGVhZGluZ0NsYXNzXCI+XG4gICAgICAgIHt7IGhlYWRpbmdUZXh0IH19XG4gICAgICA8L2g0PlxuICAgICAgPGg1ICpuZ0lmPVwiaGVhZGluZ0xldmVsID09PSA1XCIgW2NsYXNzXT1cImhlYWRpbmdDbGFzc1wiPlxuICAgICAgICB7eyBoZWFkaW5nVGV4dCB9fVxuICAgICAgPC9oNT5cbiAgICA8L2xlZ2VuZD5cbiAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAqbmdJZj1cIihoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkgJiYgaGVhZGluZ1RleHRcIlxuICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICBbbGFiZWxUZXh0XT1cImhlYWRpbmdUZXh0XCJcbiAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAvPlxuICA8L3NwYW4+XG5cbiAgPGRpdiBza3lJZCAjaGludFRleHRFbD1cInNreUlkXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJoaW50VGV4dFwiXG4gICAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktcmFkaW8tZ3JvdXAtaGludC10ZXh0XCJcbiAgICA+XG4gICAgICB7eyBoaW50VGV4dCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZmllbGRzZXQ+XG48c2t5LWZvcm0tZXJyb3JzXG4gIFtpZF09XCJlcnJvcklkXCJcbiAgW2Vycm9yc109XCJuZ0NvbnRyb2w/LmVycm9yc1wiXG4gIFtsYWJlbFRleHRdPVwiaGVhZGluZ1RleHRcIlxuICBbc2hvd0Vycm9yc109XCJuZ0NvbnRyb2w/LnRvdWNoZWQgfHwgbmdDb250cm9sPy5kaXJ0eVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1mb3JtLWVycm9yXCIgLz5cbjwvc2t5LWZvcm0tZXJyb3JzPlxuIl19
|
|
@@ -21,10 +21,10 @@ export class SkyRadioLabelComponent {
|
|
|
21
21
|
replacementRecommendation: 'To add a label to radio button, use the `labelText` input on the radio button component instead.',
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkyRadioLabelComponent, selector: "sky-radio-label", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<span class=\"sky-switch-label\"\n ><span skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n", dependencies: [{ kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioLabelComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{ selector: 'sky-radio-label', template: "<span class=\"sky-switch-label\"\n ><span skyTrim><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\" /></span\n></span>\n" }]
|
|
30
30
|
}], ctorParameters: () => [], propDecorators: { onClick: [{
|