igniteui-angular 17.2.22 → 17.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/calendar/calendar.component.mjs +3 -10
- package/esm2022/lib/calendar/days-view/days-view.component.mjs +3 -3
- package/esm2022/lib/combo/combo.common.mjs +17 -7
- package/esm2022/lib/combo/combo.component.mjs +3 -3
- package/esm2022/lib/date-common/picker-base.directive.mjs +12 -1
- package/esm2022/lib/date-picker/date-picker.component.mjs +10 -7
- package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +9 -2
- package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +7 -7
- package/esm2022/lib/slider/slider.component.mjs +4 -38
- package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +55 -2
- package/esm2022/lib/time-picker/time-picker.component.mjs +4 -1
- package/fesm2022/igniteui-angular.mjs +116 -70
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/combo/combo.common.d.ts +3 -0
- package/lib/core/styles/components/input/_input-group-theme.scss +1 -0
- package/lib/date-common/picker-base.directive.d.ts +6 -0
- package/lib/date-picker/date-picker.component.d.ts +2 -0
- package/lib/date-range-picker/date-range-picker.component.d.ts +2 -0
- package/lib/grids/filtering/base/grid-filtering-row.component.d.ts +1 -1
- package/lib/slider/slider.component.d.ts +0 -16
- package/lib/slider/thumb/thumb-slider.component.d.ts +12 -1
- package/lib/time-picker/time-picker.component.d.ts +1 -0
- package/package.json +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -9,6 +9,27 @@ import * as i1 from "../../services/direction/directionality";
|
|
|
9
9
|
* @hidden
|
|
10
10
|
*/
|
|
11
11
|
export class IgxSliderThumbComponent {
|
|
12
|
+
get ariaValueNow() {
|
|
13
|
+
return this.value;
|
|
14
|
+
}
|
|
15
|
+
get ariaValueMin() {
|
|
16
|
+
return this.min;
|
|
17
|
+
}
|
|
18
|
+
get ariaValueMax() {
|
|
19
|
+
return this.max;
|
|
20
|
+
}
|
|
21
|
+
get ariaValueText() {
|
|
22
|
+
if (this.labels && this.labels[this.value] !== undefined) {
|
|
23
|
+
return this.labels[this.value];
|
|
24
|
+
}
|
|
25
|
+
return this.value;
|
|
26
|
+
}
|
|
27
|
+
get ariaLabelAttr() {
|
|
28
|
+
return `Slider thumb ${this.type}`;
|
|
29
|
+
}
|
|
30
|
+
get ariaDisabled() {
|
|
31
|
+
return this.disabled;
|
|
32
|
+
}
|
|
12
33
|
get thumbFromClass() {
|
|
13
34
|
return this.type === SliderHandle.FROM;
|
|
14
35
|
}
|
|
@@ -58,6 +79,8 @@ export class IgxSliderThumbComponent {
|
|
|
58
79
|
this.thumbBlur = new EventEmitter();
|
|
59
80
|
this.hoverChange = new EventEmitter();
|
|
60
81
|
this.tabindex = 0;
|
|
82
|
+
this.role = 'slider';
|
|
83
|
+
this.ariaOrientation = 'horizontal';
|
|
61
84
|
this.zIndex = 0;
|
|
62
85
|
this.focused = false;
|
|
63
86
|
this.isActive = false;
|
|
@@ -161,7 +184,7 @@ export class IgxSliderThumbComponent {
|
|
|
161
184
|
}
|
|
162
185
|
}
|
|
163
186
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxSliderThumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.IgxDirectionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.4", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: ["continuous", "continuous", booleanAttribute], thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: ["disabled", "disabled", booleanAttribute], onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: ["deactiveState", "deactiveState", booleanAttribute] }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", thumbBlur: "thumbBlur", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.4", type: IgxSliderThumbComponent, isStandalone: true, selector: "igx-thumb", inputs: { value: "value", continuous: ["continuous", "continuous", booleanAttribute], thumbLabelVisibilityDuration: "thumbLabelVisibilityDuration", disabled: ["disabled", "disabled", booleanAttribute], onPan: "onPan", stepDistance: "stepDistance", step: "step", templateRef: "templateRef", context: "context", type: "type", deactiveState: ["deactiveState", "deactiveState", booleanAttribute], min: "min", max: "max", labels: "labels" }, outputs: { thumbValueChange: "thumbValueChange", thumbChange: "thumbChange", thumbBlur: "thumbBlur", hoverChange: "hoverChange" }, host: { listeners: { "pointerenter": "onPointerEnter()", "pointerleave": "onPointerLeave()", "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "blur": "onBlur()", "focus": "onFocusListener()" }, properties: { "attr.tabindex": "this.tabindex", "attr.role": "this.role", "attr.aria-valuenow": "this.ariaValueNow", "attr.aria-valuemin": "this.ariaValueMin", "attr.aria-valuemax": "this.ariaValueMax", "attr.aria-valuetext": "this.ariaValueText", "attr.aria-label": "this.ariaLabelAttr", "attr.aria-orientation": "this.ariaOrientation", "attr.aria-disabled": "this.ariaDisabled", "attr.z-index": "this.zIndex", "class.igx-slider-thumb-to--focused": "this.focused", "class.igx-slider-thumb-from": "this.thumbFromClass", "class.igx-slider-thumb-to": "this.thumbToClass", "class.igx-slider-thumb-from--active": "this.thumbFromActiveClass", "class.igx-slider-thumb-to--active": "this.thumbToActiveClass", "class.igx-slider-thumb-from--disabled": "this.thumbFromDisabledClass", "class.igx-slider-thumb-to--disabled": "this.thumbToDisabledClass", "class.igx-slider-thumb-from--pressed": "this.thumbFromPressedClass", "class.igx-slider-thumb-to--pressed": "this.thumbToPressedClass" } }, ngImport: i0, template: "<div [ngClass]=\"getDotClass\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
165
188
|
}
|
|
166
189
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxSliderThumbComponent, decorators: [{
|
|
167
190
|
type: Component,
|
|
@@ -191,6 +214,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
191
214
|
}], deactiveState: [{
|
|
192
215
|
type: Input,
|
|
193
216
|
args: [{ transform: booleanAttribute }]
|
|
217
|
+
}], min: [{
|
|
218
|
+
type: Input
|
|
219
|
+
}], max: [{
|
|
220
|
+
type: Input
|
|
221
|
+
}], labels: [{
|
|
222
|
+
type: Input
|
|
194
223
|
}], thumbValueChange: [{
|
|
195
224
|
type: Output
|
|
196
225
|
}], thumbChange: [{
|
|
@@ -202,6 +231,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
202
231
|
}], tabindex: [{
|
|
203
232
|
type: HostBinding,
|
|
204
233
|
args: ['attr.tabindex']
|
|
234
|
+
}], role: [{
|
|
235
|
+
type: HostBinding,
|
|
236
|
+
args: ['attr.role']
|
|
237
|
+
}], ariaValueNow: [{
|
|
238
|
+
type: HostBinding,
|
|
239
|
+
args: ['attr.aria-valuenow']
|
|
240
|
+
}], ariaValueMin: [{
|
|
241
|
+
type: HostBinding,
|
|
242
|
+
args: ['attr.aria-valuemin']
|
|
243
|
+
}], ariaValueMax: [{
|
|
244
|
+
type: HostBinding,
|
|
245
|
+
args: ['attr.aria-valuemax']
|
|
246
|
+
}], ariaValueText: [{
|
|
247
|
+
type: HostBinding,
|
|
248
|
+
args: ['attr.aria-valuetext']
|
|
249
|
+
}], ariaLabelAttr: [{
|
|
250
|
+
type: HostBinding,
|
|
251
|
+
args: ['attr.aria-label']
|
|
252
|
+
}], ariaOrientation: [{
|
|
253
|
+
type: HostBinding,
|
|
254
|
+
args: ['attr.aria-orientation']
|
|
255
|
+
}], ariaDisabled: [{
|
|
256
|
+
type: HostBinding,
|
|
257
|
+
args: [`attr.aria-disabled`]
|
|
205
258
|
}], zIndex: [{
|
|
206
259
|
type: HostBinding,
|
|
207
260
|
args: ['attr.z-index']
|
|
@@ -251,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
251
304
|
type: HostListener,
|
|
252
305
|
args: ['focus']
|
|
253
306
|
}] } });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWItc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFlBQVksRUFFWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQXVEaEMsSUFDVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELElBQ1csb0JBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ1csa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZ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c0JBRGpCLE1BQU07Z0JBSUEsU0FBUztzQkFEZixNQUFNO2dCQUlBLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGVBQWU7Z0JBSXJCLE1BQU07c0JBRFosV0FBVzt1QkFBQyxjQUFjO2dCQUlwQixPQUFPO3NCQURiLFdBQVc7dUJBQUMsb0NBQW9DO2dCQUl0QyxjQUFjO3NCQUR4QixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNL0IsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywyQkFBMkI7Z0JBTTdCLG9CQUFvQjtzQkFEOUIsV0FBVzt1QkFBQyxxQ0FBcUM7Z0JBTXZDLGtCQUFrQjtzQkFENUIsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBTXJDLHNCQUFzQjtzQkFEaEMsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBTXpDLG9CQUFvQjtzQkFEOUIsV0FBVzt1QkFBQyxxQ0FBcUM7Z0JBTXZDLHFCQUFxQjtzQkFEL0IsV0FBVzt1QkFBQyxzQ0FBc0M7Z0JBTXhDLG1CQUFtQjtzQkFEN0IsV0FBVzt1QkFBQyxvQ0FBb0M7Z0JBbUMxQyxjQUFjO3NCQURwQixZQUFZO3VCQUFDLGNBQWM7Z0JBT3JCLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsY0FBYztnQkFNckIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPMUIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFxQjVCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNO2dCQVNiLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2xpZGVySGFuZGxlIH0gZnJvbSAnLi4vc2xpZGVyLmNvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hEaXJlY3Rpb25hbGl0eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpcmVjdGlvbi9kaXJlY3Rpb25hbGl0eSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRodW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3RodW1iLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgSWd4U2xpZGVyVGh1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBjb250aW51b3VzOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGh1bWJMYWJlbFZpc2liaWxpdHlEdXJhdGlvbjogbnVtYmVyO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb25QYW46IFN1YmplY3Q8bnVtYmVyPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXBEaXN0YW5jZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZXh0OiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBTbGlkZXJIYW5kbGU7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgZGVhY3RpdmVTdGF0ZTogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHVtYlZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh1bWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHVtYkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaG92ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHB1YmxpYyB0YWJpbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuei1pbmRleCcpXG4gICAgcHVibGljIHpJbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWZvY3VzZWQnKVxuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbScpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST007XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLlRPO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1hY3RpdmUnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tQWN0aXZlQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NICYmIHRoaXMuX2lzQWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tYWN0aXZlJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9BY3RpdmVDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLlRPICYmIHRoaXMuX2lzQWN0aXZlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1kaXNhYmxlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21EaXNhYmxlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSAmJiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJUb0Rpc2FibGVkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi1mcm9tLS1wcmVzc2VkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iRnJvbVByZXNzZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00gJiYgdGhpcy5pc0FjdGl2ZSAmJiB0aGlzLl9pc1ByZXNzZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvLS1wcmVzc2VkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9QcmVzc2VkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLmlzQWN0aXZlICYmIHRoaXMuX2lzUHJlc3NlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGdldERvdENsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2lneC1zbGlkZXItdGh1bWItZnJvbV9fZG90JzogdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSxcbiAgICAgICAgICAgICdpZ3gtc2xpZGVyLXRodW1iLXRvX19kb3QnOiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UT1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGVzdHJveSgpOiBTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3kkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzQWN0aXZlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNQcmVzc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgdGh1bWJQb3NpdGlvblgoKSB7XG4gICAgICAgIGNvbnN0IHRodW1iQm91bmRlcmllcyA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgdGh1bWJDZW50ZXIgPSAodGh1bWJCb3VuZGVyaWVzLnJpZ2h0IC0gdGh1bWJCb3VuZGVyaWVzLmxlZnQpIC8gMjtcbiAgICAgICAgcmV0dXJuIHRodW1iQm91bmRlcmllcy5sZWZ0ICsgdGh1bWJDZW50ZXI7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfZGlyOiBJZ3hEaXJlY3Rpb25hbGl0eSkgeyB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZW50ZXInKVxuICAgIHB1YmxpYyBvblBvaW50ZXJFbnRlcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaG92ZXJDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnKVxuICAgIHB1YmxpYyBvblBvaW50ZXJMZWF2ZSgpIHtcbiAgICAgICAgdGhpcy5ob3ZlckNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluY3JlbWVudCA9IDA7XG4gICAgICAgIGNvbnN0IHN0ZXBXaXRoRGlyID0gKHJ0bDogYm9vbGVhbikgPT4gcnRsID8gdGhpcy5zdGVwICogLTEgOiB0aGlzLnN0ZXA7XG4gICAgICAgIGlmIChldmVudC5rZXkuZW5kc1dpdGgoJ0xlZnQnKSkge1xuICAgICAgICAgICAgaW5jcmVtZW50ID0gc3RlcFdpdGhEaXIoIXRoaXMuX2Rpci5ydGwpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleS5lbmRzV2l0aCgnUmlnaHQnKSkge1xuICAgICAgICAgICAgaW5jcmVtZW50ID0gc3RlcFdpdGhEaXIodGhpcy5fZGlyLnJ0bCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRodW1iQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgdGhpcy50aHVtYlZhbHVlQ2hhbmdlLmVtaXQoaW5jcmVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuekluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGh1bWJCbHVyLmVtaXQoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIG9uRm9jdXNMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuekluZGV4ID0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm9uUGFuXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShtb3VzZVggPT5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRodW1iVmFsdWUobW91c2VYKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGh1bWIgbGFiZWwgYW5kIHJpcHBsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1RodW1iSW5kaWNhdG9ycygpIHtcbiAgICAgICAgdGhpcy50b2dnbGVUaHVtYkluZGljYXRvcnModHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aHVtYiBsYWJlbCBhbmQgcmlwcGxlLlxuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlVGh1bWJJbmRpY2F0b3JzKCkge1xuICAgICAgICB0aGlzLnRvZ2dsZVRodW1iSW5kaWNhdG9ycyhmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUaHVtYlZhbHVlKG1vdXNlWDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVZhbHVlID0gdGhpcy5jYWxjdWxhdGVUcmFja1VwZGF0ZShtb3VzZVgpO1xuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSAmJiB1cGRhdGVWYWx1ZSAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy50aHVtYlZhbHVlQ2hhbmdlLmVtaXQodXBkYXRlVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVUcmFja1VwZGF0ZShtb3VzZVg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNjYWxlWCA9IHRoaXMuX2Rpci5ydGwgPyB0aGlzLnRodW1iUG9zaXRpb25YIC0gbW91c2VYIDogbW91c2VYIC0gdGhpcy50aHVtYlBvc2l0aW9uWDtcbiAgICAgICAgY29uc3Qgc3RlcERpc3RhbmNlQ2VudGVyID0gdGhpcy5zdGVwRGlzdGFuY2UgLyAyO1xuXG4gICAgICAgIC8vIElmIHRoZSB0aHVtYiBzY2FsZSByYW5nZSAoc2xpZGVyIHVwZGF0ZSkgaXMgbGVzcyB0aMOgbiBhIGhhbGYgc3RlcCxcbiAgICAgICAgLy8gdGhlIHBvc2l0aW9uIHN0YXlzIHRoZSBzYW1lLlxuICAgICAgICBjb25zdCBzY2FsZVhQb3NpdGl2ZSA9IE1hdGguYWJzKHNjYWxlWCk7XG4gICAgICAgIGlmIChzY2FsZVhQb3NpdGl2ZSA8IHN0ZXBEaXN0YW5jZUNlbnRlcikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zdGVwVG9Qcm9jZWVkKHNjYWxlWCwgdGhpcy5zdGVwRGlzdGFuY2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RlcFRvUHJvY2VlZChzY2FsZVgsIHN0ZXBEaXN0KSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHNjYWxlWCAvIHN0ZXBEaXN0KSAqIHRoaXMuc3RlcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZVRodW1iSW5kaWNhdG9ycyh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzUHJlc3NlZCA9IHZpc2libGU7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGludW91cyB8fCB0aGlzLmRlYWN0aXZlU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiZ2V0RG90Q2xhc3NcIj48L2Rpdj5cbiJdfQ==
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWItc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zbGlkZXIvdGh1bWIvdGh1bWItc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFlBQVksRUFFWixXQUFXLEVBQ1gsTUFBTSxFQUNOLFlBQVksRUFJWixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQTZEaEMsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFDVyxhQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFD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QUFhO3NCQUR2QixXQUFXO3VCQUFDLGlCQUFpQjtnQkFNdkIsZUFBZTtzQkFEckIsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBSXpCLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU0xQixNQUFNO3NCQURaLFdBQVc7dUJBQUMsY0FBYztnQkFJcEIsT0FBTztzQkFEYixXQUFXO3VCQUFDLG9DQUFvQztnQkFJdEMsY0FBYztzQkFEeEIsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBTS9CLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsMkJBQTJCO2dCQU03QixvQkFBb0I7c0JBRDlCLFdBQVc7dUJBQUMscUNBQXFDO2dCQU12QyxrQkFBa0I7c0JBRDVCLFdBQVc7dUJBQUMsbUNBQW1DO2dCQU1yQyxzQkFBc0I7c0JBRGhDLFdBQVc7dUJBQUMsdUNBQXVDO2dCQU16QyxvQkFBb0I7c0JBRDlCLFdBQVc7dUJBQUMscUNBQXFDO2dCQU12QyxxQkFBcUI7c0JBRC9CLFdBQVc7dUJBQUMsc0NBQXNDO2dCQU14QyxtQkFBbUI7c0JBRDdCLFdBQVc7dUJBQUMsb0NBQW9DO2dCQW1DMUMsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxjQUFjO2dCQU9yQixjQUFjO3NCQURwQixZQUFZO3VCQUFDLGNBQWM7Z0JBTXJCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTzFCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBcUI1QixNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTTtnQkFTYixlQUFlO3NCQURyQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNsaWRlckhhbmRsZSB9IGZyb20gJy4uL3NsaWRlci5jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWd4RGlyZWN0aW9uYWxpdHkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kaXJlY3Rpb24vZGlyZWN0aW9uYWxpdHknO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC10aHVtYicsXG4gICAgdGVtcGxhdGVVcmw6ICd0aHVtYi1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIElneFNsaWRlclRodW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgY29udGludW91czogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRodW1iTGFiZWxWaXNpYmlsaXR5RHVyYXRpb246IG51bWJlcjtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9uUGFuOiBTdWJqZWN0PG51bWJlcj47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwRGlzdGFuY2U6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXA6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29udGV4dDogYW55O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogU2xpZGVySGFuZGxlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGRlYWN0aXZlU3RhdGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW46IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxzOiBhbnlbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHVtYlZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgdGh1bWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0aHVtYkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaG92ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHB1YmxpYyB0YWJpbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHVibGljIHJvbGUgPSAnc2xpZGVyJztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JylcbiAgICBwdWJsaWMgZ2V0IGFyaWFWYWx1ZU5vdygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtaW4nKVxuICAgIHB1YmxpYyBnZXQgYXJpYVZhbHVlTWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taW47XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtYXgnKVxuICAgIHB1YmxpYyBnZXQgYXJpYVZhbHVlTWF4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWV0ZXh0JylcbiAgICBwdWJsaWMgZ2V0IGFyaWFWYWx1ZVRleHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVsc1t0aGlzLnZhbHVlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYWJlbHNbdGhpcy52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBnZXQgYXJpYUxhYmVsQXR0cigpIHtcbiAgICAgICAgcmV0dXJuIGBTbGlkZXIgdGh1bWIgJHt0aGlzLnR5cGV9YDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1vcmllbnRhdGlvbicpXG4gICAgcHVibGljIGFyaWFPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICAgIEBIb3N0QmluZGluZyhgYXR0ci5hcmlhLWRpc2FibGVkYClcbiAgICBwdWJsaWMgZ2V0IGFyaWFEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnotaW5kZXgnKVxuICAgIHB1YmxpYyB6SW5kZXggPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLXRvLS1mb2N1c2VkJylcbiAgICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtc2xpZGVyLXRodW1iLWZyb20nKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10bycpXG4gICAgcHVibGljIGdldCB0aHVtYlRvQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tYWN0aXZlJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iRnJvbUFjdGl2ZUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuRlJPTSAmJiB0aGlzLl9pc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWFjdGl2ZScpXG4gICAgcHVibGljIGdldCB0aHVtYlRvQWN0aXZlQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5UTyAmJiB0aGlzLl9pc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBnZXQgdGh1bWJGcm9tRGlzYWJsZWRDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00gJiYgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItdG8tLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZ2V0IHRodW1iVG9EaXNhYmxlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE8gJiYgdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1zbGlkZXItdGh1bWItZnJvbS0tcHJlc3NlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYkZyb21QcmVzc2VkQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFNsaWRlckhhbmRsZS5GUk9NICYmIHRoaXMuaXNBY3RpdmUgJiYgdGhpcy5faXNQcmVzc2VkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXNsaWRlci10aHVtYi10by0tcHJlc3NlZCcpXG4gICAgcHVibGljIGdldCB0aHVtYlRvUHJlc3NlZENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE8gJiYgdGhpcy5pc0FjdGl2ZSAmJiB0aGlzLl9pc1ByZXNzZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBnZXREb3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdpZ3gtc2xpZGVyLXRodW1iLWZyb21fX2RvdCc6IHRoaXMudHlwZSA9PT0gU2xpZGVySGFuZGxlLkZST00sXG4gICAgICAgICAgICAnaWd4LXNsaWRlci10aHVtYi10b19fZG90JzogdGhpcy50eXBlID09PSBTbGlkZXJIYW5kbGUuVE9cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRlc3Ryb3koKTogU3ViamVjdDxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95JDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzUHJlc3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgZ2V0IHRodW1iUG9zaXRpb25YKCkge1xuICAgICAgICBjb25zdCB0aHVtYkJvdW5kZXJpZXMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHRodW1iQ2VudGVyID0gKHRodW1iQm91bmRlcmllcy5yaWdodCAtIHRodW1iQm91bmRlcmllcy5sZWZ0KSAvIDI7XG4gICAgICAgIHJldHVybiB0aHVtYkJvdW5kZXJpZXMubGVmdCArIHRodW1iQ2VudGVyO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX2RpcjogSWd4RGlyZWN0aW9uYWxpdHkpIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJylcbiAgICBwdWJsaWMgb25Qb2ludGVyRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhvdmVyQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJylcbiAgICBwdWJsaWMgb25Qb2ludGVyTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpbmNyZW1lbnQgPSAwO1xuICAgICAgICBjb25zdCBzdGVwV2l0aERpciA9IChydGw6IGJvb2xlYW4pID0+IHJ0bCA/IHRoaXMuc3RlcCAqIC0xIDogdGhpcy5zdGVwO1xuICAgICAgICBpZiAoZXZlbnQua2V5LmVuZHNXaXRoKCdMZWZ0JykpIHtcbiAgICAgICAgICAgIGluY3JlbWVudCA9IHN0ZXBXaXRoRGlyKCF0aGlzLl9kaXIucnRsKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkuZW5kc1dpdGgoJ1JpZ2h0JykpIHtcbiAgICAgICAgICAgIGluY3JlbWVudCA9IHN0ZXBXaXRoRGlyKHRoaXMuX2Rpci5ydGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50aHVtYkNoYW5nZS5lbWl0KCk7XG4gICAgICAgIHRoaXMudGh1bWJWYWx1ZUNoYW5nZS5lbWl0KGluY3JlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgcHVibGljIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnpJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRodW1iQmx1ci5lbWl0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzTGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLnpJbmRleCA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblBhblxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobW91c2VYID0+XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaHVtYlZhbHVlKG1vdXNlWClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRodW1iIGxhYmVsIGFuZCByaXBwbGUuXG4gICAgICovXG4gICAgcHVibGljIHNob3dUaHVtYkluZGljYXRvcnMoKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlVGh1bWJJbmRpY2F0b3JzKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGh1bWIgbGFiZWwgYW5kIHJpcHBsZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZVRodW1iSW5kaWNhdG9ycygpIHtcbiAgICAgICAgdGhpcy50b2dnbGVUaHVtYkluZGljYXRvcnMoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGh1bWJWYWx1ZShtb3VzZVg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IHRoaXMuY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYKTtcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgdXBkYXRlVmFsdWUgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJWYWx1ZUNoYW5nZS5lbWl0KHVwZGF0ZVZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlVHJhY2tVcGRhdGUobW91c2VYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzY2FsZVggPSB0aGlzLl9kaXIucnRsID8gdGhpcy50aHVtYlBvc2l0aW9uWCAtIG1vdXNlWCA6IG1vdXNlWCAtIHRoaXMudGh1bWJQb3NpdGlvblg7XG4gICAgICAgIGNvbnN0IHN0ZXBEaXN0YW5jZUNlbnRlciA9IHRoaXMuc3RlcERpc3RhbmNlIC8gMjtcblxuICAgICAgICAvLyBJZiB0aGUgdGh1bWIgc2NhbGUgcmFuZ2UgKHNsaWRlciB1cGRhdGUpIGlzIGxlc3MgdGjDoG4gYSBoYWxmIHN0ZXAsXG4gICAgICAgIC8vIHRoZSBwb3NpdGlvbiBzdGF5cyB0aGUgc2FtZS5cbiAgICAgICAgY29uc3Qgc2NhbGVYUG9zaXRpdmUgPSBNYXRoLmFicyhzY2FsZVgpO1xuICAgICAgICBpZiAoc2NhbGVYUG9zaXRpdmUgPCBzdGVwRGlzdGFuY2VDZW50ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcFRvUHJvY2VlZChzY2FsZVgsIHRoaXMuc3RlcERpc3RhbmNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0ZXBUb1Byb2NlZWQoc2NhbGVYLCBzdGVwRGlzdCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChzY2FsZVggLyBzdGVwRGlzdCkgKiB0aGlzLnN0ZXA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVUaHVtYkluZGljYXRvcnModmlzaWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc1ByZXNzZWQgPSB2aXNpYmxlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRpbnVvdXMgfHwgdGhpcy5kZWFjdGl2ZVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNBY3RpdmUgPSB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImdldERvdENsYXNzXCI+PC9kaXY+XG4iXX0=
|