@danske/sapphire-angular 1.16.1 → 1.17.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/esm2020/lib/field/src/field.component.mjs +16 -5
- package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +21 -21
- package/esm2020/lib/theme/src/themes.mjs +4 -4
- package/fesm2015/danske-sapphire-angular.mjs +3810 -3800
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +3682 -3672
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/field/src/field.component.d.ts +8 -2
- package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +4 -5
- package/package.json +3 -3
|
@@ -10,6 +10,7 @@ import { FieldControl } from './field-control';
|
|
|
10
10
|
import { FieldLabelDirective } from './field-label.directive';
|
|
11
11
|
import { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';
|
|
12
12
|
import { ICON_SIZE_PROVIDER, } from '../../icon/src/icon-size-provider';
|
|
13
|
+
import { RadioGroupComponent } from '../../radio/src/radio-group.component';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "../../common/sapphire-view-encapsulation";
|
|
15
16
|
import * as i2 from "@angular/common";
|
|
@@ -21,7 +22,7 @@ import * as i4 from "../../label/src/label.component";
|
|
|
21
22
|
* In addition to the field control (sp-select, sp-radio-group, sp-text-field), the following
|
|
22
23
|
* components can be used inside a field:
|
|
23
24
|
* - sp-field-label: is used to provide the label text for the field.
|
|
24
|
-
* - sp-contextual-
|
|
25
|
+
* - sp-contextual-help: is placed in the label area, next to the label text
|
|
25
26
|
* - sp-field-error: is used to provide an error message, which is placed below the field's
|
|
26
27
|
* control.
|
|
27
28
|
* - sp-field-note: is used to provide a note, which is placed below the field's control. Only
|
|
@@ -82,6 +83,12 @@ export class FieldComponent {
|
|
|
82
83
|
hasError() {
|
|
83
84
|
return this.error != undefined;
|
|
84
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether the field control is radio group (sp-radio-group).
|
|
88
|
+
*/
|
|
89
|
+
hasFieldGroupChild() {
|
|
90
|
+
return this.radioGroup != undefined;
|
|
91
|
+
}
|
|
85
92
|
get labelNecessityIndicator() {
|
|
86
93
|
if (this.necessityIndicator) {
|
|
87
94
|
return coerceBooleanProperty(this.requiredValidator?.required)
|
|
@@ -102,12 +109,12 @@ export class FieldComponent {
|
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
FieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: FieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
-
FieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: FieldComponent, selector: "sp-field", inputs: { necessityIndicator: "necessityIndicator", labelPlacement: "labelPlacement", size: "size" }, host: { properties: { "class.sapphire-field--label-placement-side": "labelPlacement === \"side\"", "class.sapphire-field--medium": "size === \"medium\"", "class.sapphire-field--error": "hasError()", "class.is-disabled": "control?.isDisabled()" }, classAttribute: "sapphire-field" }, providers: [
|
|
112
|
+
FieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: FieldComponent, selector: "sp-field", inputs: { necessityIndicator: "necessityIndicator", labelPlacement: "labelPlacement", size: "size" }, host: { properties: { "class.sapphire-field--label-placement-side": "labelPlacement === \"side\"", "class.sapphire-field--label-alignment-top": "labelPlacement === \"side\" && hasFieldGroupChild()", "class.sapphire-field--medium": "size === \"medium\"", "class.sapphire-field--error": "hasError()", "class.is-disabled": "control?.isDisabled()" }, classAttribute: "sapphire-field" }, providers: [
|
|
106
113
|
{
|
|
107
114
|
provide: ICON_SIZE_PROVIDER,
|
|
108
115
|
useExisting: forwardRef(() => FieldComponent),
|
|
109
116
|
},
|
|
110
|
-
], queries: [{ propertyName: "note", first: true, predicate: FieldNoteDirective, descendants: true }, { propertyName: "error", first: true, predicate: FieldErrorDirective, descendants: true }, { propertyName: "_fieldLabel", first: true, predicate: FieldLabelDirective, descendants: true }, { propertyName: "control", first: true, predicate: FieldControl, descendants: true }, { propertyName: "requiredValidator", first: true, predicate: RequiredValidator, descendants: true }], viewQueries: [{ propertyName: "label", first: true, predicate: LabelComponent, descendants: true }], hostDirectives: [{ directive: i1.UseComponentStylesOnHost }], ngImport: i0, template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label)}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.LabelComponent, selector: "sp-label", inputs: ["id", "for", "disabled", "necessityIndicator", "size"], outputs: ["labelClick"] }] });
|
|
117
|
+
], queries: [{ propertyName: "note", first: true, predicate: FieldNoteDirective, descendants: true }, { propertyName: "error", first: true, predicate: FieldErrorDirective, descendants: true }, { propertyName: "radioGroup", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: "_fieldLabel", first: true, predicate: FieldLabelDirective, descendants: true }, { propertyName: "control", first: true, predicate: FieldControl, descendants: true }, { propertyName: "requiredValidator", first: true, predicate: RequiredValidator, descendants: true }], viewQueries: [{ propertyName: "label", first: true, predicate: LabelComponent, descendants: true }], hostDirectives: [{ directive: i1.UseComponentStylesOnHost }], ngImport: i0, template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label-l)}.sapphire-field--label-placement-side.sapphire-field--medium .sapphire-field__label{max-height:var(--sapphire-field-size-max-height-label-m)}.sapphire-field--label-placement-side.sapphire-field--label-alignment-top .sapphire-field__label{align-items:flex-start;max-height:unset}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.LabelComponent, selector: "sp-label", inputs: ["id", "for", "disabled", "necessityIndicator", "size"], outputs: ["labelClick"] }] });
|
|
111
118
|
__decorate([
|
|
112
119
|
CoerceBoolean
|
|
113
120
|
], FieldComponent.prototype, "necessityIndicator", void 0);
|
|
@@ -116,6 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
116
123
|
args: [{ selector: 'sp-field', host: {
|
|
117
124
|
class: 'sapphire-field',
|
|
118
125
|
'[class.sapphire-field--label-placement-side]': 'labelPlacement === "side"',
|
|
126
|
+
'[class.sapphire-field--label-alignment-top]': 'labelPlacement === "side" && hasFieldGroupChild()',
|
|
119
127
|
'[class.sapphire-field--medium]': 'size === "medium"',
|
|
120
128
|
'[class.sapphire-field--error]': 'hasError()',
|
|
121
129
|
'[class.is-disabled]': 'control?.isDisabled()',
|
|
@@ -124,7 +132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
124
132
|
provide: ICON_SIZE_PROVIDER,
|
|
125
133
|
useExisting: forwardRef(() => FieldComponent),
|
|
126
134
|
},
|
|
127
|
-
], template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label)}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"] }]
|
|
135
|
+
], template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label-l)}.sapphire-field--label-placement-side.sapphire-field--medium .sapphire-field__label{max-height:var(--sapphire-field-size-max-height-label-m)}.sapphire-field--label-placement-side.sapphire-field--label-alignment-top .sapphire-field__label{align-items:flex-start;max-height:unset}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"] }]
|
|
128
136
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { necessityIndicator: [{
|
|
129
137
|
type: Input
|
|
130
138
|
}], labelPlacement: [{
|
|
@@ -137,6 +145,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
137
145
|
}], error: [{
|
|
138
146
|
type: ContentChild,
|
|
139
147
|
args: [FieldErrorDirective]
|
|
148
|
+
}], radioGroup: [{
|
|
149
|
+
type: ContentChild,
|
|
150
|
+
args: [RadioGroupComponent]
|
|
140
151
|
}], label: [{
|
|
141
152
|
type: ViewChild,
|
|
142
153
|
args: [LabelComponent]
|
|
@@ -150,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
150
161
|
type: ContentChild,
|
|
151
162
|
args: [RequiredValidator, { descendants: true }]
|
|
152
163
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGtCQUFrQixHQUVuQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQW9CSCxNQUFNLE9BQU8sY0FBYztJQXNEekIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1Q3hEOzs7V0FHRztRQUVILG1CQUFjLEdBQXNCLE9BQU8sQ0FBQztRQUU1Qzs7V0FF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dGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkTm90ZURpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtbm90ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbCB9IGZyb20gJy4vZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZC1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7XG4gIElDT05fU0laRV9QUk9WSURFUixcbiAgSWNvblNpemVQcm92aWRlcixcbn0gZnJvbSAnLi4vLi4vaWNvbi9zcmMvaWNvbi1zaXplLXByb3ZpZGVyJztcblxuLyoqXG4gKiBBIGZpZWxkIGlzIGEgY29tbW9uIGNvbnRhaW5lciBmb3IgbGFiZWxhYmxlIGNvbnRyb2xzIHN1Y2ggYXMgc2VsZWN0LCByYWRpbyBncm91cCwgdGV4dCBmaWVsZCxcbiAqIGV0Yy5cbiAqIEluIGFkZGl0aW9uIHRvIHRoZSBmaWVsZCBjb250cm9sIChzcC1zZWxlY3QsIHNwLXJhZGlvLWdyb3VwLCBzcC10ZXh0LWZpZWxkKSwgdGhlIGZvbGxvd2luZ1xuICogY29tcG9uZW50cyBjYW4gYmUgdXNlZCBpbnNpZGUgYSBmaWVsZDpcbiAqIC0gc3AtZmllbGQtbGFiZWw6IGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgbGFiZWwgdGV4dCBmb3IgdGhlIGZpZWxkLlxuICogLSBzcC1jb250ZXh0dWFsLWxhYmVsOiBpcyBwbGFjZWQgaW4gdGhlIGxhYmVsIGFyZWEsIG5leHQgdG8gdGhlIGxhYmVsIHRleHRcbiAqIC0gc3AtZmllbGQtZXJyb3I6IGlzIHVzZWQgdG8gcHJvdmlkZSBhbiBlcnJvciBtZXNzYWdlLCB3aGljaCBpcyBwbGFjZWQgYmVsb3cgdGhlIGZpZWxkJ3NcbiAqIGNvbnRyb2wuXG4gKiAtIHNwLWZpZWxkLW5vdGU6IGlzIHVzZWQgdG8gcHJvdmlkZSBhIG5vdGUsIHdoaWNoIGlzIHBsYWNlZCBiZWxvdyB0aGUgZmllbGQncyBjb250cm9sLiBPbmx5XG4gKiBzaG93blxuICogICB3aGVuIHRoZXJlIGlzIG5vIGVycm9yXG4gKiAtIHNwLWZpZWxkLW5vdGUtc3VmZml4OiBpcyB1c2VkIHRvIHByb3ZpZGUgYSBzdWZmaXgsIHdoaWNoIGlzIHBsYWNlZCBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGVcbiAqIG5vdGUgYXJlYS5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIGZpZWxkIHN1cHBvcnRzOlxuICogLSBMYWJlbCBwbGFjZW1lbnQgZWl0aGVyIGFib3ZlIChkZWZhdWx0KSBvciBvbiB0aGUgc2lkZSBvZiB0aGUgY29udHJvbC5cbiAqIC0gQXNzb2NpYXRpbmcgbGFiZWwgd2l0aCB0aGUgY29udHJvbCwgc28gdGhhdCBjbGlja2luZyB0aGUgbGFiZWwgZm9jdXNlcyB0aGUgY29udHJvbCwgc2hvd2luZ1xuICogICBmb2N1cyByaW5nLlxuICogLSBPcHRpb25hbGx5IHNob3dpbmcgbmVjZXNzaXR5IGluZGljYXRvciBpbiB0aGUgbGFiZWwuIEZpZWxkcyBuZWNlc3NpdHkgKHJlcXVpcmVkIG9yIG9wdGlvbmFsKVxuICogICBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBAYW5ndWxhci9mb3JtJ3Mge0BsaW5rIFJlcXVpcmVkVmFsaWRhdG9yfS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS1maWVsZCcsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1maWVsZC0tbGFiZWwtcGxhY2VtZW50LXNpZGVdJzogJ2xhYmVsUGxhY2VtZW50ID09PSBcInNpZGVcIicsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1maWVsZC0tbWVkaXVtXSc6ICdzaXplID09PSBcIm1lZGl1bVwiJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1lcnJvcl0nOiAnaGFzRXJyb3IoKScsXG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnY29udHJvbD8uaXNEaXNhYmxlZCgpJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNPbkhvc3RdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJQ09OX1NJWkVfUFJPVklERVIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWVsZENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBJY29uU2l6ZVByb3ZpZGVyXG57XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBuZWNlc3NpdHkgaW5kaWNhdG9yIHNob3VsZCBiZSB2aXNpYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgQENvZXJjZUJvb2xlYW5cbiAgbmVjZXNzaXR5SW5kaWNhdG9yPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBMYWJlbCBwbGFjZW1lbnQgd2l0aCByZXNwZWN0IHRvIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqIEBkZWZhdWx0IFwiYWJvdmVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgbGFiZWxQbGFjZW1lbnQ/OiAnc2lkZScgfCAnYWJvdmUnID0gJ2Fib3ZlJztcblxuICAvKipcbiAgICogQGRlZmF1bHQgXCJsYXJnZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBzaXplPzogJ2xhcmdlJyB8ICdtZWRpdW0nID0gJ2xhcmdlJztcblxuICBAQ29udGVudENoaWxkKEZpZWxkTm90ZURpcmVjdGl2ZSlcbiAgbm90ZT86IEZpZWxkTm90ZURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKEZpZWxkRXJyb3JEaXJlY3RpdmUpXG4gIGVycm9yPzogRmllbGRFcnJvckRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKExhYmVsQ29tcG9uZW50KVxuICBsYWJlbD86IExhYmVsQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGRMYWJlbERpcmVjdGl2ZSlcbiAgX2ZpZWxkTGFiZWw/OiBGaWVsZExhYmVsRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBGb2N1c2FibGUsIGxhYmVsYWJsZSBjb250cm9sLiBDb21wb25lbnRzIGxpa2UgU2VsZWN0LCBSYWRpb0dyb3VwIG9yIFRleHRGaWVsZCxcbiAgICogdGhhdCBhcmUgbWVhbnQgdG8gcmVuZGVyZWQgaW5zaWRlIHNwLWZpZWxkLCBwcm92aWRlIEZpZWxkQ29udHJvbC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoRmllbGRDb250cm9sKVxuICBjb250cm9sPzogRmllbGRDb250cm9sO1xuXG4gIEBDb250ZW50Q2hpbGQoUmVxdWlyZWRWYWxpZGF0b3IsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZXF1aXJlZFZhbGlkYXRvcj86IFJlcXVpcmVkVmFsaWRhdG9yO1xuXG4gIC8qKlxuICAgKiBJcyBzZXQgdmlhIGZpZWxkLW5vdGUtYWZmaXggZGlyZWN0aXZlLiBDb250ZW50Q2hpbGQgcXVlcnkgY2FuJ3QgYmUgdXNlZCBzaW5jZSB3ZSBuZWVkXG4gICAqIHRvIHF1ZXJ5IGZyb20gY29udGVudCAtPiB2aWV3IGluIHNvbWUgY2FzZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX25vdGVTdWZmaXhQb3J0YWw6IERvbVBvcnRhbDxIVE1MRWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3NwLWZpZWxkIGlzIHJlbmRlcmVkIHdpdGhvdXQgYW55IGNvbnRyb2wgbGlrZSBzcC1zZWxlY3QsIHNwLXRleHQtZmllbGQsIG9yIHNwLXJhZGlvLWdyb3VwIGluc2lkZSBpdC4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAvKipcbiAgICAgKiBTaW5jZSBub3RlIHN1ZmZpeCBwb3J0YWwgaXMgY2hhbmdlZCBieSBGaWVsZE5vdGVTdWZmaXhEaXJlY3RpdmUsXG4gICAgICogaXQgY3JlYXRlcyBhIGNhc2Ugb2YgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci5cbiAgICAgKiBTbyB3ZSBuZWVkIHRvIG1hbnVhbGx5IGRldGVjdCBjaGFuZ2VzIHdoZW4gc3VmZml4IHBvcnRhbCBpcyBjaGFuZ2VkLlxuICAgICAqIFdlIFdvdWxkbid0IG5lZWQgdG8gZG8gc28sIGlmIHdlIGNvdWxkIHF1ZXJ5IEZpZWxkTm90ZVN1ZmZpeERpcmVjdGl2ZVxuICAgICAqIHZpYSBAQ29udGVudENoaWxkLCBidXQgd2UgY2FuJ3QgYmVjYXVzZSBpdCBjYW4gYmUgaW4gdGhlIHZpZXcgb2YgYSBjb250ZW50XG4gICAgICogY2hpbGQsIHdoaWNoIG1ha2VzIGl0IG5vdCBxdWVyeS1hYmxlLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNoYW5nZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBjb250YWlucyBhbiBlcnJvciBtZXNzYWdlIChzcC1maWVsZC1lcnJvcikuXG4gICAqL1xuICBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvciAhPSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgbGFiZWxOZWNlc3NpdHlJbmRpY2F0b3IoKTogTGFiZWxDb21wb25lbnRbJ25lY2Vzc2l0eUluZGljYXRvciddIHtcbiAgICBpZiAodGhpcy5uZWNlc3NpdHlJbmRpY2F0b3IpIHtcbiAgICAgIHJldHVybiBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5yZXF1aXJlZFZhbGlkYXRvcj8ucmVxdWlyZWQpXG4gICAgICAgID8gJ3JlcXVpcmVkJ1xuICAgICAgICA6ICdvcHRpb25hbCc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBfc2V0U3VmZml4UG9ydGFsKHBvcnRhbDogRG9tUG9ydGFsPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbm90ZVN1ZmZpeFBvcnRhbD8uaXNBdHRhY2hlZCkge1xuICAgICAgdGhpcy5fbm90ZVN1ZmZpeFBvcnRhbC5kZXRhY2goKTtcbiAgICAgIC8vIGNhbGxpbmcgZGV0YWNoIHdpbGwgbW92ZSB0aGUgZWxlbWVudCBiYWNrIHRvIHRoZSBET00uIENvdWxkbid0IGZpbmQgYW55IGJldHRlclxuICAgICAgLy8gd2F5IHRoYW4gaW1wZXJhdGl2ZWx5IHJlbW92aW5nIHRoZSBET00gZWxlbWVudCB0b28uXG4gICAgICB0aGlzLl9ub3RlU3VmZml4UG9ydGFsLmVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuICAgIHRoaXMuX25vdGVTdWZmaXhQb3J0YWwgPSBwb3J0YWw7XG4gICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkTGFiZWxcIj5cbiAgPHNwLWxhYmVsXG4gICAgW25lY2Vzc2l0eUluZGljYXRvcl09XCJsYWJlbE5lY2Vzc2l0eUluZGljYXRvclwiXG4gICAgW2Zvcl09XCJjb250cm9sPy5nZXRJZD8uKClcIlxuICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5pc0Rpc2FibGVkKClcIlxuICAgIChsYWJlbENsaWNrKT1cImNvbnRyb2w/LmZvY3VzPy4oJ2tleWJvYXJkJylcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3AtZmllbGQtbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cInNwLWNvbnRleHR1YWwtaGVscFwiXG4gICAgICBuZ1Byb2plY3RBcz1cInNwLWNvbnRleHR1YWwtaGVscFwiXG4gICAgPjwvbmctY29udGVudD5cbiAgPC9zcC1sYWJlbD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19jb250cm9sXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19tZXNzYWdlXCIgKm5nSWY9XCJub3RlIHx8IGVycm9yIHx8IF9ub3RlU3VmZml4UG9ydGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZS1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX25vdGVcIiAqbmdJZj1cImVycm9yXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX25vdGVcIiAqbmdJZj1cIm5vdGUgJiYgIWVycm9yXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1ub3RlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfbm90ZVN1ZmZpeFBvcnRhbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqY2RrUG9ydGFsT3V0bGV0PVwiX25vdGVTdWZmaXhQb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGtCQUFrQixHQUVuQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7QUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQXNCSCxNQUFNLE9BQU8sY0FBYztJQXlEekIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEvQ3hE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QUs7c0JBREosU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsbUJBQW1CO2dCQVFqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsWUFBWTtnQkFJbEIsaUJBQWlCO3NCQUR4QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkTm90ZURpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtbm90ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbCB9IGZyb20gJy4vZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZC1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7XG4gIElDT05fU0laRV9QUk9WSURFUixcbiAgSWNvblNpemVQcm92aWRlcixcbn0gZnJvbSAnLi4vLi4vaWNvbi9zcmMvaWNvbi1zaXplLXByb3ZpZGVyJztcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yYWRpby9zcmMvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcblxuLyoqXG4gKiBBIGZpZWxkIGlzIGEgY29tbW9uIGNvbnRhaW5lciBmb3IgbGFiZWxhYmxlIGNvbnRyb2xzIHN1Y2ggYXMgc2VsZWN0LCByYWRpbyBncm91cCwgdGV4dCBmaWVsZCxcbiAqIGV0Yy5cbiAqIEluIGFkZGl0aW9uIHRvIHRoZSBmaWVsZCBjb250cm9sIChzcC1zZWxlY3QsIHNwLXJhZGlvLWdyb3VwLCBzcC10ZXh0LWZpZWxkKSwgdGhlIGZvbGxvd2luZ1xuICogY29tcG9uZW50cyBjYW4gYmUgdXNlZCBpbnNpZGUgYSBmaWVsZDpcbiAqIC0gc3AtZmllbGQtbGFiZWw6IGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgbGFiZWwgdGV4dCBmb3IgdGhlIGZpZWxkLlxuICogLSBzcC1jb250ZXh0dWFsLWhlbHA6IGlzIHBsYWNlZCBpbiB0aGUgbGFiZWwgYXJlYSwgbmV4dCB0byB0aGUgbGFiZWwgdGV4dFxuICogLSBzcC1maWVsZC1lcnJvcjogaXMgdXNlZCB0byBwcm92aWRlIGFuIGVycm9yIG1lc3NhZ2UsIHdoaWNoIGlzIHBsYWNlZCBiZWxvdyB0aGUgZmllbGQnc1xuICogY29udHJvbC5cbiAqIC0gc3AtZmllbGQtbm90ZTogaXMgdXNlZCB0byBwcm92aWRlIGEgbm90ZSwgd2hpY2ggaXMgcGxhY2VkIGJlbG93IHRoZSBmaWVsZCdzIGNvbnRyb2wuIE9ubHlcbiAqIHNob3duXG4gKiAgIHdoZW4gdGhlcmUgaXMgbm8gZXJyb3JcbiAqIC0gc3AtZmllbGQtbm90ZS1zdWZmaXg6IGlzIHVzZWQgdG8gcHJvdmlkZSBhIHN1ZmZpeCwgd2hpY2ggaXMgcGxhY2VkIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZVxuICogbm90ZSBhcmVhLlxuICpcbiAqIEFkZGl0aW9uYWxseSwgZmllbGQgc3VwcG9ydHM6XG4gKiAtIExhYmVsIHBsYWNlbWVudCBlaXRoZXIgYWJvdmUgKGRlZmF1bHQpIG9yIG9uIHRoZSBzaWRlIG9mIHRoZSBjb250cm9sLlxuICogLSBBc3NvY2lhdGluZyBsYWJlbCB3aXRoIHRoZSBjb250cm9sLCBzbyB0aGF0IGNsaWNraW5nIHRoZSBsYWJlbCBmb2N1c2VzIHRoZSBjb250cm9sLCBzaG93aW5nXG4gKiAgIGZvY3VzIHJpbmcuXG4gKiAtIE9wdGlvbmFsbHkgc2hvd2luZyBuZWNlc3NpdHkgaW5kaWNhdG9yIGluIHRoZSBsYWJlbC4gRmllbGRzIG5lY2Vzc2l0eSAocmVxdWlyZWQgb3Igb3B0aW9uYWwpXG4gKiAgIGlzIGRldGVybWluZWQgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIEBhbmd1bGFyL2Zvcm0ncyB7QGxpbmsgUmVxdWlyZWRWYWxpZGF0b3J9LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLWZpZWxkJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1sYWJlbC1wbGFjZW1lbnQtc2lkZV0nOiAnbGFiZWxQbGFjZW1lbnQgPT09IFwic2lkZVwiJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1sYWJlbC1hbGlnbm1lbnQtdG9wXSc6XG4gICAgICAnbGFiZWxQbGFjZW1lbnQgPT09IFwic2lkZVwiICYmIGhhc0ZpZWxkR3JvdXBDaGlsZCgpJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1tZWRpdW1dJzogJ3NpemUgPT09IFwibWVkaXVtXCInLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtZmllbGQtLWVycm9yXSc6ICdoYXNFcnJvcigpJyxcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdjb250cm9sPy5pc0Rpc2FibGVkKCknLFxuICB9LFxuICBob3N0RGlyZWN0aXZlczogW1VzZUNvbXBvbmVudFN0eWxlc09uSG9zdF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IElDT05fU0laRV9QUk9WSURFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpZWxkQ29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEljb25TaXplUHJvdmlkZXJcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG5lY2Vzc2l0eSBpbmRpY2F0b3Igc2hvdWxkIGJlIHZpc2libGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBAQ29lcmNlQm9vbGVhblxuICBuZWNlc3NpdHlJbmRpY2F0b3I/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIExhYmVsIHBsYWNlbWVudCB3aXRoIHJlc3BlY3QgdG8gdGhlIGZvcm0gY29udHJvbC5cbiAgICogQGRlZmF1bHQgXCJhYm92ZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBsYWJlbFBsYWNlbWVudD86ICdzaWRlJyB8ICdhYm92ZScgPSAnYWJvdmUnO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBcImxhcmdlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNpemU/OiAnbGFyZ2UnIHwgJ21lZGl1bScgPSAnbGFyZ2UnO1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGROb3RlRGlyZWN0aXZlKVxuICBub3RlPzogRmllbGROb3RlRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGRFcnJvckRpcmVjdGl2ZSlcbiAgZXJyb3I/OiBGaWVsZEVycm9yRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoUmFkaW9Hcm91cENvbXBvbmVudClcbiAgcmFkaW9Hcm91cD86IFJhZGlvR3JvdXBDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChMYWJlbENvbXBvbmVudClcbiAgbGFiZWw/OiBMYWJlbENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEZpZWxkTGFiZWxEaXJlY3RpdmUpXG4gIF9maWVsZExhYmVsPzogRmllbGRMYWJlbERpcmVjdGl2ZTtcblxuICAvKipcbiAgICogRm9jdXNhYmxlLCBsYWJlbGFibGUgY29udHJvbC4gQ29tcG9uZW50cyBsaWtlIFNlbGVjdCwgUmFkaW9Hcm91cCBvciBUZXh0RmllbGQsXG4gICAqIHRoYXQgYXJlIG1lYW50IHRvIHJlbmRlcmVkIGluc2lkZSBzcC1maWVsZCwgcHJvdmlkZSBGaWVsZENvbnRyb2wuXG4gICAqL1xuICBAQ29udGVudENoaWxkKEZpZWxkQ29udHJvbClcbiAgY29udHJvbD86IEZpZWxkQ29udHJvbDtcblxuICBAQ29udGVudENoaWxkKFJlcXVpcmVkVmFsaWRhdG9yLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVxdWlyZWRWYWxpZGF0b3I/OiBSZXF1aXJlZFZhbGlkYXRvcjtcblxuICAvKipcbiAgICogSXMgc2V0IHZpYSBmaWVsZC1ub3RlLWFmZml4IGRpcmVjdGl2ZS4gQ29udGVudENoaWxkIHF1ZXJ5IGNhbid0IGJlIHVzZWQgc2luY2Ugd2UgbmVlZFxuICAgKiB0byBxdWVyeSBmcm9tIGNvbnRlbnQgLT4gdmlldyBpbiBzb21lIGNhc2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9ub3RlU3VmZml4UG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICghdGhpcy5jb250cm9sICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdzcC1maWVsZCBpcyByZW5kZXJlZCB3aXRob3V0IGFueSBjb250cm9sIGxpa2Ugc3Atc2VsZWN0LCBzcC10ZXh0LWZpZWxkLCBvciBzcC1yYWRpby1ncm91cCBpbnNpZGUgaXQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgLyoqXG4gICAgICogU2luY2Ugbm90ZSBzdWZmaXggcG9ydGFsIGlzIGNoYW5nZWQgYnkgRmllbGROb3RlU3VmZml4RGlyZWN0aXZlLFxuICAgICAqIGl0IGNyZWF0ZXMgYSBjYXNlIG9mIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICogU28gd2UgbmVlZCB0byBtYW51YWxseSBkZXRlY3QgY2hhbmdlcyB3aGVuIHN1ZmZpeCBwb3J0YWwgaXMgY2hhbmdlZC5cbiAgICAgKiBXZSBXb3VsZG4ndCBuZWVkIHRvIGRvIHNvLCBpZiB3ZSBjb3VsZCBxdWVyeSBGaWVsZE5vdGVTdWZmaXhEaXJlY3RpdmVcbiAgICAgKiB2aWEgQENvbnRlbnRDaGlsZCwgYnV0IHdlIGNhbid0IGJlY2F1c2UgaXQgY2FuIGJlIGluIHRoZSB2aWV3IG9mIGEgY29udGVudFxuICAgICAqIGNoaWxkLCB3aGljaCBtYWtlcyBpdCBub3QgcXVlcnktYWJsZS5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5jaGFuZ2VkKSB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgY29udGFpbnMgYW4gZXJyb3IgbWVzc2FnZSAoc3AtZmllbGQtZXJyb3IpLlxuICAgKi9cbiAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IgIT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGNvbnRyb2wgaXMgcmFkaW8gZ3JvdXAgKHNwLXJhZGlvLWdyb3VwKS5cbiAgICovXG4gIGhhc0ZpZWxkR3JvdXBDaGlsZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yYWRpb0dyb3VwICE9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBsYWJlbE5lY2Vzc2l0eUluZGljYXRvcigpOiBMYWJlbENvbXBvbmVudFsnbmVjZXNzaXR5SW5kaWNhdG9yJ10ge1xuICAgIGlmICh0aGlzLm5lY2Vzc2l0eUluZGljYXRvcikge1xuICAgICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlcXVpcmVkVmFsaWRhdG9yPy5yZXF1aXJlZClcbiAgICAgICAgPyAncmVxdWlyZWQnXG4gICAgICAgIDogJ29wdGlvbmFsJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIF9zZXRTdWZmaXhQb3J0YWwocG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+IHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl9ub3RlU3VmZml4UG9ydGFsPy5pc0F0dGFjaGVkKSB7XG4gICAgICB0aGlzLl9ub3RlU3VmZml4UG9ydGFsLmRldGFjaCgpO1xuICAgICAgLy8gY2FsbGluZyBkZXRhY2ggd2lsbCBtb3ZlIHRoZSBlbGVtZW50IGJhY2sgdG8gdGhlIERPTS4gQ291bGRuJ3QgZmluZCBhbnkgYmV0dGVyXG4gICAgICAvLyB3YXkgdGhhbiBpbXBlcmF0aXZlbHkgcmVtb3ZpbmcgdGhlIERPTSBlbGVtZW50IHRvby5cbiAgICAgIHRoaXMuX25vdGVTdWZmaXhQb3J0YWwuZWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gICAgdGhpcy5fbm90ZVN1ZmZpeFBvcnRhbCA9IHBvcnRhbDtcbiAgICB0aGlzLmNoYW5nZWQgPSB0cnVlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX2xhYmVsXCIgKm5nSWY9XCJfZmllbGRMYWJlbFwiPlxuICA8c3AtbGFiZWxcbiAgICBbbmVjZXNzaXR5SW5kaWNhdG9yXT1cImxhYmVsTmVjZXNzaXR5SW5kaWNhdG9yXCJcbiAgICBbZm9yXT1cImNvbnRyb2w/LmdldElkPy4oKVwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmlzRGlzYWJsZWQoKVwiXG4gICAgKGxhYmVsQ2xpY2spPVwiY29udHJvbD8uZm9jdXM/Ligna2V5Ym9hcmQnKVwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwic3AtY29udGV4dHVhbC1oZWxwXCJcbiAgICAgIG5nUHJvamVjdEFzPVwic3AtY29udGV4dHVhbC1oZWxwXCJcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L3NwLWxhYmVsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX2NvbnRyb2xcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX21lc3NhZ2VcIiAqbmdJZj1cIm5vdGUgfHwgZXJyb3IgfHwgX25vdGVTdWZmaXhQb3J0YWxcIj5cbiAgPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19ub3RlLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZVwiICpuZ0lmPVwiZXJyb3JcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLWZpZWxkLWVycm9yXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZVwiICpuZ0lmPVwibm90ZSAmJiAhZXJyb3JcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLWZpZWxkLW5vdGVcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9ub3RlU3VmZml4UG9ydGFsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpjZGtQb3J0YWxPdXRsZXQ9XCJfbm90ZVN1ZmZpeFBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, } from '@angular/core';
|
|
2
|
+
import { Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, ViewChild, } from '@angular/core';
|
|
3
3
|
import { coerceNumberProperty, } from '@angular/cdk/coercion';
|
|
4
4
|
import { CoerceBoolean } from '../../common/coerce-boolean.decorator';
|
|
5
5
|
import { SegmentedTabComponent } from './segmented-tab.component';
|
|
@@ -16,8 +16,7 @@ export class SegmentedTabsComponent {
|
|
|
16
16
|
this._selectedIndex = coerceNumberProperty(value);
|
|
17
17
|
this._focusedIndex = this._selectedIndex;
|
|
18
18
|
}
|
|
19
|
-
constructor(
|
|
20
|
-
this.host = host;
|
|
19
|
+
constructor(zone, changeDetector) {
|
|
21
20
|
this.zone = zone;
|
|
22
21
|
this.changeDetector = changeDetector;
|
|
23
22
|
/** Size of tabs */
|
|
@@ -33,18 +32,6 @@ export class SegmentedTabsComponent {
|
|
|
33
32
|
this._focusVisible = false;
|
|
34
33
|
this.skipAnimationFrame();
|
|
35
34
|
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
38
|
-
// zonejs doesn't monkey-patch resize observer (yet)
|
|
39
|
-
this.zone.run(() => {
|
|
40
|
-
this.setActiveTabPosition();
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
this.resizeObserver.observe(this.host.nativeElement);
|
|
44
|
-
this.selectedIndexChange.subscribe(() => {
|
|
45
|
-
this.setActiveTabPosition();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
35
|
ngAfterContentInit() {
|
|
49
36
|
this._tabIds = this.tabs.map((tab) => tab.id);
|
|
50
37
|
this.tabs.changes.subscribe(() => {
|
|
@@ -64,9 +51,19 @@ export class SegmentedTabsComponent {
|
|
|
64
51
|
// https://angular.io/errors/NG0100
|
|
65
52
|
this.setActiveTabPosition();
|
|
66
53
|
this.changeDetector.detectChanges();
|
|
54
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
55
|
+
// zonejs doesn't monkey-patch resize observer (yet)
|
|
56
|
+
this.zone.run(() => {
|
|
57
|
+
this.setActiveTabPosition();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
this.resizeObserver.observe(this.segmentedControl.nativeElement);
|
|
61
|
+
this.selectedIndexChange.subscribe(() => {
|
|
62
|
+
this.setActiveTabPosition();
|
|
63
|
+
});
|
|
67
64
|
}
|
|
68
65
|
ngOnDestroy() {
|
|
69
|
-
this.resizeObserver?.unobserve(this.
|
|
66
|
+
this.resizeObserver?.unobserve(this.segmentedControl.nativeElement);
|
|
70
67
|
this.selectedIndexChange.unsubscribe();
|
|
71
68
|
}
|
|
72
69
|
getFocusedTab() {
|
|
@@ -190,15 +187,18 @@ export class SegmentedTabsComponent {
|
|
|
190
187
|
}
|
|
191
188
|
}
|
|
192
189
|
}
|
|
193
|
-
SegmentedTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SegmentedTabsComponent, deps: [{ token: i0.
|
|
194
|
-
SegmentedTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SegmentedTabsComponent, selector: "sp-segmented-tabs", inputs: { size: "size", keyboardActivation: "keyboardActivation", disabled: "disabled", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, providers: [ViewEncapsulationProvider], queries: [{ propertyName: "tabs", predicate: i0.forwardRef(function () { return SegmentedTabComponent; }) }], exportAs: ["spSegmentedTabs"], ngImport: i0, template: "<div\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--large]=\"size === 'large'\"\n [class.sapphire-segmented-control--small]=\"size === 'small'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_activeTabPosition.left\"\n [style.width]=\"_activeTabPosition.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{background-color:var(--sapphire-segmented-control-color-tray);border-radius:var(--sapphire-segmented-control-size-radius);padding:var(--sapphire-segmented-control-size-spacing-tray);display:inline-block;height:var(--sapphire-segmented-control-size-height-m);box-sizing:border-box}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;width:100%}.sapphire-segmented-control__glider{position:absolute;top:0;left:0;height:100%;display:block;background-color:var(--sapphire-segmented-control-color-glider);box-shadow:var(--sapphire-segmented-control-shadow-glider);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-segmented-control-time-transition) ease-in-out,left var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-segmented-control-font-name);font-weight:var(--sapphire-segmented-control-font-weight);font-size:var(--sapphire-segmented-control-size-font-m);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-segmented-control-size-min-width-tab);padding:0 var(--sapphire-segmented-control-size-spacing-tab-horizontal);background-color:transparent;color:var(--sapphire-segmented-control-color-content-inactive);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-segmented-control-color-content-active)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-segmented-control-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring);border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--large{height:var(--sapphire-segmented-control-size-height-l)}.sapphire-segmented-control--large .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-l)}.sapphire-segmented-control--small{height:var(--sapphire-segmented-control-size-height-s)}.sapphire-segmented-control--small .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-s)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}.sapphire-segmented-control{width:inherit;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] });
|
|
190
|
+
SegmentedTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SegmentedTabsComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
191
|
+
SegmentedTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SegmentedTabsComponent, selector: "sp-segmented-tabs", inputs: { size: "size", keyboardActivation: "keyboardActivation", disabled: "disabled", selectedIndex: "selectedIndex" }, outputs: { selectedIndexChange: "selectedIndexChange" }, providers: [ViewEncapsulationProvider], queries: [{ propertyName: "tabs", predicate: i0.forwardRef(function () { return SegmentedTabComponent; }) }], viewQueries: [{ propertyName: "segmentedControl", first: true, predicate: ["segmentedControl"], descendants: true }], exportAs: ["spSegmentedTabs"], ngImport: i0, template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--large]=\"size === 'large'\"\n [class.sapphire-segmented-control--small]=\"size === 'small'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_activeTabPosition.left\"\n [style.width]=\"_activeTabPosition.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{background-color:var(--sapphire-segmented-control-color-tray);border-radius:var(--sapphire-segmented-control-size-radius);padding:var(--sapphire-segmented-control-size-spacing-tray);display:inline-block;height:var(--sapphire-segmented-control-size-height-m);box-sizing:border-box}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;width:100%}.sapphire-segmented-control__glider{position:absolute;top:0;left:0;height:100%;display:block;background-color:var(--sapphire-segmented-control-color-glider);box-shadow:var(--sapphire-segmented-control-shadow-glider);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-segmented-control-time-transition) ease-in-out,left var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-segmented-control-font-name);font-weight:var(--sapphire-segmented-control-font-weight);font-size:var(--sapphire-segmented-control-size-font-m);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-segmented-control-size-min-width-tab);padding:0 var(--sapphire-segmented-control-size-spacing-tab-horizontal);background-color:transparent;color:var(--sapphire-segmented-control-color-content-inactive);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-segmented-control-color-content-active)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-segmented-control-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring);border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--large{height:var(--sapphire-segmented-control-size-height-l)}.sapphire-segmented-control--large .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-l)}.sapphire-segmented-control--small{height:var(--sapphire-segmented-control-size-height-s)}.sapphire-segmented-control--small .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-s)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}.sapphire-segmented-control{width:inherit;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }] });
|
|
195
192
|
__decorate([
|
|
196
193
|
CoerceBoolean
|
|
197
194
|
], SegmentedTabsComponent.prototype, "disabled", void 0);
|
|
198
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SegmentedTabsComponent, decorators: [{
|
|
199
196
|
type: Component,
|
|
200
|
-
args: [{ selector: 'sp-segmented-tabs', providers: [ViewEncapsulationProvider], exportAs: 'spSegmentedTabs', template: "<div\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--large]=\"size === 'large'\"\n [class.sapphire-segmented-control--small]=\"size === 'small'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_activeTabPosition.left\"\n [style.width]=\"_activeTabPosition.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{background-color:var(--sapphire-segmented-control-color-tray);border-radius:var(--sapphire-segmented-control-size-radius);padding:var(--sapphire-segmented-control-size-spacing-tray);display:inline-block;height:var(--sapphire-segmented-control-size-height-m);box-sizing:border-box}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;width:100%}.sapphire-segmented-control__glider{position:absolute;top:0;left:0;height:100%;display:block;background-color:var(--sapphire-segmented-control-color-glider);box-shadow:var(--sapphire-segmented-control-shadow-glider);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-segmented-control-time-transition) ease-in-out,left var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-segmented-control-font-name);font-weight:var(--sapphire-segmented-control-font-weight);font-size:var(--sapphire-segmented-control-size-font-m);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-segmented-control-size-min-width-tab);padding:0 var(--sapphire-segmented-control-size-spacing-tab-horizontal);background-color:transparent;color:var(--sapphire-segmented-control-color-content-inactive);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-segmented-control-color-content-active)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-segmented-control-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring);border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--large{height:var(--sapphire-segmented-control-size-height-l)}.sapphire-segmented-control--large .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-l)}.sapphire-segmented-control--small{height:var(--sapphire-segmented-control-size-height-s)}.sapphire-segmented-control--small .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-s)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}.sapphire-segmented-control{width:inherit;display:inline-block}\n"] }]
|
|
201
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
197
|
+
args: [{ selector: 'sp-segmented-tabs', providers: [ViewEncapsulationProvider], exportAs: 'spSegmentedTabs', template: "<div\n #segmentedControl\n class=\"sapphire-segmented-control\"\n [class.sapphire-segmented-control--large]=\"size === 'large'\"\n [class.sapphire-segmented-control--small]=\"size === 'small'\"\n [class.focus-visible]=\"_focusVisible\"\n [class.sapphire-segmented-control--manual-keyboard-activation]=\"\n keyboardActivation === 'manual'\n \"\n>\n <div\n class=\"sapphire-segmented-control__button-container\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n (keydown)=\"_onKeyDown($event)\"\n >\n <ng-content select=\"sp-segmented-tab\"></ng-content>\n <span\n [style.left]=\"_activeTabPosition.left\"\n [style.width]=\"_activeTabPosition.width\"\n [class.sapphire-segmented-control__glider--with-transition]=\"\n _animationEnabled\n \"\n class=\"sapphire-segmented-control__glider\"\n role=\"none\"\n ></span>\n </div>\n</div>\n<ng-container *ngTemplateOutlet=\"_getTabContentTemplate()\"></ng-container>\n", styles: [".sapphire-segmented-control{background-color:var(--sapphire-segmented-control-color-tray);border-radius:var(--sapphire-segmented-control-size-radius);padding:var(--sapphire-segmented-control-size-spacing-tray);display:inline-block;height:var(--sapphire-segmented-control-size-height-m);box-sizing:border-box}.sapphire-segmented-control__button-container{display:inline-flex;position:relative;height:100%;width:100%}.sapphire-segmented-control__glider{position:absolute;top:0;left:0;height:100%;display:block;background-color:var(--sapphire-segmented-control-color-glider);box-shadow:var(--sapphire-segmented-control-shadow-glider);box-sizing:border-box;z-index:1;border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control__glider--with-transition{transition:width var(--sapphire-segmented-control-time-transition) ease-in-out,left var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button{font-family:var(--sapphire-segmented-control-font-name);font-weight:var(--sapphire-segmented-control-font-weight);font-size:var(--sapphire-segmented-control-size-font-m);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex:1 1 auto;box-sizing:content-box;margin:0;border:0;height:100%;min-width:var(--sapphire-segmented-control-size-min-width-tab);padding:0 var(--sapphire-segmented-control-size-spacing-tab-horizontal);background-color:transparent;color:var(--sapphire-segmented-control-color-content-inactive);cursor:pointer;outline:none;z-index:2;display:flex;align-items:center;justify-content:center;position:relative;transition:color var(--sapphire-segmented-control-time-transition) ease-in-out}.sapphire-segmented-control__button--active{color:var(--sapphire-segmented-control-color-content-active)}.sapphire-segmented-control__button--disabled{opacity:var(--sapphire-segmented-control-opacity-disabled);cursor:not-allowed}.sapphire-segmented-control.focus-visible:focus-within .sapphire-segmented-control__glider{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring)}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__glider{transition:none}.sapphire-segmented-control--manual-keyboard-activation.focus-visible .sapphire-segmented-control__button:focus{outline:var(--sapphire-segmented-control-size-focus-ring) solid var(--sapphire-segmented-control-color-focus-ring);border-radius:var(--sapphire-segmented-control-size-radius)}.sapphire-segmented-control.focus-visible:focus-within.sapphire-segmented-control--manual-keyboard-activation .sapphire-segmented-control__glider{outline:none}.sapphire-segmented-control--large{height:var(--sapphire-segmented-control-size-height-l)}.sapphire-segmented-control--large .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-l)}.sapphire-segmented-control--small{height:var(--sapphire-segmented-control-size-height-s)}.sapphire-segmented-control--small .sapphire-segmented-control__button{font-size:var(--sapphire-segmented-control-size-font-s)}.sapphire-segmented-control__radio-input{margin:0;overflow:visible;position:absolute;top:0;left:0;height:100%;width:100%;opacity:.0001;z-index:1;cursor:pointer}.sapphire-segmented-control__button--disabled .sapphire-segmented-control__radio-input{cursor:not-allowed}.sapphire-segmented-control{width:inherit;display:inline-block}\n"] }]
|
|
198
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { segmentedControl: [{
|
|
199
|
+
type: ViewChild,
|
|
200
|
+
args: ['segmentedControl']
|
|
201
|
+
}], size: [{
|
|
202
202
|
type: Input
|
|
203
203
|
}], keyboardActivation: [{
|
|
204
204
|
type: Input
|
|
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
212
212
|
type: ContentChildren,
|
|
213
213
|
args: [forwardRef(() => SegmentedTabComponent)]
|
|
214
214
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG9CQUFvQixHQUVyQixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQVNyRixNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxnQ0FBZ0M7SUFDaEMsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsS0FBa0I7UUFDbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDM0MsQ0FBQztJQWdCRCxZQUNVLElBQWdCLEVBQ2hCLElBQVksRUFDWixjQUFpQztRQUZqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUF4QzNDLG1CQUFt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UGxDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMseUJBQXlCLENBQUMsWUFDNUIsaUJBQWlCO3NKQU8zQixJQUFJO3NCQURILEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQU1OLFFBQVE7c0JBRlAsS0FBSztnQkFNRixhQUFhO3NCQURoQixLQUFLO2dCQVdhLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFJRSxJQUFJO3NCQURaLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxuICBOdW1iZXJJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBTZWdtZW50ZWRUYWJDb21wb25lbnQgfSBmcm9tICcuL3NlZ21lbnRlZC10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Atc2VnbWVudGVkLXRhYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWdtZW50ZWQtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtWaWV3RW5jYXBzdWxhdGlvblByb3ZpZGVyXSxcbiAgZXhwb3J0QXM6ICdzcFNlZ21lbnRlZFRhYnMnLFxufSlcbmV4cG9ydCBjbGFzcyBTZWdtZW50ZWRUYWJzQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqIFNpemUgb2YgdGFicyAqL1xuICBASW5wdXQoKVxuICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnID0gJ21lZGl1bSc7XG5cbiAgLyoqIFdoZXRoZXIgdGFicyBhcmUgYWN0aXZhdGVkIGF1dG9tYXRpY2FsbHkgb24gZm9jdXMgb3IgbWFudWFsbHkuICovXG4gIEBJbnB1dCgpXG4gIGtleWJvYXJkQWN0aXZhdGlvbj86ICdtYW51YWwnIHwgJ2F1dG9tYXRpYycgPSAnYXV0b21hdGljJztcblxuICAvKiogV2hldGhlciB0aGUgZW50aXJlIGNvbXBvbmVudCBzaG91bGQgYmUgZGlzYWJsZWQgKi9cbiAgQElucHV0KClcbiAgQENvZXJjZUJvb2xlYW5cbiAgZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICAvKiogSW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYiAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4IHx8IDA7XG4gIH1cbiAgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLl9mb2N1c2VkSW5kZXggPSB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdGVkSW5kZXg/OiBudW1iZXI7XG4gIHByaXZhdGUgX2ZvY3VzZWRJbmRleDogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50ZWRUYWJDb21wb25lbnQpKVxuICByZWFkb25seSB0YWJzOiBRdWVyeUxpc3Q8U2VnbWVudGVkVGFiQ29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3QoKTtcbiAgcHJpdmF0ZSBfdGFiSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgdW5kZWZpbmVkO1xuICBfYWN0aXZlVGFiUG9zaXRpb24gPSB7IGxlZnQ6ICcwcHgnLCB3aWR0aDogJzBweCcgfTtcbiAgX2FuaW1hdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgX2ZvY3VzVmlzaWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnNraXBBbmltYXRpb25GcmFtZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAvLyB6b25lanMgZG9lc24ndCBtb25rZXktcGF0Y2ggcmVzaXplIG9ic2VydmVyICh5ZXQpXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RhYklkcyA9IHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmlkKTtcbiAgICB0aGlzLnRhYnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vblRhYnNDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLmZpbmRGb2N1c2FibGVJbmRleCgwLCAncmlnaHQnKSB8fCAwO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gVGhlIHZhbHVlIG9mIFwiX2dldFRhYkNvbnRlbnRUZW1wbGF0ZVwiLCB3aGljaCBpcyBib3VuZCBpbiB0aGVcbiAgICAvLyB0ZW1wbGF0ZSwgY2hhbmdlcyBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBjaGVja2VkLiBUaGlzXG4gICAgLy8gXCJkZXRlY3RDaGFuZ2VzKClcIiBhdm9pZHMgdGhlIFwiTkcwMTAwOiBFeHByZXNzaW9uIGhhc1xuICAgIC8vIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBhbmd1bGFyIGVycm9yLlxuICAgIC8vXG4gICAgLy8gaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzAxMDBcbiAgICB0aGlzLnNldEFjdGl2ZVRhYlBvc2l0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0Rm9jdXNlZFRhYigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnRvQXJyYXkoKVt0aGlzLl9mb2N1c2VkSW5kZXhdO1xuICB9XG5cbiAgc2VsZWN0VGFiKHNlbGVjdGVkVGFiOiBTZWdtZW50ZWRUYWJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLnRhYnNcbiAgICAgIC50b0FycmF5KClcbiAgICAgIC5maW5kSW5kZXgoKHRhYikgPT4gdGFiID09PSBzZWxlY3RlZFRhYik7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQodGFiOiBTZWdtZW50ZWRUYWJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJzPy50b0FycmF5KCkuaW5kZXhPZih0YWIpID09PSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBfZ2V0VGFiQ29udGVudFRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0/Ll9jb250ZW50VGVtcGxhdGUgfHwgbnVsbDtcbiAgfVxuXG4gIF9vbkZvY3VzQ2hhbmdlKG9yaWdpbjogRm9jdXNPcmlnaW4pIHtcbiAgICB0aGlzLl9mb2N1c1Zpc2libGUgPSBvcmlnaW4gPT09ICdrZXlib2FyZCc7XG4gICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICBfb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgZm9jdXNOZXh0VmFsaWRUYWIgPSAoXG4gICAgICB0YXJnZXRJbmRleDogbnVtYmVyLFxuICAgICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnXG4gICAgKSA9PiB7XG4gICAgICBpZiAodGhpcy50YWJzLnRvQXJyYXkoKS5ldmVyeSgodGFiKSA9PiB0YWIuZGlzYWJsZWQpKSByZXR1cm47XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEZvY3VzYWJsZUluZGV4KHRhcmdldEluZGV4LCBkaXJlY3Rpb24pO1xuICAgICAgaWYgKGluZGV4ID09PSBudWxsKSByZXR1cm47XG4gICAgICBjb25zdCBidXR0b24gPSB0aGlzLnRhYnMudG9BcnJheSgpW2luZGV4XS5fYnV0dG9uPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKCFidXR0b24pIHJldHVybjtcbiAgICAgIGJ1dHRvbi5mb2N1cygpO1xuICAgICAgaWYgKHRoaXMua2V5Ym9hcmRBY3RpdmF0aW9uID09PSAnYXV0b21hdGljJykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgfVxuICAgIH07XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZvY3VzTmV4dFZhbGlkVGFiKHRoaXMuX2ZvY3VzZWRJbmRleCAtIDEsICdsZWZ0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGZvY3VzTmV4dFZhbGlkVGFiKHRoaXMuX2ZvY3VzZWRJbmRleCArIDEsICdyaWdodCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0hvbWUnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYigwLCAncmlnaHQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbmQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLnRhYnMubGVuZ3RoIC0gMSwgJ2xlZnQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVUYWJQb3NpdGlvbigpIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnMudG9BcnJheSgpW3RoaXMuc2VsZWN0ZWRJbmRleF0/Ll9idXR0b24/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fYWN0aXZlVGFiUG9zaXRpb24gPSB7XG4gICAgICBsZWZ0OiBgJHt0YWI/Lm9mZnNldExlZnQgfHwgMH1weGAsXG4gICAgICB3aWR0aDogYCR7dGFiPy5jbGllbnRXaWR0aCB8fCAwfXB4YCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvblRhYnNDaGFuZ2UoKSB7XG4gICAgLy8gRW5zdXJlIHRoZSBjdXJyZW50IHRhYiBkb2Vzbid0IGNoYW5nZSBpZiB0YWJzIGNoYW5nZVxuICAgIC8vIGFuZCB0YWIgd2l0aCBjdXJyZW50bHkgc2VsZWN0ZWQgaWQgc3RpbGwgZXhpc3RzXG4gICAgY29uc3QgcHJldmlvdXNUYWJJZCA9IHRoaXMuX3RhYklkc1t0aGlzLnNlbGVjdGVkSW5kZXhdO1xuICAgIHRoaXMuX3RhYklkcyA9IHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmlkKTtcbiAgICBpZiAodGhpcy5fdGFiSWRzLmluY2x1ZGVzKHByZXZpb3VzVGFiSWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLl90YWJJZHMuZmluZEluZGV4KFxuICAgICAgICAodGFiSWQpID0+IHRhYklkID09PSBwcmV2aW91c1RhYklkXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtYXhJbmRleCA9IHRoaXMudGFicy5sZW5ndGggLSAxO1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA+IG1heEluZGV4KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG1heEluZGV4O1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNraXBBbmltYXRpb25GcmFtZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBza2lwQW5pbWF0aW9uRnJhbWUoKSB7XG4gICAgLy8gV2Ugd2FudCB0byBhdm9pZCBhbmltYXRpb24gb24gZmlyc3QgcmVuZGVyIGFuZCB3aGVuZXZlciB0YWIgY29udGVudCBjaGFuZ2VzXG4gICAgdGhpcy5fYW5pbWF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9hbmltYXRpb25FbmFibGVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZvY3VzYWJsZUluZGV4KFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLnRhYnMudG9BcnJheSgpLmV2ZXJ5KCh0YWIpID0+IHRhYi5kaXNhYmxlZCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNvbnN0cmFpbkluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChpbmRleCA+PSB0aGlzLnRhYnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSBlbHNlIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFicy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgY29uc3RyYWluZWRJbmRleCA9IGNvbnN0cmFpbkluZGV4KGluZGV4KTtcbiAgICBpZiAodGhpcy50YWJzLnRvQXJyYXkoKVtjb25zdHJhaW5lZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEZvY3VzYWJsZUluZGV4KFxuICAgICAgICBjb25zdHJhaW5lZEluZGV4ICsgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gLTEgOiAxKSxcbiAgICAgICAgZGlyZWN0aW9uXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29uc3RyYWluZWRJbmRleDtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbFwiXG4gIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tbGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFtjbGFzcy5zYXBwaGlyZS1zZWdtZW50ZWQtY29udHJvbC0tc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gIFtjbGFzcy5mb2N1cy12aXNpYmxlXT1cIl9mb2N1c1Zpc2libGVcIlxuICBbY2xhc3Muc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2wtLW1hbnVhbC1rZXlib2FyZC1hY3RpdmF0aW9uXT1cIlxuICAgIGtleWJvYXJkQWN0aXZhdGlvbiA9PT0gJ21hbnVhbCdcbiAgXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2xfX2J1dHRvbi1jb250YWluZXJcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCJcbiAgICBhcmlhLW9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xuICAgIChjZGtGb2N1c0NoYW5nZSk9XCJfb25Gb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJfb25LZXlEb3duKCRldmVudClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3Atc2VnbWVudGVkLXRhYlwiPjwvbmctY29udGVudD5cbiAgICA8c3BhblxuICAgICAgW3N0eWxlLmxlZnRdPVwiX2FjdGl2ZVRhYlBvc2l0aW9uLmxlZnRcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cIl9hY3RpdmVUYWJQb3NpdGlvbi53aWR0aFwiXG4gICAgICBbY2xhc3Muc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2xfX2dsaWRlci0td2l0aC10cmFuc2l0aW9uXT1cIlxuICAgICAgICBfYW5pbWF0aW9uRW5hYmxlZFxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwic2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2xfX2dsaWRlclwiXG4gICAgICByb2xlPVwibm9uZVwiXG4gICAgPjwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfZ2V0VGFiQ29udGVudFRlbXBsYXRlKClcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZWdtZW50ZWQtdGFicy9zcmMvc2VnbWVudGVkLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxvQkFBb0IsR0FFckIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7QUFTckYsTUFBTSxPQUFPLHNCQUFzQjtJQWtCakMsZ0NBQWdDO0lBQ2hDLElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLEtBQWtCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzNDLENBQUM7SUFnQkQsWUFBb0IsSUFBWSxFQUFVLGNBQWlDO1FBQXZELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFyQzNFLG1CQUFtQjtRQUVuQixTQUFJLEdBQWlDLFFBQVEsQ0FB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QUMsWUFDNUIsaUJBQWlCOzZIQUtJLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSTdCLElBQUk7c0JBREgsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBTU4sUUFBUTtzQkFGUCxLQUFLO2dCQU1GLGFBQWE7c0JBRGhCLEtBQUs7Z0JBV2EsbUJBQW1CO3NCQUFyQyxNQUFNO2dCQUlFLElBQUk7c0JBRFosZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJvb2xlYW5JbnB1dCxcbiAgY29lcmNlTnVtYmVyUHJvcGVydHksXG4gIE51bWJlcklucHV0LFxufSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IENvZXJjZUJvb2xlYW4gfSBmcm9tICcuLi8uLi9jb21tb24vY29lcmNlLWJvb2xlYW4uZGVjb3JhdG9yJztcbmltcG9ydCB7IFNlZ21lbnRlZFRhYkNvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudGVkLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld0VuY2Fwc3VsYXRpb25Qcm92aWRlciB9IGZyb20gJy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1zZWdtZW50ZWQtdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50ZWQtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlZ21lbnRlZC10YWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1ZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXJdLFxuICBleHBvcnRBczogJ3NwU2VnbWVudGVkVGFicycsXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRlZFRhYnNDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQFZpZXdDaGlsZCgnc2VnbWVudGVkQ29udHJvbCcpIHNlZ21lbnRlZENvbnRyb2whOiBFbGVtZW50UmVmO1xuXG4gIC8qKiBTaXplIG9mIHRhYnMgKi9cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuXG4gIC8qKiBXaGV0aGVyIHRhYnMgYXJlIGFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IG9uIGZvY3VzIG9yIG1hbnVhbGx5LiAqL1xuICBASW5wdXQoKVxuICBrZXlib2FyZEFjdGl2YXRpb24/OiAnbWFudWFsJyB8ICdhdXRvbWF0aWMnID0gJ2F1dG9tYXRpYyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGVudGlyZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpXG4gIEBDb2VyY2VCb29sZWFuXG4gIGRpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqIEluZGV4IG9mIHRoZSBzZWxlY3RlZCB0YWIgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleCB8fCAwO1xuICB9XG4gIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fZm9jdXNlZEluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuICBwcml2YXRlIF9zZWxlY3RlZEluZGV4PzogbnVtYmVyO1xuICBwcml2YXRlIF9mb2N1c2VkSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkSW5kZXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gU2VnbWVudGVkVGFiQ29tcG9uZW50KSlcbiAgcmVhZG9ubHkgdGFiczogUXVlcnlMaXN0PFNlZ21lbnRlZFRhYkNvbXBvbmVudD4gPSBuZXcgUXVlcnlMaXN0KCk7XG4gIHByaXZhdGUgX3RhYklkczogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IHVuZGVmaW5lZDtcbiAgX2FjdGl2ZVRhYlBvc2l0aW9uID0geyBsZWZ0OiAnMHB4Jywgd2lkdGg6ICcwcHgnIH07XG4gIF9hbmltYXRpb25FbmFibGVkID0gZmFsc2U7XG4gIF9mb2N1c1Zpc2libGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLnNraXBBbmltYXRpb25GcmFtZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RhYklkcyA9IHRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmlkKTtcbiAgICB0aGlzLnRhYnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vblRhYnNDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLmZpbmRGb2N1c2FibGVJbmRleCgwLCAncmlnaHQnKSB8fCAwO1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gVGhlIHZhbHVlIG9mIFwiX2dldFRhYkNvbnRlbnRUZW1wbGF0ZVwiLCB3aGljaCBpcyBib3VuZCBpbiB0aGVcbiAgICAvLyB0ZW1wbGF0ZSwgY2hhbmdlcyBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBjaGVja2VkLiBUaGlzXG4gICAgLy8gXCJkZXRlY3RDaGFuZ2VzKClcIiBhdm9pZHMgdGhlIFwiTkcwMTAwOiBFeHByZXNzaW9uIGhhc1xuICAgIC8vIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBhbmd1bGFyIGVycm9yLlxuICAgIC8vXG4gICAgLy8gaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzAxMDBcbiAgICB0aGlzLnNldEFjdGl2ZVRhYlBvc2l0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAvLyB6b25lanMgZG9lc24ndCBtb25rZXktcGF0Y2ggcmVzaXplIG9ic2VydmVyICh5ZXQpXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5zZWdtZW50ZWRDb250cm9sLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRBY3RpdmVUYWJQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuc2VnbWVudGVkQ29udHJvbC5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEZvY3VzZWRUYWIoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFicy50b0FycmF5KClbdGhpcy5fZm9jdXNlZEluZGV4XTtcbiAgfVxuXG4gIHNlbGVjdFRhYihzZWxlY3RlZFRhYjogU2VnbWVudGVkVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy50YWJzXG4gICAgICAudG9BcnJheSgpXG4gICAgICAuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gc2VsZWN0ZWRUYWIpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gIH1cblxuICBpc1NlbGVjdGVkKHRhYjogU2VnbWVudGVkVGFiQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFicz8udG9BcnJheSgpLmluZGV4T2YodGFiKSA9PT0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgX2dldFRhYkNvbnRlbnRUZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnRvQXJyYXkoKVt0aGlzLnNlbGVjdGVkSW5kZXhdPy5fY29udGVudFRlbXBsYXRlIHx8IG51bGw7XG4gIH1cblxuICBfb25Gb2N1c0NoYW5nZShvcmlnaW46IEZvY3VzT3JpZ2luKSB7XG4gICAgdGhpcy5fZm9jdXNWaXNpYmxlID0gb3JpZ2luID09PSAna2V5Ym9hcmQnO1xuICAgIGlmICghb3JpZ2luKSB7XG4gICAgICB0aGlzLl9mb2N1c2VkSW5kZXggPSB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgX29uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGZvY3VzTmV4dFZhbGlkVGFiID0gKFxuICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcixcbiAgICAgIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0J1xuICAgICkgPT4ge1xuICAgICAgaWYgKHRoaXMudGFicy50b0FycmF5KCkuZXZlcnkoKHRhYikgPT4gdGFiLmRpc2FibGVkKSkgcmV0dXJuO1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRGb2N1c2FibGVJbmRleCh0YXJnZXRJbmRleCwgZGlyZWN0aW9uKTtcbiAgICAgIGlmIChpbmRleCA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgY29uc3QgYnV0dG9uID0gdGhpcy50YWJzLnRvQXJyYXkoKVtpbmRleF0uX2J1dHRvbj8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmICghYnV0dG9uKSByZXR1cm47XG4gICAgICBidXR0b24uZm9jdXMoKTtcbiAgICAgIGlmICh0aGlzLmtleWJvYXJkQWN0aXZhdGlvbiA9PT0gJ2F1dG9tYXRpYycpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9mb2N1c2VkSW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLl9mb2N1c2VkSW5kZXggLSAxLCAnbGVmdCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBmb2N1c05leHRWYWxpZFRhYih0aGlzLl9mb2N1c2VkSW5kZXggKyAxLCAncmlnaHQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdIb21lJzoge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZm9jdXNOZXh0VmFsaWRUYWIoMCwgJ3JpZ2h0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZm9jdXNOZXh0VmFsaWRUYWIodGhpcy50YWJzLmxlbmd0aCAtIDEsICdsZWZ0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aXZlVGFiUG9zaXRpb24oKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzLnRvQXJyYXkoKVt0aGlzLnNlbGVjdGVkSW5kZXhdPy5fYnV0dG9uPy5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuX2FjdGl2ZVRhYlBvc2l0aW9uID0ge1xuICAgICAgbGVmdDogYCR7dGFiPy5vZmZzZXRMZWZ0IHx8IDB9cHhgLFxuICAgICAgd2lkdGg6IGAke3RhYj8uY2xpZW50V2lkdGggfHwgMH1weGAsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgb25UYWJzQ2hhbmdlKCkge1xuICAgIC8vIEVuc3VyZSB0aGUgY3VycmVudCB0YWIgZG9lc24ndCBjaGFuZ2UgaWYgdGFicyBjaGFuZ2VcbiAgICAvLyBhbmQgdGFiIHdpdGggY3VycmVudGx5IHNlbGVjdGVkIGlkIHN0aWxsIGV4aXN0c1xuICAgIGNvbnN0IHByZXZpb3VzVGFiSWQgPSB0aGlzLl90YWJJZHNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICB0aGlzLl90YWJJZHMgPSB0aGlzLnRhYnMubWFwKCh0YWIpID0+IHRhYi5pZCk7XG4gICAgaWYgKHRoaXMuX3RhYklkcy5pbmNsdWRlcyhwcmV2aW91c1RhYklkKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fdGFiSWRzLmZpbmRJbmRleChcbiAgICAgICAgKHRhYklkKSA9PiB0YWJJZCA9PT0gcHJldmlvdXNUYWJJZFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWF4SW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoIC0gMTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPiBtYXhJbmRleCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBtYXhJbmRleDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4Q2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5za2lwQW5pbWF0aW9uRnJhbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2tpcEFuaW1hdGlvbkZyYW1lKCkge1xuICAgIC8vIFdlIHdhbnQgdG8gYXZvaWQgYW5pbWF0aW9uIG9uIGZpcnN0IHJlbmRlciBhbmQgd2hlbmV2ZXIgdGFiIGNvbnRlbnQgY2hhbmdlc1xuICAgIHRoaXMuX2FuaW1hdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uRW5hYmxlZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRGb2N1c2FibGVJbmRleChcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0J1xuICApOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy50YWJzLnRvQXJyYXkoKS5ldmVyeSgodGFiKSA9PiB0YWIuZGlzYWJsZWQpKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjb25zdHJhaW5JbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPj0gdGhpcy50YWJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYnMubGVuZ3RoIC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGNvbnN0cmFpbmVkSW5kZXggPSBjb25zdHJhaW5JbmRleChpbmRleCk7XG4gICAgaWYgKHRoaXMudGFicy50b0FycmF5KClbY29uc3RyYWluZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRGb2N1c2FibGVJbmRleChcbiAgICAgICAgY29uc3RyYWluZWRJbmRleCArIChkaXJlY3Rpb24gPT09ICdsZWZ0JyA/IC0xIDogMSksXG4gICAgICAgIGRpcmVjdGlvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0cmFpbmVkSW5kZXg7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICNzZWdtZW50ZWRDb250cm9sXG4gIGNsYXNzPVwic2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2xcIlxuICBbY2xhc3Muc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2wtLWxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICBbY2xhc3Muc2FwcGhpcmUtc2VnbWVudGVkLWNvbnRyb2wtLXNtYWxsXT1cInNpemUgPT09ICdzbWFsbCdcIlxuICBbY2xhc3MuZm9jdXMtdmlzaWJsZV09XCJfZm9jdXNWaXNpYmxlXCJcbiAgW2NsYXNzLnNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sLS1tYW51YWwta2V5Ym9hcmQtYWN0aXZhdGlvbl09XCJcbiAgICBrZXlib2FyZEFjdGl2YXRpb24gPT09ICdtYW51YWwnXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19idXR0b24tY29udGFpbmVyXCJcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgICAoY2RrRm9jdXNDaGFuZ2UpPVwiX29uRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLXNlZ21lbnRlZC10YWJcIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW5cbiAgICAgIFtzdHlsZS5sZWZ0XT1cIl9hY3RpdmVUYWJQb3NpdGlvbi5sZWZ0XCJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJfYWN0aXZlVGFiUG9zaXRpb24ud2lkdGhcIlxuICAgICAgW2NsYXNzLnNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19nbGlkZXItLXdpdGgtdHJhbnNpdGlvbl09XCJcbiAgICAgICAgX2FuaW1hdGlvbkVuYWJsZWRcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cInNhcHBoaXJlLXNlZ21lbnRlZC1jb250cm9sX19nbGlkZXJcIlxuICAgICAgcm9sZT1cIm5vbmVcIlxuICAgID48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2dldFRhYkNvbnRlbnRUZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4iXX0=
|